Compare commits

...

3739 Commits

Author SHA1 Message Date
InsanityAutomation a3e8dad323 Update Configuration.h 2020-06-17 09:41:30 -04:00
InsanityAutomation df2ad33942 Add SKR14 Support 2020-06-17 09:24:11 -04:00
InsanityAutomation 8aaac3af2e bump to head 2020-04-07 19:27:22 -04:00
InsanityAutomation 319d033f12 Update Configuration.h 2020-03-20 15:19:48 -04:00
InsanityAutomation 1f09f16026 bump to head for eparser fix 2020-03-19 15:15:33 -04:00
InsanityAutomation fb4a1453a4 Version and babystep limit 2020-03-15 14:02:47 -04:00
InsanityAutomation c1ef669e0a Bump to 2.0.5 2020-03-15 13:41:24 -04:00
InsanityAutomation f1a36c6575 Roll back 1 day from head to avoid babystep changes 2020-02-16 12:08:07 -05:00
InsanityAutomation 215cffacc9 bump to head 2020-02-16 10:06:13 -05:00
InsanityAutomation 8a7708776a Update Configuration.h 2019-12-06 14:47:46 -05:00
InsanityAutomation 5f05c47cb0 bump to head to fix probing count issue 2019-12-06 13:50:13 -05:00
InsanityAutomation f3f269fdf3 Update Version.h 2019-10-27 13:22:57 -04:00
InsanityAutomation 79bc5be06d Merge branch 'TMSX4_2.0_Bleeding' into TM_SX4_2.0_Devel 2019-10-27 13:22:29 -04:00
InsanityAutomation 2eb3ff66a9 Update Configuration.h 2019-10-27 13:22:12 -04:00
InsanityAutomation c7c87aacce Merge branch 'TMSX4_2.0_Bleeding' into TM_SX4_2.0_Devel 2019-10-26 17:19:32 -04:00
InsanityAutomation 1fa264a9d8 SX2 Tweaks 2019-10-26 16:08:46 -04:00
InsanityAutomation 683ccc8faa Bump 2019-10-21 22:14:07 -04:00
InsanityAutomation 352e41bad7 Add SX2 2019-10-13 14:53:55 -04:00
InsanityAutomation c674286de2 Bump for M851XY, Add stock TMC2208 options and 10SPro Geared Extruder toggle 2019-09-28 11:59:46 -04:00
InsanityAutomation 364684f60e Update Configuration.h 2019-08-01 17:11:08 -04:00
InsanityAutomation 9f81c7622b Update Configuration.h 2019-07-31 22:19:01 -04:00
InsanityAutomation f344131699 Update _Statusscreen.h 2019-07-31 22:04:49 -04:00
InsanityAutomation 9b27abdb09 Update Configuration_adv.h 2019-07-31 21:59:28 -04:00
InsanityAutomation c8ee607092 Update Configuration.h 2019-07-31 21:58:38 -04:00
InsanityAutomation a130e08b3c Update Configuration.h 2019-07-31 21:58:24 -04:00
InsanityAutomation dc0cf5861a Update Configuration_adv.h 2019-07-31 21:52:54 -04:00
InsanityAutomation 0196385a92 Update Configuration_adv.h 2019-07-31 21:51:05 -04:00
InsanityAutomation 0df276d871 Update Configuration.h 2019-07-31 21:39:02 -04:00
InsanityAutomation baf8b6288c Fix y endstop 2019-07-31 21:36:35 -04:00
InsanityAutomation e6d3289dba Bump 2019-07-31 20:02:22 -04:00
InsanityAutomation 37b1725a65 Add 8825 toggle 2019-07-11 23:44:22 -04:00
InsanityAutomation 43ad3cb6a0 Fix dual z issue 2019-07-11 23:27:14 -04:00
InsanityAutomation 22fda76fdc Update HAL.cpp 2019-07-11 22:43:51 -04:00
InsanityAutomation e62e389bec Bump to head 2019-07-11 22:01:58 -04:00
InsanityAutomation 6052988f6f graphical lcd improvements 2019-07-07 17:27:29 -04:00
InsanityAutomation 38581acb15 UBL addition 2019-07-07 16:09:22 -04:00
InsanityAutomation 6dc6ff8e30 add graphics lcd and dual z toggles 2019-07-07 15:45:38 -04:00
InsanityAutomation b1c20a6aa7 Initial Commit 2019-07-07 15:25:59 -04:00
InsanityAutomation 831e72453d Update Configuration_adv.h 2019-07-06 09:35:34 -04:00
InsanityAutomation ecd9c1370b Update Configuration.h 2019-07-05 22:09:24 -04:00
InsanityAutomation a5886798be Update Configuration.h 2019-07-02 18:02:38 -04:00
InsanityAutomation 5b7e2f7055 Update Configuration.h 2019-07-01 23:00:23 -04:00
InsanityAutomation 5b8f71b846 SKR13 addition 2019-07-01 19:55:30 -04:00
InsanityAutomation ac7dae7b49 Bump to head 2019-06-01 10:18:15 -04:00
InsanityAutomation 2fd98ab17c Update Configuration.h 2019-06-01 10:04:11 -04:00
InsanityAutomation c1e57e3a9b Update Configuration.h 2019-04-27 09:42:49 -04:00
InsanityAutomation 7232bdd883 Update pause.cpp 2019-04-25 20:41:45 -04:00
InsanityAutomation e4cad11951 Add commission menu 2019-03-31 10:42:02 -04:00
InsanityAutomation d923c018b8 Update Configuration.h 2019-03-30 18:03:11 -04:00
InsanityAutomation e3f6f1b12c MRRF Bump 2019-03-29 17:43:34 -04:00
InsanityAutomation ec2c721ca2 Bump 2019-02-19 18:44:42 -05:00
InsanityAutomation 919d7f8999 Bump 2019-01-16 11:07:15 -05:00
InsanityAutomation 8573625fab add runout options 2019-01-13 16:35:15 -05:00
InsanityAutomation 900bb1aba3 Merge pull request #18 from InsanityAutomation/More-SD-Pause-Fixes
More sd pause fixes
2019-01-13 16:12:18 -05:00
InsanityAutomation 5927818234 feed rate and park 2019-01-13 16:11:22 -05:00
InsanityAutomation 8be2aa0ef4 Initial commit 2019-01-13 14:35:45 -05:00
InsanityAutomation 6284eaf17d Make M25 work as well 2019-01-12 23:36:12 -05:00
InsanityAutomation 5094b167d4 Update menu_main.cpp 2019-01-12 19:40:20 -05:00
InsanityAutomation 42e9e85282 Merge branch 'bugfix-2.0.x' into More-SD-Pause-Fixes 2019-01-12 19:34:02 -05:00
InsanityAutomation eb0bf22d09 Update menu_main.cpp 2019-01-12 19:32:52 -05:00
teemuatlut 1a79878dff Remove TMC_Z_CALIBRATION in favor of Z_STEPPER_AUTO_ALIGN 2019-01-12 18:07:28 -06:00
InsanityAutomation 57e51e0d7d Bump 2019-01-12 19:00:23 -05:00
Scott Lahteine 7cfce20cd3 Update comments on M125 2019-01-12 17:52:44 -06:00
Scott Lahteine 3358333e22 Remove extra lcd_advanced_pause_show_message call 2019-01-12 17:14:33 -06:00
Scott Lahteine a7a6503917 Update menu_main.cpp 2019-01-12 17:04:00 -06:00
Scott Lahteine acbe72c239 Remove extra defer_status_screen(false), refresh() 2019-01-12 17:00:53 -06:00
Jason dc4786a504 Config files for PowerWASP Printer (#12889) 2019-01-12 16:57:45 -06:00
Scott Lahteine 3e867008f0 Fix some HAL_STM32F1 type declarations 2019-01-12 16:21:11 -06:00
InsanityAutomation dbac603128 Update menu_main.cpp 2019-01-12 17:09:22 -05:00
Scott Lahteine eb78aed863 Rename LCD menus according to variable types (#12892) 2019-01-12 16:01:04 -06:00
InsanityAutomation ed3ab5e212 Fix M24 not starting new job (#12887) 2019-01-12 15:30:44 -06:00
Nils Hasenbanck f9299c4461 Make timer definition in pin files for STM32 possible (#12874)
RemRam needs to redefine a particular timer to work correctly. The HAL did foresee this possibility and checks if the timer was already defined for either the stepper or temperature timer.

Prior to this commit the header file for the timers couldn't see those definitions in the pin file, but this commit will fix this.

Tested on an actual hardware to verify. (It wouldn't boot without it.)
2019-01-12 14:40:49 -06:00
InsanityAutomation 082f6a27de ADAPTIVE_FAN_SLOWING extension to hotend thermal protection (#12853) 2019-01-12 00:41:48 -06:00
Scott Lahteine 459f4fef60 Fix Temperature::init bug with HEATER_4_PIN 2019-01-11 22:54:26 -06:00
InsanityAutomation a403d9a50c Improve menu pause / resume (#12876) 2019-01-11 20:42:11 -06:00
Alain Martel 432c21456f Add 3DFabXYZ Migbot example config (#12775)
Co-Authored-By: Alain Martel <alain74martel@gmail.com>
2019-01-11 20:41:20 -06:00
Scott Lahteine fb8111553e getStatus => report_status 2019-01-11 19:51:00 -06:00
Chris Pepper 2919f3045d [LPC176x] Update PIO extrascript (#12878) 2019-01-11 19:45:33 -06:00
Scott Lahteine 19fea772e5 Use E_AXIS_N where it makes sense 2019-01-11 19:42:34 -06:00
Scott Lahteine 0d30ccf767 Tweaks to TMC26XStepper 2019-01-11 19:42:34 -06:00
HackingGulliver 1fd8e2c649 Fix: Junction Deviation calculates wrong cos(theta) on CoreXY (#12879) 2019-01-11 19:25:48 -06:00
Scott Lahteine b402040059 Split bed size sanity check into two 2019-01-11 15:49:57 -06:00
Chris Barr 1d33784bf9 Add RUMBA32 Board (#12856) 2019-01-10 19:34:31 -06:00
Ondřej Nový a0ef6198ff Level bed corners Z-hop height option (#12858) 2019-01-10 19:15:17 -06:00
Karl Andersson 8ae6f1e556 Fix errors and some compiler warnings with HAL_STM32 PlatformIO build (#12869) 2019-01-10 19:01:31 -06:00
Scott Lahteine e6484d9dab Return to status when SD card is removed 2019-01-10 15:43:31 -06:00
Scott Lahteine 5f2d75f45b Move PINS_DEBUGGING to @section develop 2019-01-08 20:05:05 -06:00
Scott Lahteine da42f27c9e Use maths macros for ceil/floor 2019-01-05 21:21:02 -06:00
Ludy de4561c980 VORON Add LCD option BEEP_ON_FEEDRATE_CHANGE (#12822) 2019-01-05 14:12:05 -06:00
Adrian Cuzman 917cf3c7f0 Fix (broken) link to Install ReArm tutorial (#12823) 2019-01-05 14:04:34 -06:00
Giuliano Zaro 709a6356f7 Remove obsolete test conditions (#12829) 2019-01-05 14:02:45 -06:00
Luu Lac bcf347403b Fix M106 extruder & fan count (#12820) 2019-01-05 14:01:35 -06:00
Kaushik Vemparala ba7e35cbab Add LCD option BEEP_ON_FEEDRATE_CHANGE (#12774) 2019-01-04 19:30:08 -06:00
jmz52 d372e7e477 SDIO support for STM32F1 (#12782) 2019-01-04 13:38:07 -06:00
Marcio Teixeira 6a8fb0f25f Simplify backlash compensation code. (#12813)
- Use `TEST(dm,axis)` to determine directions instead of doing comparisons.
- Remove recomputation of `millimeters` and `delta_mm` since backlash compensation should not affect the distance over which material is extruded.
2019-01-04 13:30:56 -06:00
Scott Lahteine a59d3d4323 Restore Flattr links to README 2019-01-03 17:07:29 -06:00
luxflow 7f244f9b9c Update LPC SD pins for BIQU SKR (#12767)
(Exactly matching the Azteeg X5 MINI Wifi)
2019-01-03 10:44:00 -06:00
jmz52 813a4ea107 Add support for Mks Robin TFT display (#12706)
* Add support for MKS Robin TFT display

- Add support for MKS Robin TFT display and encoder for MKS Robin board.
- Generic 128x64 UI with x2 upscale is used (for now).
- Tested on MKS Robin TFT V2.0 with ST7789V controller.
2019-01-03 10:38:39 -06:00
jmz52 c4237b529f Fix MKS Mini and SD card conflct over SPI mode (#12783) 2019-01-03 10:27:53 -06:00
Phr3d13 01f75591c6 Fix GTM32_PRO_VB Serial and HAL via watchdog (#12753)
Move `watchdog_reset` from `.h` to `.cpp` to eliminate the need to include `MarlinConfig.h` in a HAL-related file.
2019-01-03 09:46:49 -06:00
Scott Lahteine 288340cb6c Followup to VORON 2019-01-03 09:14:14 -06:00
Scott Lahteine 2aaa681dea Remove unused Cheaptronic pins 2019-01-03 08:58:55 -06:00
Marcio Teixeira 81e753064a Fix ExtUI compile warnings and error (#12799) 2019-01-03 08:36:43 -06:00
Ludy 74c47803f7 Add VORON printer (#12705) 2019-01-03 06:27:03 -06:00
kAdonis 637fb20c75 Allow 4 fan animation frames (#12772) 2019-01-03 06:03:06 -06:00
petieken d9cf5e4883 Update pins_BIQU_SKR_V1.1.h (#12758) 2019-01-02 13:50:05 -06:00
TheLongAndOnly cb643d87df Adding missing code for triple Z-stepper auto-align (#12786) 2019-01-01 18:22:04 -06:00
Ludy 14a7faf087 Fix compile warning comparison uint and int (#12788) 2019-01-01 18:20:12 -06:00
Marcio Teixeira 60cb36bef3 Misc. improvements (#12747)
* Make ExtUI respect MAXTEMP limits
  - Temperatures are now clamped by MAXTEMP limits rather than arbitrary values.
* Speed up USB init, add status
  - Speed up USB initialization
  - Show status message if init failed
* Enable status messages for EXTENSIBLE_UI
* Adjust max limit to MAX_TEMP - 15
* Misc. tweaks to formatting, const, etc.
2019-01-01 15:17:48 -06:00
InsanityAutomation 4f2473053c Fix M106 with SINGLENOZZLE 2018-12-31 20:10:18 -06:00
Reece Kibble 7557f8d68c Rename all Stm32f1 to STM32F1 (#12639) 2018-12-31 16:36:49 -06:00
Scott Lahteine 371d9a1acf Fix line-endings, formatting, whitespace
Followup to #12770
2018-12-30 15:38:20 -06:00
Ludy 135c74017c Fix compile DEBUG_EEPROM_READWRITE error (#12746) 2018-12-30 11:37:20 -06:00
Giuliano Zaro 54ba44ee37 Fix bad sanitycheck (#12748) 2018-12-30 10:44:15 -06:00
swilkens b01a630bd0 [2.0.x] Correct Ender 3 bed size (#12769) 2018-12-30 10:42:47 -06:00
Alain Martel 44ed34475b Add MKS BASE 1.4 pins (#12770) 2018-12-30 10:40:22 -06:00
Roxy-3D 3a16cb6d7f Slightly Slower Max X Axis speed
On some T-Rex 2+ machines the previous max step rate could lose steps....
2018-12-28 09:14:48 -06:00
Ludy 814d93c7cf Fix G33 sprintf output warning (#12738) 2018-12-27 18:05:42 -06:00
Ludy 3877bf9704 Fix compile error with delta and sensorless homing (#12740) 2018-12-27 17:51:22 -06:00
Ludy cfc5e96b4b Move JD to Config.h (and fix jerk->eeprom bug) (#12720) 2018-12-27 15:29:39 -06:00
Roman Moravčík 594898aea7 Limit hotend / bed temperature to maxtemp-15 (#12713) 2018-12-27 11:46:05 -06:00
InsanityAutomation 530ef5846f Make nomove=false for toolchange on filament swap (#12739) 2018-12-27 11:38:35 -06:00
InsanityAutomation 14ddda285c Confirmation on Abort SD print (#12717) 2018-12-27 11:36:39 -06:00
Msq001 f8c5d31864 Bugfix 2.0.x add motherboard pins define (#12689)
- `pins_BIQU_B300_V1.0.h` defines pins for B300, as found in the BIQU Thunder 3D printer.
- `pins_BIQU_SKR_V1.1.h` defines pins for bigtree/BIQU SKR V1.1 motherboard.
2018-12-27 10:52:35 -06:00
InsanityAutomation b7a8dcc35d Update Formbot T-Rex 3 pins (#12662) 2018-12-20 17:32:39 -06:00
Ludy f7127c44f8 Wanhao Duplicator i3 Plus pins create (#12701) 2018-12-20 17:30:36 -06:00
jmz52 33abb86b7e Add support for MKS Robin board (#12650)
Implement initial support for MKS Robin (STM32F103ZET6) board.
Custom build script is used to generate encrypted firmware compatible with original MSK Robin bootloader (i.e. safe firmware update from SD card and possibility to go back to original close-source firmware).
2018-12-20 17:23:27 -06:00
InsanityAutomation 367a9f65aa Add Formbot 350c Thermistor (#12661) 2018-12-20 17:04:17 -06:00
Ludy 33f3c75213 GTM32 Pro VB FAN-PIN correction (#12666) 2018-12-20 16:42:15 -06:00
Scott Lahteine 9d59a9c840 Followup to #12691 (typo) 2018-12-20 16:38:32 -06:00
Ludy 3829d6ccf8 FYSETC F6 13 - E2_SERIAL_TX_PIN correction (#12667) 2018-12-20 16:11:33 -06:00
Kadah d35dcafa3d Added MKS MINI 12864 support to FYSETC F6 V1.3 (#12656) 2018-12-20 16:10:49 -06:00
Roman Moravčík 98cf546771 Limit set hotend temperature to maxtemp. (#12690) 2018-12-20 15:56:37 -06:00
Roman Moravčík 4dad489a50 [2.0.x] Limit PID autotune target to maxtemp-15 (#12691) 2018-12-20 15:55:30 -06:00
Marcio Teixeira 8dcc28c9ae Squelch warning mentioned in #11061 (#12676) 2018-12-20 15:34:24 -06:00
Ondřej Nový 4c8a6eee7b [2.0.x] Update Czech translation (#12683) 2018-12-20 15:28:46 -06:00
Ondřej Nový fcaed685b2 [2.0.x] Set DEFAULT_NOMINAL_FILAMENT_DIA to 1.75 in Anet A6 config (#12664) 2018-12-18 13:35:59 -06:00
Ondřej Nový 0572be9439 [2.0.x] Enable PIDTEMPBED in Anet A8 example config (#12655) 2018-12-18 13:34:46 -06:00
Luc Van Daele c6e09c2689 [2.0.x] G33 clean up (#12648)
Remove obsolete workarounds in G33 for the now fixed zprobe_zoffset bug
2018-12-18 12:43:38 -06:00
teemuatlut 7a5e637a37 Add spreadCycle parameter sets (#12645) 2018-12-18 12:42:14 -06:00
Marcio Teixeira 902d5b0f8b Allow ExtUI to use LCD_SET_PROGRESS_MANUALLY (#12628) 2018-12-12 17:21:37 -06:00
Dave Johnson 9a4a463ec4 Sanity-check LIGHTWEIGHT_UI, move comment up (#12630) 2018-12-12 16:59:20 -06:00
teemuatlut 55144284c2 TMC connection test, spreadCycle parameters, improved debugging (#12616) 2018-12-09 20:54:48 -06:00
Ludy 97de9d54a5 Fix broken pins file include (#12617) 2018-12-09 19:06:03 -06:00
Ludy a7b3a61424 Improve some config comments readability (#12615) 2018-12-09 19:02:42 -06:00
Scott Lahteine daf07e4200 Align classic bed icon consistently 2018-12-09 12:00:10 -06:00
MasterPIC 3bb8b3529a Center ABL grid on bed with H parameter. (#12610) 2018-12-09 11:24:48 -06:00
Scott Lahteine 6cf8d40f41 Fix some serial echos of pin states 2018-12-09 02:38:32 -06:00
Scott Lahteine f6321f878a Simpler AVR + Trinamic + Soft Serial sanity-check (#12606) 2018-12-08 23:34:26 -06:00
Scott Lahteine 7d15854514 Add Z_MIN_PROBE_PIN to MKS SBASE pins 2018-12-08 15:31:59 -06:00
Scott Lahteine e8bda62d2a Followup to servo angles patch
Fix #12594
2018-12-08 15:31:59 -06:00
Scott Lahteine 18fedafbc5 Refresh screen on SD Init 2018-12-08 15:31:59 -06:00
Marcio Teixeira b22716e938 M425 Backlash Correction (#11061) 2018-12-08 14:36:46 -06:00
Scott Lahteine fa47ce369a Sanity-check for negative steps, feedrate, accel 2018-12-07 19:38:15 -06:00
Scott Lahteine ef81b5f03e Link to font docs in ultralcd_DOGM.cpp 2018-12-07 19:10:55 -06:00
Scott Lahteine 4388015f1a Tweak config formatting 2018-12-07 16:57:14 -06:00
Scott Lahteine b7e38ea249 Signal an invalid mesh for M420 enable / load 2018-12-07 16:14:11 -06:00
teemuatlut 50b2fbd031 Trinamic: Split stealthChop, improve driver monitoring, etc. (#12582) 2018-12-07 15:34:21 -06:00
Scott Lahteine 055cb2b956 Update mfpub 2018-12-05 18:57:47 -06:00
Scott Lahteine 9fbd73d931 Fix up some delta settings 2018-12-05 18:57:47 -06:00
Dave Johnson 0947b92734 Build and CI fixes and optimizations (#12584)
-Disable LDF "deep+" mode on AT90USB platforms. Appears not needed any longer (likely due to fix https://github.com/platformio/platformio-core/commit/7322df26ad8d43029b992a9bd3f3369840bc40da). Results in identical binary output and cuts compile time in half
-Disable Cartesio config from CircleCI (compile failure)
-Disable Geetech I3 Pro X GT2560 from CircleCI (compile failure)
-Enable EEPROM on Micromake example config (fix compile failure)
-Move FolgerTech/i3-2020 to AVR platform in CircleCI (fix CirculeCI build failure)
-Disable various examples failing to build in CircleCI
-Enable various examples no longer failing to build in CircleCI
2018-12-05 17:21:40 -06:00
mr-miky 11c7945365 Don't include STM32 Core code when compiling STM32 Generic (#12575) 2018-12-03 06:55:49 -06:00
Scott Lahteine 64389acdf1 Print a space after scrolling status 2018-12-03 06:17:09 -06:00
Scott Lahteine 7a361ad36a Alternative fan image option (#12579)
* Alternative fan bitmap
* Move bed over by 3px
2018-12-03 05:55:33 -06:00
Scott Lahteine 261c6f4b96 Fix pause/resume SD print
Followup to #12551, addressing #12566
2018-11-30 19:23:08 -06:00
Scott Lahteine 2224a4d61a Remove AVR-only MARLIN_DEV_MODE code 2018-11-30 17:54:24 -06:00
Scott Lahteine e874f9664c Tweaks to endstops code 2018-11-30 14:25:55 -06:00
Scott Lahteine 3c58b16c9f Move stepper enable/disable to stepper_indirection.h (#12562) 2018-11-30 12:48:46 -06:00
Scott Lahteine aaf862aef2 Fix angles for disabled EDITABLE_SERVO_ANGLES (#12559) 2018-11-30 12:31:42 -06:00
Scott Lahteine c986239837 A single SERIAL_ECHO macro type (#12557) 2018-11-29 16:58:58 -06:00
Scott Lahteine 69d869c3d9 Tweak FR icon. Update font data. 2018-11-29 12:59:30 -06:00
Scott Lahteine 0c1cd9f590 Fix "No SD Card" indicator 2018-11-29 12:35:31 -06:00
Jacob Jordan 8be91677df Fix Skew factors (#12555)
- Ensure Skew factors are calculated from test square measurements
2018-11-29 11:39:31 -06:00
Scott Lahteine 03ef2d6c82 Fix "paused" message and M125 called by M25 (#12551) 2018-11-28 19:28:31 -06:00
Scott Lahteine 95d154a91f Fans loop macro 2018-11-28 16:45:08 -06:00
Scott Lahteine 61db0b65b6 Followup to heating progress 2018-11-28 14:47:43 -06:00
Scott Lahteine 4f9ec9ab45 Add heating progress bars (#12543) 2018-11-27 21:15:52 -06:00
Scott Lahteine 929a513a6b Add poll_runout_states, which returns 1 for runouts (#12547) 2018-11-27 20:13:24 -06:00
Scott Lahteine 01b5c810d5 Space out multiple edit lines a bit 2018-11-27 18:10:19 -06:00
Scott Lahteine cd88ea2106 Fix runout debug output
Followup to #12544
2018-11-27 18:10:19 -06:00
Scott Lahteine cecc238f68 Save recovery info on SD pause 2018-11-27 14:42:19 -06:00
Marcio Teixeira 439a3e8463 Improve runout sensor, fix LIGHTWEIGHT_UI screen size (#12544) 2018-11-27 13:45:25 -06:00
Scott Lahteine 5b24ce9024 Hide M217 compile warning 2018-11-26 16:52:16 -06:00
David Bates d94b50a3d8 Add sample config for Delta with MKS SBASE (#10819) 2018-11-25 21:23:02 -06:00
InsanityAutomation dec721c52b Add Formbot Raptor2 and Raise3D pins (#12532)
* Add Formbot Raptor2 board
* Add Raise3D Rumba board
2018-11-25 19:56:06 -06:00
Scott Lahteine 6aae199572 Add missing boards to Makefile 2018-11-25 19:11:09 -06:00
Scott Lahteine 0a638cc022 Adjust Formbot Raptor pins 2018-11-25 18:35:45 -06:00
Ludy e5019a0481 Fix English special symbols (#12529) 2018-11-25 18:19:12 -06:00
skaaj4 1980931153 Add support for FYSETC F6 V1.3 board (#12527) 2018-11-25 18:16:25 -06:00
Scott Lahteine 09d6db491a Fix wait_for_bed compile error 2018-11-25 18:05:41 -06:00
Roman Moravčík d545f984b0 Update Slovak translation (#12523) 2018-11-25 17:44:51 -06:00
Ludy 730f223100 Correct FANMUX2_PIN (#12538) 2018-11-25 17:27:41 -06:00
Yücel Temel d857cdfb27 Update Turkish language (#12524) 2018-11-25 17:26:26 -06:00
Scott Lahteine 4a7c6f7241 NUM_ARRAY => COUNT 2018-11-24 00:27:45 -06:00
Giuliano Zaro 31113c5adf Update Italian language (#12512) 2018-11-24 00:26:54 -06:00
Scott Lahteine b57343c255 Put status screen options in Configuration_adv.h 2018-11-23 23:15:07 -06:00
Scott Lahteine 1fcc13b011 Allow Serial Overrun Protection to be disabled 2018-11-23 21:07:38 -06:00
Scott Lahteine 29c53f2402 Hide some compile warnings 2018-11-23 21:07:38 -06:00
Scott Lahteine caca3c8503 Use wait_for_bed with WAIT_FOR_BED_HEATER
Addressing #12517
2018-11-23 20:39:23 -06:00
Scott Lahteine f1efcfed14 Fix backslash in language_test.h 2018-11-23 20:39:23 -06:00
Yücel Temel 3b186a55ac Don't show superscript ³ with NOT_EXTENDED_ISO10646_1_5X7 (#12513) 2018-11-23 20:16:51 -06:00
Scott Lahteine 02f8f4187a Clean up font data generation script 2018-11-23 20:02:34 -06:00
Scott Lahteine 82c96c971e Bring superscripts slightly lower in BDF fonts 2018-11-23 20:02:34 -06:00
Sinisa Culic 8a0992d921 Fast PWM for controller fan (#12485) 2018-11-23 16:03:39 -06:00
Ludy e98d195901 Remove extra declarations in cardreader.cpp (#12520) 2018-11-23 15:58:20 -06:00
Scott Lahteine fd2998efd5 Revert ADC_KEYPAD direction behavior (#12508) 2018-11-22 06:00:00 -06:00
Scott Lahteine d29cb09b3e Fix a minor compile warning 2018-11-22 05:35:38 -06:00
Yücel Temel 5b1d52671c Use superscript 3 in language_en.h (#12504) 2018-11-22 02:27:28 -06:00
Marcio Teixeira 7109dadd21 Additional pin definitions for Archim 2 (#12500)
- Added GPIO pins to Archim 2
- Added new 108 pin to `fastio_Due.h`
2018-11-22 01:07:02 -06:00
Andy Shaw 4975b13b74 Fix problems with LPC1768 EEPROM flash emulation (#12503)
* Remove duplicate calls to PrepareSector

Some flash memory API calls require that a call to `PrepareSector` is done before use. However this call is already made by the LPC1768 framework so the calls in this code are not required.

* Ensure correct alignment of RAM buffer

The LPC176X flash API requires that the RAM buffer used for write operations must be word-aligned. This change ensures that this is the case.
2018-11-22 01:03:32 -06:00
Scott Lahteine b738972e69 General cleanup of Re-ARM pins 2018-11-21 19:00:49 -06:00
Scott Lahteine ee423dcdd0 Invert hotend bitmaps, by default 2018-11-21 01:02:06 -06:00
Scott Lahteine c5642a894f Fix ADC_KEYPAD middle button (#12493) 2018-11-20 21:39:30 -06:00
Scott Lahteine 0946cbcdca Revert some const changes (for now) 2018-11-20 08:19:48 -06:00
Scott Lahteine 4def8b3b5e Expanded options for _Statusscreen.h (#12455)
See the PR for full details. The updated system will be documented on the website in the near future.
2018-11-20 07:50:37 -06:00
Scott Lahteine d51e5690f4 Don't show updir with no card present 2018-11-20 07:01:46 -06:00
Scott Lahteine ec9d21a234 Shift YZ on graphical display to fit Z+123.45 2018-11-20 06:58:18 -06:00
Scott Lahteine 817a37169a Apply/unapply const here and there 2018-11-20 06:44:21 -06:00
Scott Lahteine 643e0066a0 Followup to #12451 2018-11-20 06:27:19 -06:00
Dave Johnson 8ea4eeb785 Revert #12311 PIO LDF work-around (#12484) 2018-11-20 00:05:01 -06:00
Marcio Teixeira 4bcb63b705 Fix for #12482 (#12483)
Fix Z-move to uninitialized position in SWITCHING_EXTRUDERS tool_change (no_move=true)
2018-11-20 00:04:11 -06:00
Marcio Teixeira 50ee747787 Fix compilation errors. Followup to #12439 (#12481) 2018-11-20 00:02:13 -06:00
Ludy 90a58488b5 Corrected unused var, default switch, Travis tests (#12477) 2018-11-19 23:59:48 -06:00
Scott Lahteine a4c15dc54f Modify MBL to use IJ instead of XY (#12478) 2018-11-19 09:08:15 -06:00
Scott Lahteine fc3f1c4572 Get u8g reference for lcdprint 2018-11-19 06:23:15 -06:00
Scott Lahteine 88c57eaf55 Clean up some u8g code (#12476) 2018-11-19 01:33:59 -06:00
Ludy 1f93d2bcf7 Fix LCD compile error, etc. (#12472) 2018-11-18 20:39:49 -06:00
Scott Lahteine 826d570162 Combine Travis CI option-setting commands (#12474) 2018-11-18 19:58:02 -06:00
Scott Lahteine 9d13f07d09 GTM32 Pro VB changes from Markku Sinisalo 2018-11-18 19:56:38 -06:00
Roman Moravčík 5fbe5cabc8 Fixed displaying of kill MSG_OUTAGE_RECOVERY string. (#12470) 2018-11-18 18:05:29 -06:00
kAdonis 4ae9a06c60 Update M303.cpp (#12471) 2018-11-18 18:04:51 -06:00
Ludy c0b75f49b6 Fix "no effect" and "unused variable" compile warnings (#12473) 2018-11-18 17:54:00 -06:00
Nils Hasenbanck 5a4fd8e0a6 Fix access to the DWT peripheral for STM32 HAL (#12434)
Access to the DWT peripheral for the `CYCCNT` register needs to happen before `main()`. The code needs to be called after the setup of the system clocks, so the right place is between the `premain()` and `main()` function of the STM32 Arduino core.

This patch moves the DWT access code to a new function, which is then placed between `premain()` and `main()`.
2018-11-18 01:30:46 -06:00
Scott Lahteine 7f225b9421 Fix MAX_MESSAGE_LENGTH 2018-11-18 01:11:26 -06:00
Scott Lahteine 06674a321a Remove extra include 2018-11-18 00:34:07 -06:00
Marcio Teixeira c1e17037e5 Various fixes for MarlinUI and ExtUI (#12439) 2018-11-17 22:21:44 -06:00
Giuliano Zaro d3605cfc26 Don't start watching heaters when target is 0 (#12453) 2018-11-17 21:53:52 -06:00
Ludy 93e958f695 Fix compile error with ZONESTAR_LCD+NO_LCD_MENUS (#12466) 2018-11-17 21:21:30 -06:00
Ludy 22d7fed60a Fix compile error with SD_FIRMWARE_UPDATE (#12462) 2018-11-17 21:13:36 -06:00
Nils Hasenbanck 779b2709ec Change temperature pin order for RemRam V1 (#12458)
Beta testers suggested to adopt the RAMPS order of temperature probe connectors. This commit fixes the order to the RAMPS order.
2018-11-17 16:51:06 -06:00
Scott Lahteine 8ebb4dc294 Followup to static CardReader 2018-11-17 07:52:35 -06:00
Scott Lahteine 7ee5894360 Allow float XY probe offsets
Responding to #12383

XY probe offsets should be integers because adding decimal points makes the code larger. But if decimals are very much wanted, this commit removes the old restriction.
2018-11-17 07:44:47 -06:00
Giuliano Zaro 43ecdb606f Fix a compile warning (#12452) 2018-11-17 07:08:25 -06:00
Ph0non 984c4ba8c7 Enable SD Card on RepRap Display and RADDS (#12446)
* Enable SD Card on RepRap Display and RADDS

Define the necessary pins in `pins_RADDS.h` (copied from the `RADDS_DISPLAY` section) for the use of the SD card slot on RRD.
2018-11-17 06:59:40 -06:00
Ludy 56a94c2a26 Use 'target_extruder' in M104 as with M109 (#12448) 2018-11-17 06:55:25 -06:00
Scott Lahteine 66580f32c2 Make CardReader class static (#12451)
* Make CardReader a static class
* Make CardReader flags into bitfields
2018-11-16 22:39:16 -06:00
Scott Lahteine 3e9ffaddb6 Consolidate, optimize some LCD menu code (#12450) 2018-11-16 21:44:48 -06:00
Scott Lahteine d97e31db4c Optimize Power-Loss Recovery (#12440) 2018-11-16 20:47:07 -06:00
Mateusz Krawczuk ca21ac6b9b Support two MAX6675 thermocouples (#8686) 2018-11-16 18:20:33 -06:00
Scott Lahteine 0e610815e4 No need for Cap:PAREN_COMMENTS 2018-11-16 04:28:40 -06:00
Scott Lahteine 7a075a5dc9 Tweak extruder errors 2018-11-16 01:32:21 -06:00
Scott Lahteine 2d92f333f5 Fix GcodeSuite::T active_extruder reference 2018-11-15 14:07:24 -06:00
Scott Lahteine d2bb53702a Optimize target_extruder, ignore T with mixing (#12432)
* Optimize target_extruder, ignore T with mixing
* Give G-code Tn parity with tool_change
2018-11-14 17:33:04 -06:00
Marcio Teixeira 5e586a6b39 Fix to runout sensor code. (#12431)
- "old_state" is no longer a class static variable.
2018-11-14 16:54:05 -06:00
Scott Lahteine d82c350de7 Miscellaneous LCD code renaming, reordering (#12430)
* Move special characters to language.h
* Apply some naming standards
* Clean up menu item draw functions
* Rename some Temperature methods
* UI => ExtUI
2018-11-14 13:13:51 -06:00
Scott Lahteine edfd106bc5 Rejigger Filament Runout class (#12428) 2018-11-14 11:45:57 -06:00
Scott Lahteine f4c128ecaa Move RRW keypad code to a common method (#12429) 2018-11-14 06:00:21 -06:00
Scott Lahteine 54ec5528a0 hasstatus => has_status 2018-11-14 01:34:28 -06:00
Scott Lahteine ebf585b673 Fix an old sanity check 2018-11-14 01:15:35 -06:00
Ryan 052d102ded UltiMachine Archim 1 support (#12404) 2018-11-14 00:27:39 -06:00
Scott Lahteine 664e20754d Clean up pins files 2018-11-14 00:23:33 -06:00
Scott Lahteine 1eb5249598 Fix Formbot Trex-2+ configs
Followup to #12422
2018-11-13 21:53:54 -06:00
thiagodesacosta 075a22ed65 Update Portuguese-Brazilian translation (#12402) 2018-11-13 19:42:25 -06:00
Marcio Teixeira 3ceab8474c Add required "cardreader.h" include (#12419) 2018-11-13 17:12:44 -06:00
Giuliano Zaro 98c2fc4e42 Endstops fix followup (#12423)
Followup to #12413
2018-11-13 17:10:07 -06:00
Roxy-3D f19fd642ce Updates to Formbot T-Rex 2+ configuration files (#12422)
Updates to Formbot T-Rex 2+ configuration files
2018-11-13 13:48:35 -06:00
Roxy-3D cda5ef08fa Debug of G2-G3 for UBL (#12386)
Changes only affect UBL.  Everything else is left alone.
2018-11-13 11:20:21 -06:00
AnHardt 9ad3aed0ef Fix tool-change for MIXING_EXTRUDER with < 2 virtual tools (#12417)
Fix #12416

Better handling of `ENABLED(MIXING_EXTRUDER) && !MIXING_VIRTUAL_TOOLS > 1` -  to not fall through to the general case. Fix compiler warnings for `#elif EXTRUDERS < 2`.
2018-11-13 04:56:10 -06:00
Giuliano Zaro d631267548 Refine endstops fixes (#12413)
When endstops/probe are enabled `ENDSTOP_NOISE_THRESHOLD` calls to `update` are required to properly re-sync endstops/probe status.
2018-11-13 04:31:58 -06:00
Scott Lahteine 0ee1a92971 Group status methods, share reset_status with Extensible UI (#12414)
* Group status methods, share reset_status with Extensible UI
* Move common DOGM code to headers
2018-11-13 01:47:45 -06:00
Scott Lahteine 690c4e8457 Clean TLM trailing whitespace 2018-11-13 00:03:34 -06:00
Scott Lahteine 143b2896e0 Add M412 to enable/disable filament runout detection (#12406) 2018-11-12 21:29:46 -06:00
Scott Lahteine a163c89c6a Followup to 50af1d1 2018-11-12 20:31:53 -06:00
Scott Lahteine fea2363a2e Clear old _site contents on regeneration 2018-11-12 19:52:25 -06:00
AnHardt be6271767f Fix BABYSTEP_ZPROBE_OFFSET (#12408)
Fix #12399

Did not compile without  `WATCH_HOTENDS || WATCH_THE_BED`.
Add condition to include "../../module/temperature.h".
2018-11-12 17:44:21 -06:00
Scott Lahteine 50af1d1e08 Differentiate translated On/Off from Serial ON/OFF 2018-11-12 17:23:08 -06:00
Scott Lahteine df907a905f Update UBL comments for debug change 2018-11-12 03:46:48 -06:00
Scott Lahteine da17f8ad37 For now (!) don't synchronize in M204 and M205
See if this has any deleterious effect on motion planning by slicers that inser their own jerk and acceleration controls. The problem I see is that these settings can take effect on blocks already in the planner, and the only way around this would be to shadow these settings in planner blocks and use the shadowed settings in the planner.
2018-11-12 02:43:24 -06:00
Scott Lahteine a3923424c7 Clean up LCD width/height determination 2018-11-12 02:37:40 -06:00
Scott Lahteine a0c795b097 Encapsulate common display code in a singleton (#12395)
* Encapsulate common LCD code in a singleton
* Depend more UBL code on UBL_DEVEL_DEBUGGING
  - Since most users don't need the debugging on at all times, this helps reduce the default build size for UBL by over 2K, a little closer to fitting on 128K boards.
2018-11-11 12:16:24 -06:00
Scott Lahteine 9da6809ac3 Adjust some comment spacing 2018-11-11 11:28:50 -06:00
Scott Lahteine 471f403a67 Reduce code size with plain inlines 2018-11-11 08:36:10 -06:00
Scott Lahteine 30a49f5ee2 Apply extra condition to LCD_PROGRESS_BAR 2018-11-11 08:36:10 -06:00
Scott Lahteine 4e0c935959 Update HAL and libs formatting 2018-11-10 19:43:23 -06:00
Scott Lahteine 47483e8c17 Update Raptor config 2018-11-10 19:42:46 -06:00
Scott Lahteine 6093df11dc Allow G26 to use the active extruder (#12387)
* Make lcd_quick_feedback argument optional
* Add click_to_cancel option to wait_for_hotend/bed
* Have G26 use the active nozzle and wait_for_hotend/bed
* Use wait_for_release in UBL G29
* Add 'T' parameter to G26 for an initial tool-change
2018-11-10 18:07:38 -06:00
articide 4260282df7 Tevo Little Monster example configuration (#12370) 2018-11-10 03:36:01 -06:00
Scott Lahteine bed15fcd81 Tweak 'echo_not_entered' used by MBL's G29 2018-11-10 01:32:51 -06:00
Scott Lahteine c239131ff5 Use 'serial_spaces' in 'print_2d_array' 2018-11-10 01:32:51 -06:00
Scott Lahteine 8ab1c16ebd Break out of 'mfpub' if 'gh-pages' checkout fails 2018-11-10 01:32:51 -06:00
Scott Lahteine 56150ec030 Add reference comments to MeshLevelingState 2018-11-09 21:31:20 -06:00
Scott Lahteine c4734b947b Have 'mfdoc' open the local site when it's ready 2018-11-09 21:31:20 -06:00
Ludy 24c5e57bb6 Update German language (#12379) 2018-11-09 15:25:29 -06:00
Giuliano Zaro fd7fd55662 Solve endstops issues (#12382)
- Partially reverts #11900 and tries to solve #12336
2018-11-09 14:58:04 -06:00
Scott Lahteine 78ccedd6a8 Fix M91x sanity-check to permit TMC2660
Fix #12362
2018-11-09 05:48:15 -06:00
revilor b60abc7c37 [2.0.x] Macro G-codes (#9365) 2018-11-09 05:25:08 -06:00
Giuliano Zaro ccdbf20f60 Update Italian language (#12368) 2018-11-09 04:04:02 -06:00
Roman Moravčík d08847b1a6 Update Slovak translation (#12376) 2018-11-09 04:03:07 -06:00
InsanityAutomation 7665dff58b No error on T0 with single-extruder and fix MIXING_EXTRUDER virtual tools (#12375) 2018-11-09 00:15:07 -06:00
Scott Lahteine 4ed6397e5d More comprehensive NO_LCD_MENUS (#12367) 2018-11-09 00:07:16 -06:00
Scott Lahteine 9c8f083d6c Extend pins errors to include the processor 2018-11-08 22:25:59 -06:00
Scott Lahteine 525ea554a1 Remove obsolete comments 2018-11-08 10:55:18 -06:00
Scott Lahteine ef724edd80 Apply HAS_LCD_MENU in EEPROM code 2018-11-08 10:03:05 -06:00
Scott Lahteine b169320a03 Clean trailing whitespace 2018-11-07 02:40:18 -06:00
Scott Lahteine 81b1e9d272 Fix up xdiff, ydiff, zdiff in tool change
Followup to #12137
2018-11-06 22:56:33 -06:00
InsanityAutomation 6471a75a22 Combine more tool-change variables (#12137) 2018-11-06 22:22:20 -06:00
Scott Lahteine 147e270208 Restore GTM32_PRO_VB temp and heater pins
Undo #12345
2018-11-06 21:41:30 -06:00
Scott Lahteine 8def25e475 Set CUSTOM_MACHINE_NAME for some configs 2018-11-06 21:41:30 -06:00
Scott Lahteine 812f6a7dd7 Fix Resume from SD Pause
In reference to https://github.com/MarlinFirmware/Marlin/pull/12098#issuecomment-436231690
2018-11-06 21:09:37 -06:00
Scott Lahteine 4f72e041f2 Use card.stopSDPrint() for completeness 2018-11-06 20:55:17 -06:00
Scott Lahteine 488a17b3f5 Use IS_SD_PRINTING() more 2018-11-06 20:55:17 -06:00
Marcio Teixeira 4dbaa6369f Fix const pointer assignment compile error (#12350) 2018-11-06 19:49:39 -06:00
Giuliano Zaro 959ed32636 Update Italian language (#12352) 2018-11-06 19:30:24 -06:00
Roman Moravčík 812bfec65e Update Slovak translation (#12354) 2018-11-06 19:29:28 -06:00
Ludy 1624722566 Update German translation (#12355) 2018-11-06 19:28:40 -06:00
Scott Lahteine e574f01568 More advanced pause tweaks (#12356)
* Followup to LCD_TIMEOUT_TO_STATUS=0
* Make continuous purge screen fit 20x4
* Unify purge message modes
* Preserve last-set pause header mode
2018-11-06 19:25:57 -06:00
Scott Lahteine 5a470d4a49 Apply some tool-change cleanup 2018-11-06 18:20:01 -06:00
Roman Moravčík 34ea458667 Fixed advanced pause messages (#12353) 2018-11-06 15:27:19 -06:00
Scott Lahteine 4c5ca89d8c Show the appropriate pause message (#12348) 2018-11-06 04:13:48 -06:00
Marcio Teixeira 8517d5f915 LCD menu code refactoring and cleanup (#12308) 2018-11-05 22:51:10 -06:00
Scott Lahteine b3b4e6dc45 Change Marlin debug flag names to fix conflicts (#12340)
In reference to #11000
2018-11-05 22:48:28 -06:00
Giuliano Zaro f7e682eeee Update Italian language (#12344) 2018-11-05 22:46:59 -06:00
Phr3d13 a813900fce Add Geeetech Rostock 301 config, update GTM32 Pro VB pins (#12345) 2018-11-05 22:42:06 -06:00
Scott Lahteine 04f173790f Remove trailing whitespace 2018-11-05 22:38:20 -06:00
Scott Lahteine c536ee1122 Clean up bq Zum Mega 3D pins 2018-11-05 22:38:20 -06:00
Scott Lahteine c31e1735dd Restore LPC1768_PIN_INTERRUPT_M, apply to Z3
- In reference to #12166
2018-11-05 06:28:49 -06:00
Scott Lahteine 93d5b945dd Hide mesh editing until a valid mesh exists 2018-11-05 05:13:34 -06:00
Ludy f34f09c821 Update German language (#12336) 2018-11-05 04:33:31 -06:00
Roman Moravčík eefd7676a3 Updated slovak translation (#12338) 2018-11-05 04:31:12 -06:00
Scott Lahteine 486f2a66a9 Fix MBL XY parameter error messages
Fix #11522
2018-11-05 04:17:37 -06:00
Scott Lahteine 2613ddf61c Fix "circle" 2018-11-05 04:17:37 -06:00
Scott Lahteine b779b42ffd Prevent current step-down going negative
Addressing #11348
2018-11-05 04:17:37 -06:00
Scott Lahteine 427bc64ba1 G28 O respects HOME_AFTER_DEACTIVATE
Addressing #11271
2018-11-05 04:17:37 -06:00
Scott Lahteine 3866aeac52 Clean up ENCODER_RATE_MULTIPLIER config 2018-11-05 04:17:37 -06:00
Scott Lahteine 498dfa291e Update and fix CHDK 2018-11-05 04:17:37 -06:00
Scott Lahteine fed84f2961 Use multiplier edit item for mesh point editing 2018-11-05 04:17:37 -06:00
Scott Lahteine d5ab4cd22a Provide a default for Z_PROBE_LOW_POINT 2018-11-05 04:17:37 -06:00
Scott Lahteine 3cbc3ecdd7 Fix 'M43 T' to use 'L' as last pin
- The documentation is correct. The code was wrong.
2018-11-05 04:17:37 -06:00
Scott Lahteine 1769249876 Recommend keeping endstops off 2018-11-05 04:17:37 -06:00
Scott Lahteine 5182eaf661 Fix endstops enable behavior during probing
Fix a bug introduced in #9582
2018-11-05 04:17:37 -06:00
Scott Lahteine 07a0822ebe M420 support in MARLIN_DEV_MODE 2018-11-04 20:54:38 -06:00
Scott Lahteine b2ad2c8751 Merge pull request #10944 from KangDroid/bugfix-2.0.x
Add a menu to edit MBL/ABL mesh data
2018-11-04 19:09:49 -06:00
Scott Lahteine 63be48ada6 Add MESH_EDIT_MENU to example configs 2018-11-04 19:07:47 -06:00
KangDroid 82ff7c6542 Add a mesh edit menu for MBL / ABL-Bilinear 2018-11-04 19:07:47 -06:00
Scott Lahteine 44fa7fb18c Cleanups for leveling-related code 2018-11-04 19:07:47 -06:00
Scott Lahteine cc2bc67440 ENABLED(NEWPANEL) => HAS_LCD_MENU 2018-11-04 19:06:10 -06:00
Scott Lahteine fc84878cba MSG_UBL_EDIT_MESH_MENU => MSG_EDIT_MESH 2018-11-04 19:06:10 -06:00
Scott Lahteine cd066bfeba Extend error messages for E factors sanity-checks 2018-11-04 18:42:56 -06:00
Ludy c10edb0998 Update, correct sanity-checks for up to 6 extruders (#12333) 2018-11-04 18:36:45 -06:00
Chris Pepper 32880ff42a Turn PlatformIO LDF off for LPC176x builds (#12334) 2018-11-04 18:32:32 -06:00
Scott Lahteine 0c85869c26 Clean up file endings 2018-11-04 18:30:10 -06:00
Scott Lahteine b99f0776d6 Clean up some U8G files 2018-11-04 18:30:10 -06:00
Scott Lahteine 8014e1cc9d Allow disable of LCD_TIMEOUT_TO_STATUS (when 0) 2018-11-04 18:30:10 -06:00
Giuliano Zaro bd05816fd8 Update Italian language (#12327) 2018-11-04 16:43:02 -06:00
Scott Lahteine 3c21483c88 Provide DOGLCD SPI pins for MKS SBASE + VIKI 2018-11-04 16:20:22 -06:00
Scott Lahteine e0956bb572 Drop 'register' storage specifier 2018-11-04 16:17:13 -06:00
Scott Lahteine c04cf127f7 Fix EEPROM servo angles init, section grouping 2018-11-04 16:14:54 -06:00
Scott Lahteine 9c0e05552e Suppress some compile warnings 2018-11-04 15:25:31 -06:00
Karl Andersson 176654791e Use board-specific or platform SPI pins in HAL_STM32 (#12323) 2018-11-04 15:03:45 -06:00
Scott Lahteine 60dbd8161c Fix VMAX editing
Fix #12326
2018-11-04 07:06:14 -06:00
Scott Lahteine b7ca93ba37 Remove dead comment 2018-11-04 06:10:35 -06:00
Scott Lahteine 608be966d7 Add servos to pins_FYSTEC_F6_13.h 2018-11-04 06:10:35 -06:00
Hannes Brandstätter-Müller 67b22760d9 Return to status to show manual deploy/stow messages (#12324) 2018-11-04 04:51:26 -06:00
tharts f5e8e8b53d Fix broken LPC176x build (#12317)
* Fix broken LPC176x build
* Add UBL+HD44780 test for LPC1768
2018-11-04 04:25:03 -06:00
Scott Lahteine f5eab912ed Apply #pragma once, misc cleanup (#12322)
* Apply #pragma once in headers
* Adjust some thermistors formatting
* Misc cleanup and formatting
2018-11-04 02:25:55 -06:00
Scott Lahteine 8696f882a9 Merge pull request #12313 from thinkyhead/bf2_scara_home_offset
Revive SCARA home offset (not fully implemented)
2018-11-03 07:05:24 -05:00
Scott Lahteine 56d2dcb184 Use first_page flag in place of page.page == 0 2018-11-03 06:59:21 -05:00
Scott Lahteine d1ff22b983 Revive SCARA's home offset (unimplemented) 2018-11-03 06:24:41 -05:00
Scott Lahteine 2c9586be0c Clear up HAS_WORKSPACE_OFFSET meaning 2018-11-03 04:06:37 -05:00
Scott Lahteine 6e3caf23b6 IS_DELTA => ENABLED(DELTA) 2018-11-03 03:57:11 -05:00
Scott Lahteine 19f49db96f Tweak / reduce menu items 2018-11-03 01:18:59 -05:00
Dave Johnson 8d630362b7 Ignore ARM-based Teensy library on ATUSB90-based Teensy (#12311)
Works around PIO src_filter behavior (see https://github.com/platformio/platformio-core/issues/1905)
2018-11-03 01:17:51 -05:00
Scott Lahteine e4cf175163 Synchronize on M204, M205 (#12302)
* Add parser.seen for multiple parameters
* Fix M666, use !seen for report
* Synchronize on M204, M205
2018-11-03 01:16:37 -05:00
Ludy 5ba6607181 Fix keypad-related compile error (#12306) 2018-11-02 22:29:32 -05:00
Scott Lahteine 2fb2e286ee Followup to #12256 2018-11-02 01:32:24 -05:00
Scott Lahteine 3eb9838dca Simplify TMC sanity-checks 2018-11-02 01:15:49 -05:00
Scott Lahteine f5b31e218d Followup to #12082 2018-11-02 01:15:27 -05:00
Scott Lahteine 31c28d0dd2 Drop pgm_read_*_near and let headers choose (#12301)
- Drop `pgm_read_*_near` and let headers choose.
- Define `USE_EXECUTE_COMMANDS_IMMEDIATE` as a conditional.
- Add `process_subcommands_now` for SRAM-based commands.
2018-11-02 00:42:16 -05:00
Scott Lahteine fce150f094 inline static => static inline 2018-11-01 23:15:17 -05:00
Giuliano Zaro 323c088356 Restore LED light color after pid tuning (#12082) 2018-11-01 22:04:19 -05:00
Ludy 9f77df2590 Followup to menu refactor. TMC warnings, sanity. (#12288)
- Followup fixes for menu refactor
- Fix TMC sanity checks, unused var warnings
2018-11-01 16:13:33 -05:00
Nils Hasenbanck cafabf2055 Implement DELAY_NS with CYCCNT on Cortex-M7 (#12283) 2018-11-01 16:11:51 -05:00
Scott Lahteine f5498168ae Ensure PENDING/ELAPSED use a 32-bit integer 2018-11-01 16:08:23 -05:00
MasterPIC 6e041b9c61 Use blink to show more info on LCD (#12256) 2018-11-01 15:56:12 -05:00
Scott Lahteine eb5600acd2 Add parentheses to LCD_CLICKED 2018-11-01 15:06:14 -05:00
Scott Lahteine 42f8b6c530 Make M125 work with SDSUPPORT (#12289) 2018-11-01 15:03:45 -05:00
Scott Lahteine f319087372 Followup to #12293 2018-11-01 14:41:03 -05:00
AnHardt 74bbb13008 Fix Mixer calculations for 32-bit processors (#12293) 2018-11-01 14:38:45 -05:00
Scott Lahteine 549d11225a Add to description of Z_STEPPER_AUTO_ALIGN
In response to #12272
2018-10-31 18:07:20 -05:00
Scott Lahteine 724c2ed9b4 Merge pull request #12286 from thinkyhead/bf2_menu_bed_corners
Fix LEVEL_BED_CORNERS menu not found
2018-10-31 18:06:25 -05:00
Scott Lahteine 2cff0d1f39 Move menu_level_bed_corners to its own file 2018-10-31 17:44:42 -05:00
Scott Lahteine 44f2a82a56 Move axis_homed, axis_known_position to motion.* 2018-10-31 17:44:42 -05:00
Scott Lahteine 946cf8b453 EEPROM read code grouping 2018-10-31 16:43:46 -05:00
Ludy f2adb4b9cc Update German language (#12280) 2018-10-31 16:40:41 -05:00
Karl Andersson 484ca68228 Fix misplaced parentheses (#12284) 2018-10-31 15:34:37 -05:00
Scott Lahteine 1d366db764 Tweaks to CR-10S configuration 2018-10-30 23:36:32 -05:00
Scott Lahteine b5d7f69b51 Followup to #12249 2018-10-30 22:51:45 -05:00
N95JPL b780b69c62 Use font ascent and descent for line positioning (#12224) 2018-10-30 22:39:44 -05:00
Scott Lahteine 9cd3529108 Organize language data, fix Korean and Danish 2018-10-30 20:41:16 -05:00
Chris Pepper 66d44c72c3 Add fast binary file transfer to SD card option (#12249) 2018-10-30 19:44:12 -05:00
Marcio Teixeira 72d8adfd1e Cleanup and refactor EXTENSIBLE_UI (#12227)
- Add `axis_t`, `extruder_t`, `heater_t`, and `fan_t` to eliminate ambiguity, improve type safety.
- Regularized getter/setter argument order and naming.
- `setAxisPosition` no longer stacks moves in the buffer, allowing it to be called repeatedly on each touch ui tap.
- Implement better manual moves for `EXTENSIBLE_UI` (#12205)
- Calling `setAxisPosition_mm` no longer buffers the entire move to the new position, but instead causes small moves towards it to be made during the idle loop. This allows the user to adjust the destination even after the move has started and makes the UI feel much more responsive.
- As suggested by @ejtagle, the new code keeps the planner buffer full to ensure smooth motion without stops and starts.
- Change `En`, `Hn` and `FANn` to zero-based indices.
- Labels consistent with the rest of Marlin code.
2018-10-30 19:42:26 -05:00
Karl Andersson 1946f729fd STM32 FastIO using register access (#12276) 2018-10-30 19:25:44 -05:00
Scott Lahteine 56057bcecd Fix lcd_impl_status_screen_1 2018-10-30 19:24:16 -05:00
Scott Lahteine 4ed579cafc Americanized English spelling 2018-10-30 18:55:38 -05:00
Scott Lahteine 9e663a624b Apply #pragma once to configuration files 2018-10-30 18:35:12 -05:00
Scott Lahteine 98c32d8df1 Fix a config endif label 2018-10-30 18:28:16 -05:00
Scott Lahteine 3583e2b449 Followup to Menu Refactor (#12275) 2018-10-30 16:34:45 -05:00
TheLongAndOnly 5536228359 G34 Auto-align multi-stepper Z axis (#11302) 2018-10-29 14:01:36 -05:00
Scott Lahteine f9b80e7217 Make getfilename_sorted standard for listings 2018-10-29 13:54:21 -05:00
Scott Lahteine 5ead026967 Fix menu_temp_xx_filament_change menu items 2018-10-28 20:43:33 -05:00
Scott Lahteine d632e44c8c [Merge] Refactor LCD menus / screens (#12199) 2018-10-28 18:18:22 -05:00
Ludy 1f9806875c Update German language (#12261) 2018-10-28 18:11:55 -05:00
mholeys 63ce8baa55 Fix Teensy 3.5/3.6 ADC access for ADC1 (#12258) 2018-10-28 15:51:49 -05:00
Scott Lahteine 3a935fd72b Reduce repetition in menu edit items 2018-10-28 15:46:45 -05:00
Scott Lahteine b063b1b722 Reorganize includes and declarations 2018-10-28 15:46:45 -05:00
Scott Lahteine 43cf913048 Move SD Card Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 0161d3f733 Move Custom User Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 3b0d2330b6 Move Delta Calibrate Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 6896847210 Move LED Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 9cd5471202 Move Job Recovery Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 9f11e0284c Move Filament Change Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine d87ab3ed20 Move Advanced Settings Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 587a64d80c Move Bed Leveling Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 96f313fb41 Move Info Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 423ab029b2 Move Temperature Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 489017995e Move UBL Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine a489c9fa52 Move Motion Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 3a9ad9f2b1 Move Configuration Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 143d4ec043 Move Tune Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 829effc1fe Move Main Menu to its own file 2018-10-28 15:46:45 -05:00
Scott Lahteine 37ff663b02 Convert LIGHTWEIGHT_UI to CPP 2018-10-28 15:46:45 -05:00
Scott Lahteine a964f098b3 Make dogm status screen a CPP 2018-10-28 15:46:45 -05:00
Scott Lahteine 8055ed24ff Move font data to a subfolder 2018-10-28 15:46:45 -05:00
Scott Lahteine 774a6e8199 Drop TALL_FONT_CORRECTION 2018-10-28 15:46:45 -05:00
Scott Lahteine c825c419d4 Convert DOGM / HD44780 impl to CPP files 2018-10-28 15:46:45 -05:00
Scott Lahteine 182b1405d9 LCD conditionals in configurations 2018-10-28 15:46:45 -05:00
Scott Lahteine 2bf18950ab Refactor LCD menus 2018-10-28 15:46:45 -05:00
Scott Lahteine ac5f2762b7 Use E_AXIS_N where possible 2018-10-28 15:46:45 -05:00
MasterPIC 6fbc87301f 'G29 H' to set a centered square probe area (linear, bilinear) (#12242) 2018-10-27 20:30:21 -05:00
Karl Andersson c1e8bd6add Remove STM32 board-specific delays (#12243)
...and replace with delays for all HAL_STM32 boards.
2018-10-27 17:26:12 -05:00
Scott Lahteine 3c9daf322a MSG_CNG_SDCARD => MSG_CHANGE_SDCARD 2018-10-27 13:56:29 -05:00
Scott Lahteine 4b7a0a5b39 Require TMCStepper 0.2.2 or newer
In reference to #12175
2018-10-27 11:15:28 -05:00
Scott Lahteine ab8425f1b5 Clean up PROBE_TRIGGERED_WHEN_STOWED_TEST (#12232) 2018-10-26 19:18:20 -05:00
Chris Rigter 3028a620af Add RACK_AND_PINION_PROBE (#12218) 2018-10-26 18:24:24 -05:00
InsanityAutomation ad60f0691c Add Creality3D RAMPS pins definitions (#12229) 2018-10-26 16:09:04 -05:00
Scott Lahteine 5580773191 Use FastIO, sanity-check LPC SD options, apply formatting (#12231) 2018-10-26 15:23:02 -05:00
Scott Lahteine d015f746cc Fix some compile warnings (#12220) 2018-10-26 03:53:06 -05:00
Scott Lahteine dacb5324e8 Fix display of Y on Graphical LCD 2018-10-26 01:43:47 -05:00
Scott Lahteine bf9dd4f4cf Add helpers for custom text in menu items (#12214)
For some features it can be useful to write custom text in a menu item. This commit provides helpers to make this easier.
2018-10-25 15:17:53 -05:00
Scott Lahteine e8031b1152 Add Custom Microstepping options 2018-10-25 11:26:32 -05:00
Scott Lahteine fbfb48cce0 Indent a block 2018-10-25 10:52:27 -05:00
Marcio Teixeira 1a00d1bdaf Add pullup to USB interrupt line
- A pullup on the INT pin is required when the pin is level-active
2018-10-25 10:42:08 -05:00
TheSFReader a07ac6312f G0 feedrate may be fixed or variable (#12172) 2018-10-25 10:35:16 -05:00
Scott Lahteine 53c535a0c1 Remove trailing whitespace 2018-10-25 09:46:33 -05:00
Roman Moravčík 55dec02ca1 Allow X, Y, Z manual move when cold. (#12209) 2018-10-25 09:13:52 -05:00
Luc Van Daele 7243101135 z_offset fix for deltas (#12210) 2018-10-25 09:11:26 -05:00
Scott Lahteine 9613f00877 Fix getProgress_seconds_elapsed to return seconds 2018-10-24 18:05:15 -05:00
gjdodd 5d487ef40e Fix null exception due to duration_t of zero (#12207) 2018-10-24 17:59:33 -05:00
Giuliano Zaro a9061714f2 Update Italian language (#12196) 2018-10-24 16:40:48 -05:00
InsanityAutomation aebbb2359d Fix IDEX homing X0 wrong direction (#12200) 2018-10-24 16:40:06 -05:00
gjdodd 0a549fd1f2 Fix EXTENSIBLE_UI compile errors (#12206) 2018-10-24 16:36:11 -05:00
Roman Moravčík a80ba8fc6e Slovak translation update (#12202) 2018-10-24 16:02:38 -05:00
Roman Moravčík e48cbff10d Fixed redefinition warnings of MSG_HOTEND_TOO_COLD. (#12203) 2018-10-24 15:00:07 -05:00
Scott Lahteine 7a04eb3a8b Fix some comment formatting 2018-10-23 22:35:44 -05:00
Scott Lahteine 2f873a119f Revert some UBL strings 2018-10-23 15:39:59 -05:00
Ludy a93e9e6e9b Use preheat labels in place of PLA/ABS (#12194) 2018-10-23 15:38:17 -05:00
Karl Andersson aa72884a6e Enable use of SERIAL_PORT_2 on HAL_STM32 (#12197) 2018-10-23 15:24:58 -05:00
Scott Lahteine 46360f18b4 Bring thermistor_75.h up to speed 2018-10-23 14:52:16 -05:00
Scott Lahteine e229b831fa Customizable preheat labels 2018-10-23 00:57:50 -05:00
Scott Lahteine a553ab82e0 Add e index to _lcd_move_distance_menu 2018-10-22 23:35:04 -05:00
Scott Lahteine 3a46212dd8 Better cold extrusion prevention in LCD menu (#12189) 2018-10-22 20:54:38 -05:00
Marcio Teixeira fc31da1114 Implement custom delay/millis for EXTENSIBLE_UI (#12188) 2018-10-22 19:37:48 -05:00
forkoz 3a3ab3391f Return set_directions() to stepper.cpp (#12182)
Initial manual Z move can be negative if your stepper is inverted. Leads to bad situations for crashed or initially booted printers.
2018-10-22 19:30:51 -05:00
Scott Lahteine e5ae7a07d1 Suppress compiler warning 2018-10-21 13:44:27 -05:00
Hannes Brandstätter-Müller 6ee2af5e2d Simplify pins_TRIGORILLA_14.h (#12162) 2018-10-21 03:23:20 -05:00
Roman Moravčík d801f85963 Correct EEPROM read/write disparities. (#12169) 2018-10-21 02:56:31 -05:00
Scott Lahteine 8d3a92fc4a Followup to millis_t patch 2018-10-20 23:23:58 -05:00
Ludy 44369d536a Use millis_t where needed (#12152) 2018-10-20 23:21:27 -05:00
Scott Lahteine b641571098 Replace types.h with millis_t.h 2018-10-20 23:07:12 -05:00
Scott Lahteine eeef4e630a Fix compile error in leds.h 2018-10-20 23:07:12 -05:00
Scott Lahteine 9969c06cb5 Fix compiler warning 2018-10-20 17:16:59 -05:00
Farkas Péter 427c80119a Hide some menu items when busy: fix typo (#12164) 2018-10-20 15:55:31 -05:00
InsanityAutomation 55ac2f4c23 Fix filament runout for idex duplication modes (#12168) 2018-10-20 13:39:33 -05:00
Karl Andersson b640b3b0d6 Define ST7920 delays for board ARMED (#12161) 2018-10-20 13:12:54 -05:00
Marcio Teixeira 2e5e689a7f Fix kill() and ExtensibleUI (#12160)
* Fix to isPrintingFromMedia()

  - isPrintingFromMedia() will now return true even if SD print is paused.
  - isPrintingFromMediaPaused() allows UI to determine if the print is paused.

* Don't use _delay_us in minkill (#12145)

  - In HAL_DUE, _delay_us is simply an alias for delay, which causes the board to hang and subsequently reboot due to the watchdog timer.

* Shorten code with IFSD macro
2018-10-20 01:44:46 -05:00
Scott Lahteine b381cad399 Clean up trailing whitespace 2018-10-19 15:27:17 -05:00
Scott Lahteine 9090065e9f Move EXTRA_FAN_SPEED above FWRETRACT 2018-10-19 15:15:00 -05:00
Karl Andersson 4eb798dbdc Add support for Arm'ed (STM32F4) board (#12147) 2018-10-19 14:50:52 -05:00
TheSFReader 1fb9b299d4 Add M524 to abort SD printing (#12155) 2018-10-19 14:25:07 -05:00
Scott Lahteine d26d9d5b81 Tweak IS_SD_INSERTED 2018-10-19 14:00:36 -05:00
Scott Lahteine c6a5c74208 Add parentheses to SD macros 2018-10-19 13:52:57 -05:00
Giuliano Zaro aa9202260d Fix endstop when no interrupt (#12158) 2018-10-19 13:45:39 -05:00
Scott Lahteine 8c02dd971b Move disable_all_steppers to minkill 2018-10-19 13:42:04 -05:00
Scott Lahteine 3847c08f7e Disable heaters/steppers before message 2018-10-19 13:30:46 -05:00
Marcio Teixeira 71e19baf69 Fix kill => disable_all_heaters => print_job_timer.stop (#12146)
- Remove `print_job_timer.stop()` from `disable_all_heaters`
- Call `print_job_timer.stop()` for relevant `disable_all_heaters()`.
- Split up `kill()` for watchdog interrupt safety
2018-10-18 21:20:56 -05:00
Ludy 4cc1c2627e Update German language (#12143) 2018-10-18 19:17:37 -05:00
Ludy 75a0d46edf Fix compile warning re: LCD_INFO_SCREEN_STYLE 2018-10-18 19:16:24 -05:00
Scott Lahteine a81763c237 Pins E sanity check tweak 2018-10-18 18:48:23 -05:00
Giuliano Zaro bc22641002 [2.0.x] Updated Italian Language (#12148) 2018-10-18 18:08:39 -05:00
Michael Triffon eded90bf87 Updated Azteeg X5 Mini Wifi pins for onboard SD (#12133) 2018-10-18 11:52:55 -05:00
nhchiu 27a84fd021 Remove unused option in Anycubic Kossel config (#12138) 2018-10-18 11:47:59 -05:00
Scott Lahteine 67a3c5a16a Alternative info screen (Prusa-style) (#12132)
* Fix Z value display
* Add HAS_PRINT_PROGRESS
* Alternative Info Screen option
* Add LCD_INFO_SCREEN_STYLE to example configs
2018-10-18 11:34:52 -05:00
Marcio Teixeira 5b7dd553d3 Fix sd_mmc_spi_mem capacity; clean up USB code (#12134)
- Fix an error in the return value of `sd_mmc_spi_read_capacity` which was causing the host OS to read beyond the last sector in the card.
- Clean up the USB flashdrive code and add better debugging.
2018-10-18 11:34:07 -05:00
Scott Lahteine df768e7d8f Followup to #12129 2018-10-18 11:29:49 -05:00
Chris Pepper 3c13c9e3e9 [LPC176x] Fix USEABLE_HARDWARE_PWM macro, cleanup multiple LED support (#12129) 2018-10-18 11:26:50 -05:00
InsanityAutomation a768df83cb Remove stale variable (#12136) 2018-10-18 11:26:14 -05:00
Hannes Brandstätter-Müller c36773bffb Update the Ender-4 example config (#12131)
- Enable filament change menu
- Enable bed-PID
- Enable s-curve acceleration
- Enable some menu items
- Update from Skorpi's new version
- Fix extruder steps, deactivate nozzle clean feature
2018-10-17 15:49:52 -05:00
Ludy 9c71bff5e8 Update German language (#12115) 2018-10-17 11:17:06 -05:00
Nils Hasenbanck 9deb23aa47 Add missing SerialUSB definition for STM32 HAL (#12124) 2018-10-17 11:14:10 -05:00
Nils Hasenbanck 0519ef0802 Update pins for final RemRam v1.3 board (#12125) 2018-10-17 11:13:38 -05:00
InsanityAutomation 3ec3872730 Single Z raise value for all tool-changing / parking (#12090)
* Universal tool-change Z lift
* Add TOOLCHANGE_ZRAISE to example configs
* Park/unpark changes to example configs
* Implement DEBUG_DXC_MODE
2018-10-17 11:11:41 -05:00
Scott Lahteine 6bdbe3299e Fix a comment 2018-10-17 10:33:54 -05:00
Scott Lahteine bc75eb2c64 Cleanup for HAL_spi_Due.cpp 2018-10-17 10:33:54 -05:00
AnHardt d82bcdeea1 Make PULSE_STOP(E) conditional (#12121) 2018-10-17 09:52:57 -05:00
Chris Pepper c90e26dfa6 fix normal extruder stepping (#12118) 2018-10-17 02:47:31 -05:00
Hannes Brandstätter-Müller 96bbda5d48 remove confusing comment (#12120) 2018-10-17 02:47:03 -05:00
Marcio Teixeira f98f4ac7ea Fix and improve EXTENSIBLE_UI (#12117)
- Add methods to access print counter data
- Clean up some inconsistent method names
- Clear lcd status after filament change
- Implement `lcd_reset_status` so it works like UltraLCD
2018-10-16 16:58:29 -05:00
Scott Lahteine 8bf596bd4c RETRACT_ZLIFT => RETRACT_ZRAISE 2018-10-16 16:46:40 -05:00
Marcio Teixeira 056561df93 [2.0.x] Enhancements to FILAMENT_RUNOUT_SENSOR (#12069)
- Added FILAMENT_RUNOUT_DISTANCE_MM option
- Added FILAMENT_MOTION_SENSOR option
2018-10-16 07:28:52 -05:00
Scott Lahteine cce4931342 Clean up recent contribs 2018-10-16 06:45:44 -05:00
Karl Andersson 8b5e51c9aa STM32F4xx modifications for HAL_STM32 (#12080) 2018-10-16 06:42:41 -05:00
Scott Lahteine bf0c809ff2 Update M165 comment 2018-10-16 06:10:27 -05:00
AnHardt 9ac9649183 Mixer - update descriptions (#12108) 2018-10-16 06:09:02 -05:00
Scott Lahteine 9bf5d4331c Clear up some compiler warnings 2018-10-16 05:47:02 -05:00
Scott Lahteine 0139762a96 Fix a sanity check 2018-10-16 05:46:33 -05:00
Scott Lahteine 2ecb124e42 Fix trailing whitespace 2018-10-16 03:50:16 -05:00
AnHardt f56968ba0b New Continuous Filament Mixer (#12098) 2018-10-16 03:38:57 -05:00
Ludy 2d2cd628c6 Update German language (#12094) 2018-10-16 02:59:04 -05:00
Scott Lahteine 84b59d58fb Clean up whitespace 2018-10-16 02:02:20 -05:00
swilkens 06e2afe8e0 [2.0.x] Reduce HOMING_FEEDRATE_XY for Ender 3 (#12105)
Homing on the Ender 3 with HOMING_FEEDRATE_XY set to 50*60 was shown (#12074) to cause the end-stop micro-switches to bottom out, causing the carriage for both X and Y axis to physically crash into the micro switch. Reducing the homing speed prevents the switches from bottoming out.
2018-10-16 01:51:47 -05:00
TheSFReader af939c158a Option for G0 to have a separate feedrate (#12089) 2018-10-16 01:49:51 -05:00
Scott Lahteine 3d5be2ea4b Merge pull request #12093 from p3p/pr_bf2_pulloutlpcframework
[HAL][LPC176x] Pull out framework, improve build, fix things
2018-10-14 17:57:21 -05:00
Christopher Pepper e5b4bf22d4 Remove debug output from flash persistent store implementation 2018-10-14 18:43:48 +01:00
Christopher Pepper 42fb7c14b0 Update the sdcard usb sharing config and apply to Re-ARM 2018-10-14 18:43:48 +01:00
Christopher Pepper 61fbd0aa59 update lpc builds to use platformios ldf limited to strict mode
need to identify why incompatible libraries are still included without specifically disallowing them
2018-10-14 18:43:48 +01:00
Christopher Pepper 254b68fe2c servo update 2018-10-14 18:43:48 +01:00
Andy Shaw 870bfd08f5 usb and sdcard sharing improvements
* Add traceback after watchdog timeout

Add the cpability to perform a traceback following a watchdog timeout.

* Enhanced hardware SPI

Allow use of either SSP0 or SSP1.
Ensure that no data is left in I/O buffers after calls to enable sharing of SSP hardware.

* Make flash emulation of eeprom the default

Make use of flash for eeprom storage the default. This means that usage of eeprom will not cause USB drive mount/unmount operations.

* Allow sharing of SD card

SD card I/O operations from the USB stack take place in idle loop, rather than at interrupt time. Allowing sharing of the SPI bus.

New configuration options to allow usage of the SD card to be specified.

* Fix problem with hardware SPI pins
2018-10-14 18:43:48 +01:00
Christopher Pepper 5ddf52d58e [HAL][LPC176x] Pull out framework into separate repository
Framework and build platform now located at https://github.com/p3p/pio-framework-arduino-lpc176x and https://github.com/p3p/pio-nxplpc-arduino-lpc176x respectively

fix mkssbase leds

move hardware serial

remove hardware/software serial

Hardware Serial extraction

HardwareSerial ISRs

fix disabled serial2 causing Serial object to link

move usb devices out to framework

separate out adc/pwm peripheral function from hal.cpp

fix includes

remove unused pwm init

move adc

HAL header update

templated filtered adc

LPC1769 platform
2018-10-14 18:43:48 +01:00
Roman Moravčík 213e94bce2 [2.0.x] Updated slovak translation (#12059) 2018-10-14 02:15:15 -05:00
Karl Andersson a40458405a Fix datasize error when FWRETRACT is disabled (#12086) 2018-10-14 02:14:34 -05:00
Scott Lahteine 951b25163e Extend M217 with configurable park/raise (#12076) 2018-10-13 23:08:20 -05:00
Kevin Velickovic ea13a77dcb Fixed Z-Probes NO/NC for Anycubic Kossel (#12083) 2018-10-13 20:34:56 -05:00
N95JPL ab9d5eb38d Add Bootscreen Animation (#12077) 2018-10-12 22:11:20 -05:00
Scott Lahteine 8653cedee4 Improve use_example_configs script 2018-10-12 21:54:09 -05:00
Scott Lahteine 26208a5c2f Clean up some boot screens 2018-10-12 18:56:39 -05:00
Scott Lahteine 9b6be0ae0f Fix lite status screen SD % 2018-10-12 17:02:59 -05:00
Scott Lahteine af3bf6c956 Tweak config spacing 2018-10-12 16:09:27 -05:00
Scott Lahteine a44ef27897 Outdent singlenozzle toolchange code 2018-10-12 15:19:03 -05:00
Scott Lahteine d338e4d875 Fix singlenozzle toolchange cold extrusion test 2018-10-12 15:15:25 -05:00
Roxy-3D 25b980dddb Remove erroneous Pin 12 definition
There is no switchable Power Supply.   Don't put it on Pin 12.   
(Pin 12 is actually FAN1)
2018-10-12 13:45:04 -05:00
Scott Lahteine ddaef1a60c Clean trailing whitespace 2018-10-11 21:40:55 -05:00
Scott Lahteine 49d4ed4d3f Merge pull request #12063 from thinkyhead/bf2_sensitive_pins
Add MS3 pins. Optimize SENSITIVE_PINS.
2018-10-11 01:10:34 -05:00
Scott Lahteine 1407afad73 Move SENSITIVE_PINS to its own file 2018-10-11 01:10:11 -05:00
Scott Lahteine 45e738876a Add stepper MS3 support
Co-Authored-By: TheLongAndOnly <thelongandonly@users.noreply.github.com>
2018-10-11 01:10:11 -05:00
Giuliano Zaro d43d4e4219 Refactor PRINTER_EVENT_LEDS, apply to M303 (#12038)
Co-Authored-By: Giuliano Zaro <gmagician@users.noreply.github.com>
2018-10-10 21:25:43 -05:00
Giuliano Zaro d8d76cd2ba [2.0.x] Italian language update (#12060) 2018-10-10 20:13:10 -05:00
Scott Lahteine e8d2cf4fb5 EEPROM followup (tmc_stepper_current_t) 2018-10-10 17:25:45 -05:00
Scott Lahteine 50cbca4c55 Hide some menu items when busy 2018-10-10 17:18:33 -05:00
InsanityAutomation 3cb5517ddb Make singlenozzle tool-change honor no_move (#12056)
...Set no move earlier so it applies
2018-10-10 16:49:59 -05:00
InsanityAutomation d332fcb8fa Fix firmware-retract compile errors (#12061) 2018-10-10 16:46:08 -05:00
Scott Lahteine 43940d59ed Fix trailing spaces 2018-10-10 16:24:35 -05:00
InsanityAutomation b2c1cd7eda Allow cold change of active extruder (#12055)
Followup to #11994
2018-10-10 09:57:48 -05:00
Scott Lahteine d556dc1865 Fix and improve EEPROM storage (#12054)
* Clean up Temperature PID
* Improve EEPROM read/write/validate
* Group `SINGLENOZZLE` saved settings
* Group planner saved settings
* Group filament change saved settings
* Group skew saved settings
* Group `FWRETRACT` saved settings
2018-10-10 09:45:20 -05:00
Scott Lahteine 9b5c1a5e77 Fix EEPROM checksum bug
Addressing #12048
2018-10-10 06:14:58 -05:00
Scott Lahteine 272d4a5167 Apply #pragma once 2018-10-10 02:57:01 -05:00
Scott Lahteine 07d33849b0 Fix unused var warning, apply ENABLED 2018-10-09 21:31:28 -05:00
Hannes Brandstätter-Müller a3e8cb1e44 [2.0.x] Ender-4 small improvements in Configuration (#11843) 2018-10-09 20:58:22 -05:00
Scott Lahteine cf5284cdf2 Add SD Firmware Update capability (#12043)
Co-Authored-By: timoxd7 <timoxd7@users.noreply.github.com>
2018-10-09 20:00:47 -05:00
Scott Lahteine 0bd54392b7 Use uint8_t in EEPROM code 2018-10-09 19:00:01 -05:00
Scott Lahteine ce82015d5f Fix include in G80 2018-10-09 17:24:56 -05:00
Marcio Teixeira cef1de89d0 Fixed incorrect axis index. (#12051) 2018-10-09 16:59:34 -05:00
Scott Lahteine d52deeb15a Adjust Travis CI tests 2018-10-09 16:48:43 -05:00
Marcio Teixeira d6d48e63fb Allow #defined TYPE arg to ultralcd menu macros (#12041)
Previously, it was not possible for the TYPE argument to ultralcd menu macros to itself be a #defined value. This made it difficult to create variables to set many related menu items to a common precision that could be easily changed.
2018-10-08 20:01:00 -05:00
Emilio Moretti 2ef7175b42 Update Ender-2 BED_MAXTEMP (#12042)
Also added details to the README to make sure the Ender-2 status is properly documented.
2018-10-08 19:57:44 -05:00
Scott Lahteine 7f94ca950e Add Marlin icons graphics file 2018-10-08 19:53:01 -05:00
Scott Lahteine 5f6aabccbe Tweak M48 spacing 2018-10-08 19:11:25 -05:00
Marcio Teixeira ec9aa4f468 [2.0.x] Miscellaneous fixes (#12039)
* Allow override of soft SPI pins in `pins_*.h`
* Add default case to avoid compiler warning.
* Additional pin definitions for Archim 2.
* Einsy Retro has same timings as Einsy Rambo.
2018-10-08 18:14:52 -05:00
Marcio Teixeira 906a24fa81 Extensible user interface API (#11193) 2018-10-08 15:44:05 -05:00
InsanityAutomation ee253991d4 Various fixups for single-nozzle filament swap (#12036) 2018-10-08 15:39:55 -05:00
Marcio Teixeira 8dbb305e8e Fix "Missing separator" errors. (#12035)
- Makefiles require tabs (not spaces) before shell commands.
- Other indentation can either be space or tabs.
2018-10-08 14:28:52 -05:00
Scott Lahteine 55e810d512 Fix G80 compilation 2018-10-08 13:11:36 -05:00
Scott Lahteine d5017e2788 Add status screen with 4 nozzles 2018-10-08 01:27:21 -05:00
Scott Lahteine 7db0113b53 Improve E_AXIS_N macro 2018-10-07 18:22:05 -05:00
Nils Hasenbanck 191df5e17d Correct PWM_PIN behavior for STM32 HALs (#12027) 2018-10-07 17:08:01 -05:00
Sam Lane f2ecf8d510 Add option to control Solenoids under PARKING_EXTRUDER (#12028) 2018-10-07 17:07:12 -05:00
InsanityAutomation 74cd6cb4fc Single nozzle filament change (#11994) 2018-10-07 17:06:14 -05:00
Scott Lahteine bfcf570d68 Try ISR_ALIASOF for Endstop Interrupts 2018-10-07 17:05:32 -05:00
Giuliano Zaro c0d9058e25 Shorten an Italian menu title (#12034)
…and change a multi-use "back" menu item.
2018-10-07 16:43:48 -05:00
teemuatlut dffb4c63dc [2.0.x] TMC2660 followup (#12029)
* Don't react to s2g on TMC2660. False positives
* Init with sensorless probing as well
2018-10-07 15:37:44 -05:00
Scott Lahteine d6b0fbd771 Use uint8_t for all fan speeds (#12032) 2018-10-07 15:34:41 -05:00
Scott Lahteine cb7844c8d4 Save PROGMEM on serial prefixes (#12033)
With default config and `EEPROM_SETTINGS`, saves over 200 bytes of PROGMEM.
2018-10-07 15:32:15 -05:00
Scott Lahteine 07db08e39d Fix EXTRUDER_AUTO_FAN_SPEED comment 2018-10-06 19:51:17 -05:00
Scott Lahteine ca0e308105 Fix up some units comments 2018-10-06 19:45:50 -05:00
Scott Lahteine 65b8f3821b Suppress temperature.h compile warning 2018-10-06 19:29:41 -05:00
teemuatlut c447d75916 Add support for TMC2660 (#11998) 2018-10-06 17:18:10 -05:00
Scott Lahteine cf0b9eb37c no need to use destination in do_pause_e_move 2018-10-06 16:43:21 -05:00
Scott Lahteine e8d677620c Use NUM_SERVOS in EEPROM code
Fix #12015
2018-10-06 15:11:32 -05:00
Scott Lahteine 0fcdfdeed6 Followup to #12017 2018-10-06 13:23:58 -05:00
Phr3d13 acac2adfc8 Add support for MeCreator2 (#12017) 2018-10-06 12:26:49 -05:00
Thomas Moore 49823a4939 Fix broken jerk handling (#12019)
Fix #12004
2018-10-06 12:02:50 -05:00
Scott Lahteine 68bb75c847 Merge pull request #12013 from TheSFReader/CNCParser
CNC GCode dialect compatibility improvements
2018-10-06 00:32:58 -05:00
Scott Lahteine 52a37913c1 Extend and apply some corrections 2018-10-06 00:27:21 -05:00
Scott Lahteine 77b9a41f1f Add G-code extensions to example configs 2018-10-06 00:15:35 -05:00
thesfreader e09c144674 Add CNC-like G-code options 2018-10-06 00:15:27 -05:00
Scott Lahteine 33056046a3 STM32 non-generic PWM_PIN and USEABLE_HARDWARE_PWM (#12016) 2018-10-06 00:14:12 -05:00
Scott Lahteine d5141c4e03 Fix up leading/trailing whitespace 2018-10-05 18:19:59 -05:00
Marcio Teixeira 03fc4d31d0 Makefile support for 32-bit Archim board and new TMC library (#11997)
* Support new TMC library and 32-bit Archim board

- Added IS_MCU flag
  - When IS_MCU flag is 1, AVR compiler will be used
  - When IS_MCU flag is 0, ARM compiler will be used
- Added support for new TMC library
- Added support for a 32-bit Archim board, which could probably be used as a basis for other 32-bit boards.
2018-10-05 16:06:11 -05:00
Scott Lahteine 65b36642f8 Fix Anycubic Kossel config 2018-10-04 20:27:05 -05:00
Scott Lahteine acb91b1b3f Merge pull request #11115 from marcio-ao/pr-usb-thumbstick-support
[2.0.x] Add support for USB thumbdrives/flashdrives
2018-10-04 20:03:21 -05:00
Scott Lahteine fc326b3dde Add USB_FLASH_DRIVE_SUPPORT to examples
Co-Authored-By: marcio-ao <marcio@alephobjects.com>
2018-10-04 19:54:12 -05:00
Marcio Teixeira 2067619a26 Add USB_FLASH_DRIVE_SUPPORT 2018-10-04 19:54:12 -05:00
Giuliano Zaro 07fe8d28be [2.0.x] Partial Italian revert (#12008)
- Use a comma for decimals just in one message has not been a good idea.
- Full comments translation
2018-10-04 14:38:54 -05:00
Scott Lahteine 517b4f4cd4 Fix lightweight UI hotends display 2018-10-04 14:37:24 -05:00
Giuliano Zaro 72a750e0eb [2.0.x] Update Italian language (#11996) 2018-10-04 03:03:47 -05:00
Scott Lahteine bb561baf9e Tweak some config comments 2018-10-04 02:42:12 -05:00
Nils Hasenbanck fcf6d127fd STM32 timer simplification (#11995)
Prescalers aren't calculated for the given target frequency.
Stepper timer should run at 2 Mhz and temperature timer at 72 Khz.
2018-10-03 22:33:24 -05:00
Scott Lahteine 8daadd2c8c Fix TMC_DEBUG undefined report_tmc_status (#11993) 2018-10-03 11:56:49 -05:00
Scott Lahteine c40ea1f0fd Update EEPROM_VERSION
And set EEPROM_OFFSET to 0, since the historical 100 skipped bytes are never used.
2018-10-03 11:34:34 -05:00
Scott Lahteine 1358bd9319 Make MAX_EXTRUDERS always 6 2018-10-03 11:32:19 -05:00
AnoNymous 001f26b642 Template struct simplification for serial (#11990) 2018-10-03 11:01:21 -05:00
Scott Lahteine 348004c34f STM32F7 HAL using the official STM32 Arduino Core (#11750) 2018-10-03 03:26:07 -05:00
Scott Lahteine 3e58b3a5d4 Followup to #11943 2018-10-03 02:55:10 -05:00
teemuatlut c3229e1b34 Migrate to a new TMC library (#11943) 2018-10-03 02:48:49 -05:00
brian park 2abf3d258d Korean language translation support (#11987) 2018-10-03 01:53:34 -05:00
Eduardo José Tagle d6955f25b2 Expand serial support in DUE/AVR hals exploiting the templated MarlinSerial classes (#11988) 2018-10-03 00:47:27 -05:00
Eduardo José Tagle f6f2246f59 Templatized serial classes (#11982) 2018-10-02 22:15:30 -05:00
Scott Lahteine ee53f7d813 Revert header reorg. 2018-10-02 22:09:41 -05:00
Scott Lahteine d619ba2685 Tweak STM32F4 config 2018-10-02 22:03:00 -05:00
Chris Pepper 6b1967ed33 Add back in the Env backup restore around each platforms tests (#11980) 2018-10-02 21:36:18 -05:00
LineF d777cef837 fixed minimum macro (#11986) 2018-10-02 21:35:34 -05:00
Scott Lahteine e3f7b69105 Add PROBING_STEPPERS_OFF (#11984)
Co-Authored-By: houseofbugs <houseofbugs@gmail.com>
2018-10-02 05:13:58 -05:00
Scott Lahteine 0e5bcdf695 Make DISABLE_INACTIVE_EXTRUDER a simple switch 2018-10-02 04:57:03 -05:00
Scott Lahteine 0dedb3e139 Reorganize some core headers (#11983) 2018-10-02 04:25:46 -05:00
Thomas Moore ab4549d2bc [2.0.x] Add simultaneous retraction for mixing extruder (#11941) 2018-10-01 23:32:02 -05:00
Scott Lahteine 80f9473fb4 Clean up some Travis tests 2018-10-01 19:03:25 -05:00
Scott Lahteine c75f5a376b Tweak some comments 2018-10-01 18:34:14 -05:00
Scott Lahteine 366fae684c Merge pull request #11978 from thinkyhead/bf2_minmax_no_pragma
Ensure MIN/MAX override, reduce STM32F4 build warnings
2018-10-01 05:33:18 -05:00
Scott Lahteine f4c625d3a1 Ensure MIN/MAX overrides 2018-10-01 05:32:55 -05:00
Scott Lahteine 3019713402 Reorganize some enums 2018-10-01 05:32:55 -05:00
Scott Lahteine 606a4362b3 Reduce STM32F4 compile warnings 2018-10-01 04:41:17 -05:00
Scott Lahteine ccef14e2b2 Merge pull request #11191 from dot-bob/MOVE_Z_WHEN_IDLE-2.0.x
Add option to move Z on double-click when idle
2018-10-01 02:08:52 -05:00
Scott Lahteine b3154b2120 Apply MOVE_Z_WHEN_IDLE to example configurations
Co-Authored-By: dot-bob <gibben@gmail.com>
2018-10-01 01:41:11 -05:00
dot-bob b0fd8f2d74 Add option to move Z on double-click when idle 2018-10-01 01:41:11 -05:00
Scott Lahteine 389376c40e Clean up softspi.h 2018-10-01 01:29:48 -05:00
Scott Lahteine e78bdd654d Clean up BABYSTEP options 2018-10-01 01:29:21 -05:00
InsanityAutomation 8ae113ff36 Show zprobe_zoffset when BABYSTEP_HOTEND_Z_OFFSET is disabled (#11973) 2018-10-01 00:30:10 -05:00
InsanityAutomation 2e98437392 Clean up main menu (#11972) 2018-10-01 00:15:06 -05:00
InsanityAutomation 6d862b2916 Home before level corners, if needed (#11976)
…and add a consistent homing screen for all LCD pre-homing.
2018-10-01 00:14:28 -05:00
Scott Lahteine 11ac75edcb Use PGM_P for PSTR pointers (#11977) 2018-09-30 23:44:33 -05:00
InsanityAutomation 4d5566a6b7 Add filament runout sensor menu item (#11971) 2018-09-30 21:33:46 -05:00
Scott Lahteine 8489673cea Adjust some HAL formatting 2018-09-30 21:24:37 -05:00
Scott Lahteine fb8a07660a Followup to minmax patch
Co-Authored-By: Palatis <palatis@gmail.com>
2018-09-30 21:17:31 -05:00
Scott Lahteine 3c40933713 Remove trailing spaces, old comment 2018-09-30 20:47:06 -05:00
Hannes Brandstätter-Müller a3ec805c97 Anycubic Kossel Linear+: corrected DELTA_DIAGONAL_ROD (#11964) 2018-09-30 05:41:26 -05:00
AnoNymous b30ca652ae Replace MIN# / MAX# with variadic MIN / MAX (#11960) 2018-09-30 04:59:14 -05:00
Scott Lahteine e10f730478 Tweak vector_3::apply_rotation 2018-09-30 01:51:33 -05:00
Scott Lahteine e2ab78d876 Fix SERIAL_PORT_2 sanity check 2018-09-30 00:24:10 -05:00
AnoNymous a644d8cb93 Avoid copies in vector and matrix (#11959) 2018-09-29 23:04:40 -05:00
Scott Lahteine 693865a649 Fix some whitespace 2018-09-29 22:36:36 -05:00
Scott Lahteine 9903305dda Merge pull request #9582 from tcm0116/2.0.x-sensorless_probing
[2.0.x] Add TMC2130 sensorless probing
2018-09-29 21:02:22 -05:00
Scott Lahteine 14df753086 Correction for block->mix_steps
Fix #11484
2018-09-29 19:13:17 -05:00
Alexander Amelkin 2ecfda80ac Improve support for JTAG/SWD pins reuse (#11963)
STM32 can reuse JTAG and SWD pins separately. Add `DISABLE_DEBUG` option to disable both interfaces and retain `DISABLE_JTAG` to disable JTAG only.
2018-09-29 19:00:49 -05:00
Scott Lahteine bb47009656 Apply sensorless changes to example configs 2018-09-29 18:54:14 -05:00
Thomas Moore 3286325044 Add TMC2130 sensorless probing 2018-09-29 18:54:14 -05:00
Scott Lahteine 7d5c336c56 Corrections for dylsexic TMC 2018-09-29 18:51:11 -05:00
Scott Lahteine 71d06ef1b2 Make opt_set, opt_set_adv, pins_set also enable 2018-09-29 18:36:33 -05:00
Scott Lahteine d89d8fe852 Fix Busy State in temperature.cpp
Fix #11954
2018-09-29 17:03:35 -05:00
Giuliano Zaro 70e7a465d8 [2.0.x] Fix compile error (#11951)
Fix compile error intruduced with M109 modification
2018-09-29 13:48:23 -05:00
Hannes Brandstätter-Müller 935b120949 Anycubic Kossel: probe closer to the edge (#11950) 2018-09-29 02:26:16 -05:00
Scott Lahteine 1410e79e7f Ensure M109 handles autotemp 2018-09-29 02:12:06 -05:00
Scott Lahteine e4389f7d23 Standard methods to wait for heating (#11949) 2018-09-29 01:44:47 -05:00
Scott Lahteine bdc9889d3a Fix a sanity check 2018-09-29 00:24:25 -05:00
Scott Lahteine 321f9140d1 Followup to #11904 2018-09-28 20:04:40 -05:00
InsanityAutomation 23114aeb81 Fix garbled M119 output. Honor NUM_RUNOUT_SENSORS (#11948) 2018-09-28 19:00:11 -05:00
Scott Lahteine 1667ed9d1c Pause should use ECHOLNPGM 2018-09-28 18:15:38 -05:00
Victor Tseng 93839e2f73 Add option to enable/disable autoretract altogether (#11904) 2018-09-28 16:52:56 -05:00
Scott Lahteine ad21a4f07b Tweaks to HAL format and order 2018-09-28 15:59:50 -05:00
Scott Lahteine b682a1961a Tweak STM32F7 TMC2660 class 2018-09-27 21:13:15 -05:00
Scott Lahteine a0a3b23e35 Reduce Raptor bootscreen by 144 bytes 2018-09-27 18:24:40 -05:00
InsanityAutomation 95d793456b Add Formbot Raptor config, fix other Formbot configs (#11926) 2018-09-27 19:20:43 -04:00
Mitch Roote d016b572e3 [2.0.x] Add pin configuration for Fysetc F6 (#11932) 2018-09-27 19:20:19 -04:00
Alexander Amelkin 84926b1d5a HAL general support for DISABLE_JTAG option (#11211)
Some STM32-based boards may use multiplexed JTAG pins as IO. Up to now the `DISABLE_JTAG` option (defined in pins files) was only supported for AT90-based boards. This commit generalizes the code and adds support for boards based on STM32F1 and STM32F4.
2018-09-27 19:02:50 -04:00
Scott Lahteine c575c5d5f6 Bring example configs up to date (#11939) 2018-09-27 18:47:26 -04:00
Scott Lahteine 6b1a4f30a8 Fix case of T-Rex 3 _Statusscreen.h 2018-09-27 17:00:55 -05:00
Scott Lahteine ab7bfa86e2 Fix case of T-Rex-3 _Statusscreen.h 2018-09-27 17:00:55 -05:00
Scott Lahteine 241168926d Update some configs 2018-09-27 16:42:59 -05:00
Scott Lahteine cb6454118c Workaround for Pronterface M29 2018-09-27 16:27:02 -05:00
Victor Tseng eeab4141db [2.0.x] Anycubic Trigorilla 14 pins tweak (#11869) 2018-09-27 16:06:21 -04:00
InsanityAutomation cb9dc56630 Add GT2560 v3 support (#11914) 2018-09-27 15:13:15 -04:00
InsanityAutomation f2e630a05e Stow probe on probing failed (#11936)
Prevents probe from being left down should probing fail and print job continue
2018-09-27 13:26:14 -04:00
Hannes Brandstätter-Müller 0b602ae101 [2.0.x] Fix Anycubic Kossel with Probe V1, stuck LCD message after stow (#11929) 2018-09-27 13:23:53 -04:00
Giuliano Zaro dc11131656 [2.0.x] fix possible race condition (#11923)
Fix some commits done in #11900
2018-09-25 13:56:57 -04:00
Scott Lahteine d6b9327c11 Followup for Endstop Noise Threshold
Followup to #11912
2018-09-25 13:50:49 -04:00
Scott Lahteine aa6e8e9325 Tweak some config comments 2018-09-25 13:42:28 -04:00
Scott Lahteine 5490a664f5 Expose: Homing Validation and Endstop Noise Threshold (#11912) 2018-09-24 21:59:12 -04:00
Scott Lahteine cee34f7290 Followup for BABYSTEP_HOTEND_Z_OFFSET (#11916) 2018-09-24 21:46:56 -04:00
teemuatlut 884ad75cb8 Update config files 2018-09-24 17:26:18 -04:00
Giuliano Zaro 18e456d38d [2.0.x] fix home endstop bug (DON'T MERGE, needs discussion) (#11900) 2018-09-24 16:56:01 -04:00
Scott Lahteine 6742026568 Followup for 6 extruders 2018-09-24 14:36:50 -04:00
Scott Lahteine 04bdff4115 Add a blank line 2018-09-24 12:49:02 -04:00
Marcio Teixeira ccbd045f02 Fixed warning about comparing signed to unsigned (#11909) 2018-09-24 12:03:29 -04:00
InsanityAutomation 1104054d73 2.0 IDEX Independent z offset and other fixes (#11862)
* Add Formbot Raptor board

Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>

* Add a second Z probe Z offset

Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>

* Modify method to utilize live adjustment of hotend z offset

Should probably move config option to babystepping and rename as it may now apply to all multiextruder systems

* Move config item and catchup other code to current method
2018-09-24 09:40:48 -05:00
Scott Lahteine 217e0efd20 General option PAUSE_BEFORE_DEPLOY_STOW (#11905) 2018-09-24 00:43:43 -04:00
Scott Lahteine 849dea92a8 Move probe extras below probe types 2018-09-23 23:23:07 -04:00
Scott Lahteine a2b0260f0f Update Sublime files 2018-09-23 19:59:08 -04:00
Hannes Brandstätter-Müller a4cdffdd69 Support for manually deployed fixed probes (#11899) 2018-09-23 19:59:08 -04:00
Scott Lahteine ddcbf80f23 Followup for Z_TRIPLE_ENDSTOPS 2018-09-23 12:22:31 -04:00
Marcio Teixeira c411e7eb0d [2.0.x] Squelch compiler warnings seen with -Wall (#11889) 2018-09-23 12:00:34 -04:00
Roxy-3D 83105590a0 Better default values for Mesh Inset 2018-09-22 03:25:18 -04:00
Roxy-3D 4163c1a514 Fix end stop and Z-probe reporting logic 2018-09-22 03:25:18 -04:00
Scott Lahteine ea9eb2fc8f Fix servo angles in config-store 2018-09-21 15:41:36 -04:00
Scott Lahteine afdd4803f8 Fix mfpub syntax highlighting 2018-09-19 23:57:05 -05:00
Roxy-3D d3d6be8210 Add MAX7219 reverse units option (#11860) 2018-09-19 18:54:51 -05:00
Scott Lahteine beab9733f8 Remove extra clauses in config-store 2018-09-19 17:06:51 -05:00
Scott Lahteine 5a74b12b45 Followup to #11769 2018-09-19 16:40:32 -05:00
InsanityAutomation f38570ac55 Add custom user menu title (#11769) 2018-09-19 15:04:34 -05:00
Scott Lahteine 17494099a9 Fix parking_extruder_tool_change
Fix #11872
2018-09-19 03:02:07 -05:00
Scott Alfter 140caf99b8 E0_CS_PIN moved from A13 to A15 on RAMPS-FD v2.2 (#11865) 2018-09-18 22:24:20 -05:00
Scott Lahteine 10590c2f80 Fix some fan conditionals 2018-09-18 21:23:33 -05:00
Scott Lahteine e4ee607fc8 Fix Dual X FRS in M600
Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>
2018-09-18 21:23:33 -05:00
Scott Lahteine bae8f82ba8 [2.0] Fix Mixing Extruder mixing factors (#11861) 2018-09-18 01:10:41 -05:00
Scott Lahteine c5e5cc5e9f Fix some trailing whitespace, macros 2018-09-17 17:30:04 -05:00
AnHardt 54bd124665 2.0.x: Fix normalize_mix() (#11856)
Mix factors needed to be updated consistent with the recent Stepper/Planner code refactor.
2018-09-17 16:37:38 -05:00
Roxy-3D 5fbfbde532 Fix example file to pull in correct pins file 2018-09-17 10:41:30 -05:00
Roxy-3D 378f354939 IDEX Scaled Duplication is still under development
Take it out of the menu until it is tested and working.
2018-09-17 10:26:44 -05:00
Scott Lahteine 65045ba54b tmc_util fix part 2
Followup to 115abf9
2018-09-17 05:36:17 -05:00
Scott Lahteine 09a2bee8aa Support more filament runout sensors in M119 (#11851) 2018-09-17 03:27:13 -05:00
Scott Lahteine 115abf9c53 Fix syntax error in front of tmc_axes 2018-09-17 01:10:20 -05:00
Roxy-3D 0780913848 IDEX Improvements (#11848) 2018-09-17 01:06:22 -05:00
Scott Lahteine 39732838b4 Tweak indent of Chinese languages 2018-09-17 00:58:32 -05:00
Scott Lahteine 53bd0b55cb Followup for 6 extruders 2018-09-16 23:57:50 -05:00
Scott Lahteine 722d186ca0 Merge pull request #11841 from thinkyhead/bf2_radds_ext_board_v3
Support for RADDS Extension Board V3 (and 6 extruders)
2018-09-16 23:32:04 -05:00
Scott Lahteine 1718eff54a Code changes supporting up to 6 extruders 2018-09-16 22:32:53 -05:00
Scott Lahteine f5c210d33d Config changes supporting up to 6 extruders 2018-09-16 22:22:35 -05:00
Scott Lahteine d948c6e867 RADDS Extension Board V3 support 2018-09-16 22:22:35 -05:00
Thomas Moore c437bb08f1 Overhaul of the planner (#11578)
- Move FWRETRACT to the planner
- Combine leveling, skew, etc. in a single modifier method
- Have kinematic and non-kinematic moves call one planner method
2018-09-16 21:24:15 -05:00
Scott Lahteine 8323a08642 Clean up some whitespace 2018-09-16 19:44:21 -05:00
Scott Lahteine 4d99f9d96a Merge pull request #11062 from TheLongAndOnly/triplez-2.0.x 2018-09-16 18:15:27 -05:00
Scott Lahteine 6286afd456 Add Triple-Z options to example configs 2018-09-16 00:35:58 -05:00
Holger Müller 1a6f2b29b8 Add support for Triple-Z steppers/endstops 2018-09-16 00:35:58 -05:00
Hannes Brandstätter-Müller bc06406d7d Fix Anycubic Kossel config (probe crash) (#11832) 2018-09-15 23:27:21 -05:00
Scott Lahteine 66f83d33e6 Fix some config comments 2018-09-15 23:21:55 -05:00
Hannes Brandstätter-Müller 84ed9b5a63 Send "G33 S P1" for Delta Height Calibration (#11831) 2018-09-15 20:17:35 -05:00
Scott Lahteine 215eee4fe5 Use 'friend' to access set_directions 2018-09-15 20:11:10 -05:00
Cassiano Leal ff51e7322d Fix for Stepper::set_directions() compilation error (#11838) 2018-09-15 19:31:51 -05:00
Scott Lahteine 809b232fa2 Fix stepper directions after M501/M502
See https://github.com/MarlinFirmware/Marlin/issues/11103#issuecomment-421387611

Co-Authored-By: tcm0116 <tcm0116@users.noreply.github.com>
2018-09-14 20:00:55 -05:00
Scott Lahteine f79a5a9dee Tweak spacing of L6470 options 2018-09-12 23:18:11 -05:00
Hannes Brandstätter-Müller c37d3ae97d [2.0.x] Fix NOZZLE_PARK_FEATURE for Anycubic Kossel (#11812) 2018-09-12 15:37:38 -05:00
HenningJW 4fb2134f00 Fix non-sensical values for Zonestar themistor table (#11817)
Values taken from Zonestar firmware for P802QA with a Melzi board. Timestamps from the firmware package are from April 2016.
2018-09-12 15:36:04 -05:00
Scott Lahteine b220a825a7 Fix raw_filwidth_value error 2018-09-12 04:31:55 -05:00
Scott Lahteine 1933d5d6fb Fix SD autostart with no LCD 2018-09-12 03:49:59 -05:00
Roman Moravčík 8bce5370c7 Updated slovak translation (#11807) 2018-09-12 03:29:17 -05:00
Giuliano Zaro 64d629ba2a [2.0.x] Italian language fix (#11796) 2018-09-12 03:28:22 -05:00
Scott Lahteine 8584d3697d Fix servo count define conflict
`MAX_SERVOS` => `NUM_SERVO_PLUGS`
2018-09-11 16:20:31 -05:00
Scott Lahteine 06949ae510 Fix MSG_FILAMENT_CHANGE_HEAT_1 for small LCD 2018-09-10 23:21:37 -05:00
Scott Lahteine d882717d98 Save some PROGMEM with constexpr (#11798)
When possible, make `active_extruder` a `constexpr` to save some PROGMEM.
2018-09-10 23:09:26 -05:00
Sam Lane 4f883d5971 [2.0.x] Extruder-Distinct Linear Advance K Factors (#11789) 2018-09-10 22:37:32 -05:00
Scott Lahteine fe9f088d60 [2.0.x] Anycubic LinearPlus, Trigorilla 1.4 (#11730) 2018-09-10 21:25:40 -05:00
Scott Lahteine b6aae2b322 Tweak RAMPS_FD_V1 pins 2018-09-10 15:43:03 -05:00
Scott Lahteine 7391e23332 Fix RigidBoard FAN_PIN collision 2018-09-10 05:29:00 -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 https://github.com/MarlinFirmware/Marlin/commit/941e9bd329c4831909b4d010f78a4a1d900e5b00#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 https://github.com/MarlinFirmware/Marlin/commit/13a3fb1accec51adb12f7af4f45d6d63f4bc8a3f
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
1779 changed files with 1357841 additions and 143320 deletions
+19
View File
@@ -0,0 +1,19 @@
# editorconfig.org
root = true
[{*.patch,syntax_test_*}]
trim_trailing_whitespace = false
[{*.c,*.cpp,*.h}]
charset = utf-8
[{*.c,*.cpp,*.h,Makefile}]
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2
[{*.py,*.conf,*.sublime-project}]
indent_style = tab
indent_size = 4
-1
View File
@@ -17,4 +17,3 @@
*.png binary
*.jpg binary
*.fon binary
+3
View File
@@ -0,0 +1,3 @@
github: [thinkyhead]
patreon: thinkyhead
custom: ["http://www.thinkyhead.com/donate-to-marlin"]
+46
View File
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [marlinfirmware@github.com](mailto:marlinfirmware@github.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version]
[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/4/
+144
View File
@@ -0,0 +1,144 @@
# Contributing to Marlin
Thanks for your interest in contributing to Marlin Firmware!
The following is a set of guidelines for contributing to Marlin, hosted by the [MarlinFirmware Organization](https://github.com/MarlinFirmware) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a Pull Request.
#### Table Of Contents
[Code of Conduct](#code-of-conduct)
[I don't want to read this whole thing, I just have a question!!!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question)
[How Can I Contribute?](#how-can-i-contribute)
* [Reporting Bugs](#reporting-bugs)
* [Suggesting Features or Changes](#suggesting-features-or-changes)
* [Your First Code Contribution](#your-first-code-contribution)
* [Pull Requests](#pull-requests)
[Styleguides](#styleguides)
* [Git Commit Messages](#git-commit-messages)
* [C++ Coding Standards](#c++-coding-standards)
* [Documentation Styleguide](#documentation)
[Additional Notes](#additional-notes)
* [Issue and Pull Request Labels](#issue-and-pull-request-labels)
## Code of Conduct
This project and everyone participating in it is governed by the [Marlin Code of Conduct](code_of_conduct.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [marlinfirmware@github.com](mailto:marlinfirmware@github.com).
## I don't want to read this whole thing I just have a question!!!
> **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below.
We have a Message Board and a Facebook group where our knowledgable user community can provide helpful advice if you have questions.
* [Marlin RepRap forum](http://forums.reprap.org/list.php?415)
* [MarlinFirmware on Facebook](https://www.facebook.com/groups/1049718498464482/)
If chat is more your speed, you can join the MarlinFirmware Slack team:
* Join the Marlin Slack Team
* To obtain group access, please [send a request](http://www.thinkyhead.com/contact/9) to @thinkyhead.
* Even though Slack is a chat service, sometimes it takes several hours for community members to respond &mdash; please be patient!
* Use the `#general` channel for general questions or discussion about Marlin.
* Other channels exist for certain topics. Check the channel list.
## How Can I Contribute?
### Reporting Bugs
This section guides you through submitting a Bug Report for Marlin. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before creating a Bug Report, please test the "nightly" development branch, as you might find out that you don't need to create one. When you are creating a Bug Report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](issue_template.md), the information it asks for helps us resolve issues faster.
> **Note:** Regressions can happen. If you find a **Closed** issue that seems like your issue, go ahead and open a new issue and include a link to the original issue in the body of your new one. All you need to create a link is the issue number, preceded by #. For example, #8888.
#### How Do I Submit A (Good) Bug Report?
Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Use the New Issue button to create an issue and provide the following information by filling in [the template](issue_template.md).
Explain the problem and include additional details to help maintainers reproduce the problem:
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you started Marlin, e.g. which command exactly you used in the terminal, or how you started Marlin otherwise. When listing steps, **don't just say what you did, but explain how you did it**. For example, if you moved the cursor to the end of a line, explain if you used the mouse, or a keyboard shortcut or an Marlin command, and if so which one?
* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets or log output in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
* **Explain which behavior you expected to see instead and why.**
* **Include detailed log output** especially for probing and leveling. See below for usage of `DEBUG_LEVELING_FEATURE`.
* **Include screenshots, links to videos, etc.** which clearly demonstrate the problem.
* **Include G-code** (if relevant) that reliably causes the problem to show itself.
* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below.
Provide more context:
* **Can you reproduce the problem with a minimum of options enabled?**
* **Did the problem start happening recently** (e.g. after updating to a new version of Marlin) or was this always a problem?
* If the problem started happening recently, **can you reproduce the problem in an older version of Marlin?** What's the most recent version in which the problem doesn't happen? You can download older versions of Marlin from [the releases page](https://github.com/MarlinFirmware/Marlin/releases).
* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens.
Include details about your configuration and environment:
* **Which version of Marlin are you using?** Marlin's exact version and build date can be seen in the startup message when a host connects to Marlin, or in the LCD Info menu (if enabled).
* **What kind of 3D Printer and electronics are you using**?
* **What kind of add-ons (probe, filament sensor) do you have**?
* **Include your Configuration files.** Make a ZIP file containing `Configuration.h` and `Configuration_adv.h` and drop it on your reply.
### Suggesting Features or Changes
This section guides you through submitting a suggestion for Marlin, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions.
Before creating a suggestion, please check [this list](#before-submitting-a-suggestion) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](issue_template.md), including the steps that you imagine you would take if the feature you're requesting existed.
#### Before Submitting a Feature Request
* **Check the [Marlin website](http://marlinfw.org/)** for tips — you might discover that the feature is already included. Most importantly, check if you're using [the latest version of Marlin](https://github.com/MarlinFirmware/Marlin/releases) and if you can get the desired behavior by changing [Marlin's config settings](http://marlinfw.org/docs/configuration/configuration.html).
* **Perform a [cursory search](https://github.com/MarlinFirmware/Marlin/issues?q=is%3Aissue)** to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
#### How Do I Submit A (Good) Feature Request?
Feature Requests are tracked as [GitHub issues](https://guides.github.com/features/issues/). Please follow these guidelines in your request:
* **Use a clear and descriptive title** for the issue to identify the suggestion.
* **Provide a step-by-step description of the requested feature** in as much detail as possible.
* **Provide specific examples to demonstrate the steps**.
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
* **Include screenshots and links to videos** which demonstrate the feature or point out the part of Marlin to which the request is related.
* **Explain why this feature would be useful** to most Marlin users.
* **Name other firmwares that have this feature, if any.**
### Your First Code Contribution
Unsure where to begin contributing to Marlin? You can start by looking through these `good-first-issue` and `help-wanted` issues:
* [Beginner issues][good-first-issue] - issues which should only require a few lines of code, and a test or two.
* [Help Wanted issues][help-wanted] - issues which should be a bit more involved than `beginner` issues.
### Pull Requests
Pull Requests should always be targeted to working branches (e.g., `bugfix-1.1.x` and/or `bugfix-2.0.x`) and never to release branches (e.g., `1.1.x`). If this is your first Pull Request, please read our [Guide to Pull Requests](http://marlinfw.org/docs/development/getting_started_pull_requests.html) and Github's [Pull Request](https://help.github.com/articles/creating-a-pull-request/) documentation.
* Fill in [the required template](pull_request_template.md).
* Don't include issue numbers in the PR title.
* Include pictures, diagrams, and links to videos in your Pull Request to demonstrate your changes, if needed.
* Follow the [Coding Standards](http://marlinfw.org/docs/development/coding_standards.html) posted on our website.
* Document new code with clear and concise comments.
* End all files with a newline.
## Styleguides
### Git Commit Messages
* Use the present tense ("Add feature" not "Added feature").
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...").
* Limit the first line to 72 characters or fewer.
* Reference issues and Pull Requests liberally after the first line.
### C++ Coding Standards
* Please read and follow the [Coding Standards](http://marlinfw.org/docs/development/coding_standards.html) posted on our website. Failure to follow these guidelines will delay evaluation and acceptance of Pull Requests.
### Documentation
* Guidelines for documentation are still under development. In-general, be clear, concise, and to-the-point.
+31
View File
@@ -0,0 +1,31 @@
<!--
Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.0.x/.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/ or the Marlin Discord Server https://discord.gg/n5NJ59y.
Before filing an issue be sure to test the 1.1 and/or 2.0 "bugfix" branches to see whether the issue is already addressed.
-->
### Description
<!-- Description of the bug or requested feature -->
### Steps to Reproduce
<!-- If this is a Bug Report, please describe the steps needed to reproduce the issue -->
1. [First Step]
2. [Second Step]
3. [and so on...]
**Expected behavior:** [What you expect to happen]
**Actual behavior:** [What actually happens]
#### Additional Information
* Include a ZIP file containing your `Configuration.h` and `Configuration_adv.h` files.
* Provide pictures or links to videos that clearly demonstrate the issue.
* See [How Can I Contribute](#how-can-i-contribute) for additional guidelines.
+19
View File
@@ -0,0 +1,19 @@
### Requirements
* Filling out this template is required. Pull Requests without a clear description may be closed at the maintainers' discretion.
### Description
<!--
We must be able to understand your proposed change from this description. If we can't understand what the code will do from this description, the Pull Request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code recently, so please walk us through the concepts.
-->
### Benefits
<!-- What does this fix or improve? -->
### Related Issues
<!-- Whether this fixes a bug or fulfills a feature request, please list any related Issues here. -->
+104
View File
@@ -0,0 +1,104 @@
#
# test-builds.yml
# Do test builds to catch compile errors
#
name: CI
on:
pull_request:
branches:
- bugfix-2.0.x
- dev-2.1.x
paths-ignore:
- config/**
- data/**
- docs/**
- '**/*.md'
jobs:
test_builds:
runs-on: ubuntu-latest
strategy:
matrix:
test-platform:
# Base Environments
- DUE
- esp32
- linux_native
- mega2560
- teensy31
- teensy35
- SAMD51_grandcentral_m4
# Extended AVR Environments
- FYSETC_F6_13
- mega1280
- rambo
- sanguino1284p
- sanguino644p
# Extended STM32 Environments
- STM32F103RC_btt
- STM32F103RC_btt_USB
- STM32F103RE_btt
- STM32F103RE_btt_USB
- STM32F103RC_fysetc
- jgaurora_a5s_a1
- STM32F103VE_longer
- STM32F407VE_black
- BIGTREE_SKR_PRO
- BIGTREE_GTR_V1_0
- mks_robin
- ARMED
- FYSETC_S6
# Put lengthy tests last
- LPC1768
- LPC1769
# STM32 with non-STM framework. both broken for now. they should use HAL_STM32 which is working.
#- STM32F4
#- STM32F7
# Non-working environment tests
#- BIGTREE_BTT002
#- at90usb1286_cdc
#- at90usb1286_dfu
#- STM32F103CB_malyan
#- mks_robin_lite
#- mks_robin_mini
#- mks_robin_nano
steps:
- name: Select Python 3.7
uses: actions/setup-python@v1
with:
python-version: '3.7' # Version range or exact version of a Python version to use, using semvers version range syntax.
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
- name: Install PlatformIO
run: |
pip install -U https://github.com/platformio/platformio-core/archive/master.zip
platformio update
- name: Check out the PR
uses: actions/checkout@v2
- name: Run ${{ matrix.test-platform }} Tests
run: |
# Inline tests script
[[ "$GITHUB_REPOSITORY" == "MarlinFirmware/Marlin" ]] || exit 0
chmod +x buildroot/bin/*
chmod +x buildroot/share/tests/*
export PATH=./buildroot/bin/:./buildroot/share/tests/:${PATH}
run_tests . ${{ matrix.test-platform }}
+57 -9
View File
@@ -1,9 +1,9 @@
#
# Marlin 3D Printer Firmware
# Copyright (C) 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
# Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
#
# Based on Sprinter and grbl.
# Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
# 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
@@ -29,7 +29,6 @@ _Version.h
applet/
*.DS_Store
#
# Misc
#
@@ -118,21 +117,70 @@ 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
# Secure Credentials
Configuration_Secure.h
#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
cmake-build-*
#Eclipse
.project
.cproject
.pydevproject
.settings
.classpath
#Python
__pycache__
+66 -407
View File
@@ -1,9 +1,60 @@
---
language: c
#
dist: bionic
sudo: false
language: python
python:
- "3.7"
notifications:
email: false
#
env:
# Base Environments
- TEST_PLATFORM="DUE"
- TEST_PLATFORM="esp32"
- TEST_PLATFORM="linux_native"
- TEST_PLATFORM="megaatmega2560"
- TEST_PLATFORM="teensy31"
- TEST_PLATFORM="teensy35"
# Extended AVR Environments
- TEST_PLATFORM="FYSETC_F6_13"
- TEST_PLATFORM="megaatmega1280"
- TEST_PLATFORM="rambo"
- TEST_PLATFORM="sanguino_atmega1284p"
- TEST_PLATFORM="sanguino_atmega644p"
# Extended STM32 Environments
- TEST_PLATFORM="STM32F103RC_bigtree"
- TEST_PLATFORM="STM32F103RC_bigtree_USB"
- TEST_PLATFORM="STM32F103RE_bigtree"
- TEST_PLATFORM="STM32F103RE_bigtree_USB"
- TEST_PLATFORM="STM32F103RC_fysetc"
- TEST_PLATFORM="jgaurora_a5s_a1"
- TEST_PLATFORM="STM32F103VE_longer"
- TEST_PLATFORM="STM32F407VE_black"
- TEST_PLATFORM="BIGTREE_SKR_PRO"
- TEST_PLATFORM="mks_robin"
- TEST_PLATFORM="ARMED"
# STM32 with non-STM framework. both broken for now. they should use HAL_STM32 which is working.
#- TEST_PLATFORM="STM32F4"
#- TEST_PLATFORM="STM32F7"
# Put lengthy tests last
- TEST_PLATFORM="LPC1768"
- TEST_PLATFORM="LPC1769"
# Non-working environment tests
#- TEST_PLATFORM="BIGTREE_BTT002" this board isn't released yet. we need pinout to be sure about what we do
#- TEST_PLATFORM="at90usb1286_cdc"
#- TEST_PLATFORM="at90usb1286_dfu"
#- TEST_PLATFORM="STM32F103CB_malyan"
#- TEST_PLATFORM="mks_robin_lite"
#- TEST_PLATFORM="mks_robin_mini"
#- TEST_PLATFORM="mks_robin_nano"
#- TEST_PLATFORM="SAMD51_grandcentral_m4"
before_install:
#
# Fetch the tag information for the current branch
@@ -11,415 +62,23 @@ before_install:
#
# Publish the buildroot script folder
- chmod +x ${TRAVIS_BUILD_DIR}/buildroot/bin/*
- ln -s ${TRAVIS_BUILD_DIR}/buildroot/bin/ ~/bin
#
# Start fb X server
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16"
- sleep 3
- export DISPLAY=:1.0
#
- chmod +x ${TRAVIS_BUILD_DIR}/buildroot/share/tests/*
- export PATH=${TRAVIS_BUILD_DIR}/buildroot/bin/:${TRAVIS_BUILD_DIR}/buildroot/share/tests/:${PATH}
install:
#
# Install arduino 1.6.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/master.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/
- cat ${TRAVIS_BUILD_DIR}/Marlin/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
#
- run_tests ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}
+3 -3
View File
@@ -3,7 +3,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Copyright (c) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -634,7 +634,7 @@ state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
Copyright (c) {year} {name of author}
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
@@ -654,7 +654,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname}
{project} Copyright (c) {year} {fullname}
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
-400
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
-850
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
+1328 -488
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+2612 -606
View File
File diff suppressed because it is too large Load Diff
-843
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
-335
View File
@@ -1,335 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* M100 Free Memory Watcher
*
* This code watches the free memory block between the bottom of the heap and the top of the stack.
* This memory block is initialized and watched via the M100 command.
*
* M100 I Initializes the free memory block and prints vitals statistics about the area
*
* M100 F Identifies how much of the free memory block remains free and unused. It also
* detects and reports any corruption within the free memory block that may have
* happened due to errant firmware.
*
* M100 D Does a hex display of the free memory block along with a flag for any errant
* data that does not match the expected value.
*
* M100 C x Corrupts x locations within the free memory block. This is useful to check the
* correctness of the M100 F and M100 D commands.
*
* Also, there are two support functions that can be called from a developer's C code.
*
* uint16_t check_for_free_memory_corruption(const char * const ptr);
* void M100_dump_routine(const char * const title, const char *start, const char *end);
*
* Initial version by Roxy-3D
*/
#define M100_FREE_MEMORY_DUMPER // Enable for the `M110 D` Dump sub-command
#define M100_FREE_MEMORY_CORRUPTOR // Enable for the `M100 C` Corrupt sub-command
#include "MarlinConfig.h"
#if ENABLED(M100_FREE_MEMORY_WATCHER)
#define TEST_BYTE ((char) 0xE5)
extern char command_queue[BUFSIZE][MAX_CMD_SIZE];
extern char* __brkval;
extern size_t __heap_start, __heap_end, __flp;
extern char __bss_end;
#include "Marlin.h"
#include "gcode.h"
#include "hex_print_routines.h"
//
// Utility functions
//
#define END_OF_HEAP() (__brkval ? __brkval : &__bss_end)
int check_for_free_memory_corruption(const char * const title);
// Location of a variable on its stack frame. Returns a value above
// the stack (once the function returns to the caller).
char* top_of_stack() {
char x;
return &x + 1; // x is pulled on return;
}
// Count the number of test bytes at the specified location.
int16_t count_test_bytes(const char * const ptr) {
for (uint16_t i = 0; i < 32000; i++)
if (((char) ptr[i]) != TEST_BYTE)
return i - 1;
return -1;
}
//
// M100 sub-commands
//
#if ENABLED(M100_FREE_MEMORY_DUMPER)
/**
* M100 D
* Dump the free memory block from __brkval to the stack pointer.
* malloc() eats memory from the start of the block and the stack grows
* up from the bottom of the block. Solid test bytes indicate nothing has
* used that memory yet. There should not be anything but test bytes within
* the block. If so, it may indicate memory corruption due to a bad pointer.
* Unexpected bytes are flagged in the right column.
*/
void dump_free_memory(const char *ptr, const char *sp) {
//
// Start and end the dump on a nice 16 byte boundary
// (even though the values are not 16-byte aligned).
//
ptr = (char *)((uint16_t)ptr & 0xFFF0); // Align to 16-byte boundary
sp = (char *)((uint16_t)sp | 0x000F); // Align sp to the 15th byte (at or above sp)
// Dump command main loop
while (ptr < sp) {
print_hex_word((uint16_t)ptr); // Print the address
SERIAL_CHAR(':');
for (uint8_t i = 0; i < 16; i++) { // and 16 data bytes
if (i == 8) SERIAL_CHAR('-');
print_hex_byte(ptr[i]);
SERIAL_CHAR(' ');
}
safe_delay(25);
SERIAL_CHAR('|'); // Point out non test bytes
for (uint8_t i = 0; i < 16; i++) {
char ccc = (char)ptr[i]; // cast to char before automatically casting to char on assignment, in case the compiler is broken
if (&ptr[i] >= (const char*)command_queue && &ptr[i] < (const char*)(command_queue + sizeof(command_queue))) { // Print out ASCII in the command buffer area
if (!WITHIN(ccc, ' ', 0x7E)) ccc = ' ';
}
else { // If not in the command buffer area, flag bytes that don't match the test byte
ccc = (ccc == TEST_BYTE) ? ' ' : '?';
}
SERIAL_CHAR(ccc);
}
SERIAL_EOL;
ptr += 16;
safe_delay(25);
idle();
}
}
void M100_dump_routine(const char * const title, const char *start, const char *end) {
SERIAL_ECHOLN(title);
//
// Round the start and end locations to produce full lines of output
//
start = (char*)((uint16_t) start & 0xFFF0);
end = (char*)((uint16_t) end | 0x000F);
dump_free_memory(start, end);
}
#endif // M100_FREE_MEMORY_DUMPER
/**
* M100 F
* Return the number of free bytes in the memory pool,
* with other vital statistics defining the pool.
*/
void free_memory_pool_report(char * const ptr, const int16_t size) {
int16_t max_cnt = -1, block_cnt = 0;
char *max_addr = NULL;
// Find the longest block of test bytes in the buffer
for (int16_t i = 0; i < size; i++) {
char *addr = ptr + i;
if (*addr == TEST_BYTE) {
const int16_t j = count_test_bytes(addr);
if (j > 8) {
SERIAL_ECHOPAIR("Found ", j);
SERIAL_ECHOLNPAIR(" bytes free at ", hex_address(addr));
if (j > max_cnt) {
max_cnt = j;
max_addr = addr;
}
i += j;
block_cnt++;
}
}
}
if (block_cnt > 1) {
SERIAL_ECHOLNPGM("\nMemory Corruption detected in free memory area.");
SERIAL_ECHOPAIR("\nLargest free block is ", max_cnt);
SERIAL_ECHOLNPAIR(" bytes at ", hex_address(max_addr));
}
SERIAL_ECHOLNPAIR("check_for_free_memory_corruption() = ", check_for_free_memory_corruption("M100 F "));
}
#if ENABLED(M100_FREE_MEMORY_CORRUPTOR)
/**
* M100 C<num>
* Corrupt <num> locations in the free memory pool and report the corrupt addresses.
* This is useful to check the correctness of the M100 D and the M100 F commands.
*/
void corrupt_free_memory(char *ptr, const uint16_t size) {
if (parser.seen('C')) {
ptr += 8;
const uint16_t near_top = top_of_stack() - ptr - 250, // -250 to avoid interrupt activity that's altered the stack.
j = near_top / (size + 1);
SERIAL_ECHOLNPGM("Corrupting free memory block.\n");
for (uint16_t i = 1; i <= size; i++) {
char * const addr = ptr + i * j;
*addr = i;
SERIAL_ECHOPAIR("\nCorrupting address: ", hex_address(addr));
}
SERIAL_EOL;
}
}
#endif // M100_FREE_MEMORY_CORRUPTOR
/**
* M100 I
* Init memory for the M100 tests. (Automatically applied on the first M100.)
*/
void init_free_memory(char *ptr, int16_t size) {
SERIAL_ECHOLNPGM("Initializing free memory block.\n\n");
size -= 250; // -250 to avoid interrupt activity that's altered the stack.
if (size < 0) {
SERIAL_ECHOLNPGM("Unable to initialize.\n");
return;
}
ptr += 8; // move a few bytes away from the heap just because we don't want
// to be altering memory that close to it.
memset(ptr, TEST_BYTE, size);
SERIAL_ECHO(size);
SERIAL_ECHOLNPGM(" bytes of memory initialized.\n");
for (int16_t i = 0; i < size; i++) {
if (ptr[i] != TEST_BYTE) {
SERIAL_ECHOPAIR("? address : ", hex_address(ptr + i));
SERIAL_ECHOLNPAIR("=", hex_byte(ptr[i]));
SERIAL_EOL;
}
}
}
/**
* M100: Free Memory Check
*/
void gcode_M100() {
SERIAL_ECHOPAIR("\n__brkval : ", hex_address(__brkval));
SERIAL_ECHOPAIR("\n__bss_end : ", hex_address(&__bss_end));
char *ptr = END_OF_HEAP(), *sp = top_of_stack();
SERIAL_ECHOPAIR("\nstart of free space : ", hex_address(ptr));
SERIAL_ECHOLNPAIR("\nStack Pointer : ", hex_address(sp));
// Always init on the first invocation of M100
static bool m100_not_initialized = true;
if (m100_not_initialized || parser.seen('I')) {
m100_not_initialized = false;
init_free_memory(ptr, sp - ptr);
}
#if ENABLED(M100_FREE_MEMORY_DUMPER)
if (parser.seen('D'))
return dump_free_memory(ptr, sp);
#endif
if (parser.seen('F'))
return free_memory_pool_report(ptr, sp - ptr);
#if ENABLED(M100_FREE_MEMORY_CORRUPTOR)
if (parser.seen('C'))
return corrupt_free_memory(ptr, parser.value_int());
#endif
}
int check_for_free_memory_corruption(const char * const title) {
SERIAL_ECHO(title);
char *ptr = END_OF_HEAP(), *sp = top_of_stack();
int n = sp - ptr;
SERIAL_ECHOPAIR("\nfmc() n=", n);
SERIAL_ECHOPAIR("\n&__brkval: ", hex_address(&__brkval));
SERIAL_ECHOPAIR("=", hex_address(__brkval));
SERIAL_ECHOPAIR("\n__bss_end: ", hex_address(&__bss_end));
SERIAL_ECHOPAIR(" sp=", hex_address(sp));
if (sp < ptr) {
SERIAL_ECHOPGM(" sp < Heap ");
// SET_INPUT_PULLUP(63); // if the developer has a switch wired up to their controller board
// safe_delay(5); // this code can be enabled to pause the display as soon as the
// while ( READ(63)) // malfunction is detected. It is currently defaulting to a switch
// idle(); // being on pin-63 which is unassigend and available on most controller
// safe_delay(20); // boards.
// while ( !READ(63))
// idle();
safe_delay(20);
#ifdef M100_FREE_MEMORY_DUMPER
M100_dump_routine(" Memory corruption detected with sp<Heap\n", (char*)0x1B80, (char*)0x21FF);
#endif
}
// Scan through the range looking for the biggest block of 0xE5's we can find
int block_cnt = 0;
for (int i = 0; i < n; i++) {
if (ptr[i] == TEST_BYTE) {
int16_t j = count_test_bytes(ptr + i);
if (j > 8) {
// SERIAL_ECHOPAIR("Found ", j);
// SERIAL_ECHOLNPAIR(" bytes free at ", hex_address(ptr + i));
i += j;
block_cnt++;
SERIAL_ECHOPAIR(" (", block_cnt);
SERIAL_ECHOPAIR(") found=", j);
SERIAL_ECHOPGM(" ");
}
}
}
SERIAL_ECHOPAIR(" block_found=", block_cnt);
if (block_cnt != 1 || __brkval != 0x0000)
SERIAL_ECHOLNPGM("\nMemory Corruption detected in free memory area.");
if (block_cnt == 0) // Make sure the special case of no free blocks shows up as an
block_cnt = -1; // error to the calling code!
SERIAL_ECHOPGM(" return=");
if (block_cnt == 1) {
SERIAL_CHAR('0'); // if the block_cnt is 1, nothing has broken up the free memory
SERIAL_EOL; // area and it is appropriate to say 'no corruption'.
return 0;
}
SERIAL_ECHOLNPGM("true");
return block_cnt;
}
#endif // M100_FREE_MEMORY_WATCHER
+588 -229
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 TMCStepper library
TMC ?= 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,153 +113,371 @@ WIRE ?= 0
# HARDWARE_VARIANT = "arduino", "Sanguino", "Gen7", ...
# MCU = "atmega1280", "Mega2560", "atmega2560", "atmega644p", ...
#Gen7
ifeq ($(HARDWARE_MOTHERBOARD),10)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644
F_CPU ?= 20000000
else ifeq ($(HARDWARE_MOTHERBOARD),11)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
F_CPU ?= 20000000
else ifeq ($(HARDWARE_MOTHERBOARD),12)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
F_CPU ?= 20000000
else ifeq ($(HARDWARE_MOTHERBOARD),13)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega1284p
F_CPU ?= 20000000
ifeq ($(HARDWARE_MOTHERBOARD),0)
#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
# No motherboard selected
#Gen6
else ifeq ($(HARDWARE_MOTHERBOARD),5)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
else ifeq ($(HARDWARE_MOTHERBOARD),51)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
#
# RAMPS 1.3 / 1.4 - ATmega1280, ATmega2560
#
#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
# MEGA/RAMPS up to 1.2
else ifeq ($(HARDWARE_MOTHERBOARD),1000)
#Ultimaker
else ifeq ($(HARDWARE_MOTHERBOARD),7)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),71)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega1280
# RAMPS 1.3 (Power outputs: Hotend, Fan, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),1010)
# RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),1011)
# RAMPS 1.3 (Power outputs: Hotend, Fan0, Fan1)
else ifeq ($(HARDWARE_MOTHERBOARD),1012)
# RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),1013)
# RAMPS 1.3 (Power outputs: Spindle, Controller Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),1014)
#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
# RAMPS 1.4 (Power outputs: Hotend, Fan, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),1020)
# RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),1021)
# RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1)
else ifeq ($(HARDWARE_MOTHERBOARD),1022)
# RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),1023)
# RAMPS 1.4 (Power outputs: Spindle, Controller Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),1024)
#Gen3+
else ifeq ($(HARDWARE_MOTHERBOARD),9)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# RAMPS Plus 3DYMY (Power outputs: Hotend, Fan, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),1030)
# RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),1031)
# RAMPS Plus 3DYMY (Power outputs: Hotend, Fan0, Fan1)
else ifeq ($(HARDWARE_MOTHERBOARD),1032)
# RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),1033)
# RAMPS Plus 3DYMY (Power outputs: Spindle, Controller Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),1034)
#Gen3 Monolithic Electronics
else ifeq ($(HARDWARE_MOTHERBOARD),22)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
#
# RAMPS Derivatives - ATmega1280, ATmega2560
#
#Megatronics
else ifeq ($(HARDWARE_MOTHERBOARD),70)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
# 3Drag Controller
else ifeq ($(HARDWARE_MOTHERBOARD),1100)
# Velleman K8200 Controller (derived from 3Drag Controller)
else ifeq ($(HARDWARE_MOTHERBOARD),1101)
# Velleman K8400 Controller (derived from 3Drag Controller)
else ifeq ($(HARDWARE_MOTHERBOARD),1102)
# 2PrintBeta BAM&DICE with STK drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1103)
# 2PrintBeta BAM&DICE Due with STK drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1104)
# MKS BASE v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1105)
# MKS v1.4 with A4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1106)
# MKS v1.5 with Allegro A4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1107)
# MKS BASE 1.0 with Heroic HR4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1108)
# MKS GEN v1.3 or 1.4
else ifeq ($(HARDWARE_MOTHERBOARD),1109)
# MKS GEN L
else ifeq ($(HARDWARE_MOTHERBOARD),1110)
# zrib V2.0 control board (Chinese knock off RAMPS replica)
else ifeq ($(HARDWARE_MOTHERBOARD),1111)
# Bigtreetech or BIQU KFB2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1112)
# Felix 2.0+ Electronics Board (RAMPS like)
else ifeq ($(HARDWARE_MOTHERBOARD),1113)
# Invent-A-Part RigidBoard
else ifeq ($(HARDWARE_MOTHERBOARD),1114)
# Invent-A-Part RigidBoard V2
else ifeq ($(HARDWARE_MOTHERBOARD),1115)
# Sainsmart 2-in-1 board
else ifeq ($(HARDWARE_MOTHERBOARD),1116)
# Ultimaker
else ifeq ($(HARDWARE_MOTHERBOARD),1117)
# Ultimaker (Older electronics. Pre 1.5.4. This is rare)
else ifeq ($(HARDWARE_MOTHERBOARD),1118)
MCU ?= atmega1280
#Alpha OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),90)
HARDWARE_VARIANT ?= SanguinoA
MCU ?= atmega644
# Azteeg X3
else ifeq ($(HARDWARE_MOTHERBOARD),1119)
# Azteeg X3 Pro
else ifeq ($(HARDWARE_MOTHERBOARD),1120)
# Ultimainboard 2.x (Uses TEMP_SENSOR 20)
else ifeq ($(HARDWARE_MOTHERBOARD),1121)
# Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),1122)
# Raise3D Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),1123)
# Rapide Lite RL200 Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),1124)
# Formbot T-Rex 2 Plus
else ifeq ($(HARDWARE_MOTHERBOARD),1125)
# Formbot T-Rex 3
else ifeq ($(HARDWARE_MOTHERBOARD),1126)
# Formbot Raptor
else ifeq ($(HARDWARE_MOTHERBOARD),1127)
# Formbot Raptor 2
else ifeq ($(HARDWARE_MOTHERBOARD),1128)
# bq ZUM Mega 3D
else ifeq ($(HARDWARE_MOTHERBOARD),1129)
# MakeBoard Mini v2.1.2 is a control board sold by MicroMake
else ifeq ($(HARDWARE_MOTHERBOARD),1130)
# TriGorilla Anycubic version 1.3 based on RAMPS EFB
else ifeq ($(HARDWARE_MOTHERBOARD),1131)
# TriGorilla Anycubic version 1.4 based on RAMPS EFB
else ifeq ($(HARDWARE_MOTHERBOARD),1132)
# TriGorilla Anycubic version 1.4 Rev 1.1
else ifeq ($(HARDWARE_MOTHERBOARD),1133)
# Creality: Ender-4, CR-8
else ifeq ($(HARDWARE_MOTHERBOARD),1134)
# Creality: CR10S, CR20, CR-X
else ifeq ($(HARDWARE_MOTHERBOARD),1135)
# Dagoma F5
else ifeq ($(HARDWARE_MOTHERBOARD),1136)
# FYSETC F6
else ifeq ($(HARDWARE_MOTHERBOARD),1137)
# Duplicator i3 Plus
else ifeq ($(HARDWARE_MOTHERBOARD),1138)
# VORON
else ifeq ($(HARDWARE_MOTHERBOARD),1139)
# TRONXY V3 1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1140)
# Z-Bolt X Series
else ifeq ($(HARDWARE_MOTHERBOARD),1141)
# TT OSCAR
else ifeq ($(HARDWARE_MOTHERBOARD),1142)
# Overlord/Overlord Pro
else ifeq ($(HARDWARE_MOTHERBOARD),1143)
# ADIMLab Gantry v1
else ifeq ($(HARDWARE_MOTHERBOARD),1144)
# ADIMLab Gantry v2
else ifeq ($(HARDWARE_MOTHERBOARD),1145)
#Final OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),91)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
#
# RAMBo and derivatives
#
#Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),301)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
# Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),1200)
# Mini-Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),1201)
# Mini-Rambo 1.0a
else ifeq ($(HARDWARE_MOTHERBOARD),1202)
# Einsy Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),1203)
# Einsy Retro
else ifeq ($(HARDWARE_MOTHERBOARD),1204)
# abee Scoovo X9H
else ifeq ($(HARDWARE_MOTHERBOARD),1205)
# Azteeg
else ifeq ($(HARDWARE_MOTHERBOARD),67)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),68)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
#
# Other ATmega1280, ATmega2560
#
# Cartesio CN Controls V11
else ifeq ($(HARDWARE_MOTHERBOARD),1300)
# Cartesio CN Controls V12
else ifeq ($(HARDWARE_MOTHERBOARD),1301)
# Cartesio CN Controls V15
else ifeq ($(HARDWARE_MOTHERBOARD),1302)
# Cheaptronic v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1303)
# Cheaptronic v2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1304)
# Makerbot Mightyboard Revision E
else ifeq ($(HARDWARE_MOTHERBOARD),1305)
# Megatronics
else ifeq ($(HARDWARE_MOTHERBOARD),1306)
# Megatronics v2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1307)
# Megatronics v3.0
else ifeq ($(HARDWARE_MOTHERBOARD),1308)
# Megatronics v3.1
else ifeq ($(HARDWARE_MOTHERBOARD),1309)
# Megatronics v3.2
else ifeq ($(HARDWARE_MOTHERBOARD),1310)
# Elefu Ra Board (v3)
else ifeq ($(HARDWARE_MOTHERBOARD),1311)
# Leapfrog
else ifeq ($(HARDWARE_MOTHERBOARD),1312)
# Mega controller
else ifeq ($(HARDWARE_MOTHERBOARD),1313)
# Geeetech GT2560 Rev B for Mecreator2
else ifeq ($(HARDWARE_MOTHERBOARD),1314)
# Geeetech GT2560 Rev. A
else ifeq ($(HARDWARE_MOTHERBOARD),1315)
# Geeetech GT2560 Rev. A+ (with auto level probe)
else ifeq ($(HARDWARE_MOTHERBOARD),1316)
# Geeetech GT2560 Rev B for A10(M/D)
else ifeq ($(HARDWARE_MOTHERBOARD),1317)
# Geeetech GT2560 Rev B for A20(M/D)
else ifeq ($(HARDWARE_MOTHERBOARD),1318)
# Einstart retrofit
else ifeq ($(HARDWARE_MOTHERBOARD),1319)
# Wanhao 0ne+ i3 Mini
else ifeq ($(HARDWARE_MOTHERBOARD),1320)
#
# ATmega1281, ATmega2561
#
# Minitronics v1.0/1.1
else ifeq ($(HARDWARE_MOTHERBOARD),1400)
MCU ?= atmega1281
# Silvergate v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1401)
MCU ?= atmega1281
#
# Sanguinololu and Derivatives - ATmega644P, ATmega1284P
#
# Sanguinololu < 1.2
else ifeq ($(HARDWARE_MOTHERBOARD),1500)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Sanguinololu 1.2 and above
else ifeq ($(HARDWARE_MOTHERBOARD),1501)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Melzi
else ifeq ($(HARDWARE_MOTHERBOARD),1502)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Melzi with ATmega1284 (MaKr3d version)
else ifeq ($(HARDWARE_MOTHERBOARD),1503)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Melzi Creality3D board (for CR-10 etc)
else ifeq ($(HARDWARE_MOTHERBOARD),1504)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Melzi Malyan M150 board
else ifeq ($(HARDWARE_MOTHERBOARD),1505)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Tronxy X5S
else ifeq ($(HARDWARE_MOTHERBOARD),1506)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# STB V1.1
else ifeq ($(HARDWARE_MOTHERBOARD),1507)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Azteeg X1
else ifeq ($(HARDWARE_MOTHERBOARD),1508)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Anet 1.0 (Melzi clone)
else ifeq ($(HARDWARE_MOTHERBOARD),1509)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
#
# Other ATmega644P, ATmega644, ATmega1284P
#
# Gen3 Monolithic Electronics
else ifeq ($(HARDWARE_MOTHERBOARD),1600)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Gen3+
else ifeq ($(HARDWARE_MOTHERBOARD),1601)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Gen6
else ifeq ($(HARDWARE_MOTHERBOARD),1602)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
# Gen6 deluxe
else ifeq ($(HARDWARE_MOTHERBOARD),1603)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
# Gen7 custom (Alfons3 Version)
else ifeq ($(HARDWARE_MOTHERBOARD),1604)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644
F_CPU ?= 20000000
# Gen7 v1.1, v1.2
else ifeq ($(HARDWARE_MOTHERBOARD),1605)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
F_CPU ?= 20000000
# Gen7 v1.3
else ifeq ($(HARDWARE_MOTHERBOARD),1606)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
F_CPU ?= 20000000
# Gen7 v1.4
else ifeq ($(HARDWARE_MOTHERBOARD),1607)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega1284p
F_CPU ?= 20000000
# Alpha OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),1608)
HARDWARE_VARIANT ?= SanguinoA
MCU ?= atmega644
# Final OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),1609)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Sethi 3D_1
else ifeq ($(HARDWARE_MOTHERBOARD),1610)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
#
# Teensyduino - AT90USB1286, AT90USB1286P
#
# Teensylu
else ifeq ($(HARDWARE_MOTHERBOARD),1700)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Printrboard (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1701)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Printrboard Revision F (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1702)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Brainwave (AT90USB646)
else ifeq ($(HARDWARE_MOTHERBOARD),1703)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb646
# Brainwave Pro (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1704)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# SAV Mk-I (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1705)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Teensy++2.0 (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1706)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# 5DPrint D8 Driver Board
else ifeq ($(HARDWARE_MOTHERBOARD),1707)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# UltiMachine Archim1 (with DRV8825 drivers)
else ifeq ($(HARDWARE_MOTHERBOARD),3023)
HARDWARE_VARIANT ?= archim
MCPU = cortex-m3
F_CPU = 84000000L
IS_MCU = 0
# UltiMachine Archim2 (with TMC2130 drivers)
else ifeq ($(HARDWARE_MOTHERBOARD),3024)
HARDWARE_VARIANT ?= archim
MCPU = cortex-m3
F_CPU = 84000000L
IS_MCU = 0
endif
# Be sure to regenerate speed_lookuptable.h with create_speed_lookuptable.py
@@ -243,6 +485,23 @@ endif
# Set to 16Mhz if not yet set.
F_CPU ?= 16000000
# Set to microcontroller if IS_MCU not yet set
IS_MCU ?= 1
ifeq ($(IS_MCU),1)
# Set to arduino, ATmega2560 if not yet set.
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
TOOL_PREFIX = avr
MCU_FLAGS = -mmcu=$(MCU)
SIZE_FLAGS = --mcu=$(MCU) -C
else
TOOL_PREFIX = arm-none-eabi
CPU_FLAGS = -mthumb -mcpu=$(MCPU)
SIZE_FLAGS = -A
endif
# 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,12 +513,27 @@ 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 += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/cores/arduino
VPATH += $(HARDWARE_SRC)
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
ifeq ($(IS_MCU),1)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/cores/arduino
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI/src
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SoftwareSerial/src
endif
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI/src
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/LiquidCrystal/src
ifeq ($(LIQUID_TWI2), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire
@@ -270,50 +544,95 @@ 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/csrc
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/U8glib/cppsrc
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/U8glib/fntsrc
endif
ifeq ($(TMC), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/TMCStepper/src
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/TMCStepper/src/source
endif
ifeq ($(HARDWARE_VARIANT), arduino)
HARDWARE_SUB_VARIANT ?= mega
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/variants/$(HARDWARE_SUB_VARIANT)
HARDWARE_SUB_VARIANT ?= mega
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/variants/$(HARDWARE_SUB_VARIANT)
else ifeq ($(HARDWARE_VARIANT), Sanguino)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/marlin/avr/variants/sanguino
else ifeq ($(HARDWARE_VARIANT), archim)
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/system/libsam
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/system/CMSIS/CMSIS/Include/
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/system/CMSIS/Device/ATMEL/
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/cores/arduino
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/cores/arduino/avr
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/cores/arduino/USB
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/libraries/Wire/src
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/libraries/SPI/src
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/libraries/U8glib/src/clib
VPATH += $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/variants/archim
LDSCRIPT = $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/variants/archim/linker_scripts/gcc/flash.ld
LDLIBS = $(ARDUINO_INSTALL_DIR)/packages/ultimachine/hardware/sam/1.6.9-b/variants/archim/libsam_sam3x8e_gcc_rel.a
else
ifeq ($(HARDWARE_VARIANT), Sanguino)
VPATH += $(HARDWARE_DIR)/marlin/avr/variants/sanguino
HARDWARE_SUB_VARIANT ?= standard
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/$(HARDWARE_VARIANT)/variants/$(HARDWARE_SUB_VARIANT)
endif
LIB_SRC = wiring.c \
wiring_analog.c wiring_digital.c \
wiring_shift.c WInterrupts.c hooks.c
ifeq ($(HARDWARE_VARIANT), archim)
LIB_ASRC += wiring_pulse_asm.S
else
HARDWARE_SUB_VARIANT ?= standard
VPATH += $(HARDWARE_DIR)/$(HARDWARE_VARIANT)/variants/$(HARDWARE_SUB_VARIANT)
LIB_SRC += wiring_pulse.c
endif
endif
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
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/teensy/cores/teensy
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
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_6x13.c u8g_font_04b_03.c u8g_font_5x8.c
endif
ifeq ($(TMC), 1)
LIB_CXXSRC += TMCStepper.cpp COOLCONF.cpp DRV_STATUS.cpp IHOLD_IRUN.cpp CHOPCONF.cpp GCONF.cpp PWMCONF.cpp DRV_CONF.cpp DRVCONF.cpp DRVCTRL.cpp DRVSTATUS.cpp ENCMODE.cpp RAMP_STAT.cpp SGCSCONF.cpp SHORT_CONF.cpp SMARTEN.cpp SW_MODE.cpp SW_SPI.cpp TMC2130Stepper.cpp TMC2208Stepper.cpp TMC2209Stepper.cpp TMC2660Stepper.cpp TMC5130Stepper.cpp TMC5160Stepper.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
@@ -331,97 +650,124 @@ OPT = s
DEFINES ?=
# Program settings
CC = $(AVR_TOOLS_PATH)avr-gcc
CXX = $(AVR_TOOLS_PATH)avr-g++
OBJCOPY = $(AVR_TOOLS_PATH)avr-objcopy
OBJDUMP = $(AVR_TOOLS_PATH)avr-objdump
AR = $(AVR_TOOLS_PATH)avr-ar
SIZE = $(AVR_TOOLS_PATH)avr-size
NM = $(AVR_TOOLS_PATH)avr-nm
CC = $(AVR_TOOLS_PATH)$(TOOL_PREFIX)-gcc
CXX = $(AVR_TOOLS_PATH)$(TOOL_PREFIX)-g++
OBJCOPY = $(AVR_TOOLS_PATH)$(TOOL_PREFIX)-objcopy
OBJDUMP = $(AVR_TOOLS_PATH)$(TOOL_PREFIX)-objdump
AR = $(AVR_TOOLS_PATH)$(TOOL_PREFIX)-ar
SIZE = $(AVR_TOOLS_PATH)$(TOOL_PREFIX)-size
NM = $(AVR_TOOLS_PATH)$(TOOL_PREFIX)-nm
AVRDUDE = avrdude
REMOVE = rm -f
MV = mv -f
# Place -D or -U options here
CDEFS = -DF_CPU=$(F_CPU) ${addprefix -D , $(DEFINES)}
CDEFS = -DF_CPU=$(F_CPU) ${addprefix -D , $(DEFINES)} -DARDUINO=$(ARDUINO_VERSION)
CXXDEFS = $(CDEFS)
ifeq ($(HARDWARE_VARIANT), Teensy)
CDEFS += -DUSB_SERIAL
SRC += usb.c pins_teensy.c
CXXSRC += usb_api.cpp
CDEFS += -DUSB_SERIAL
LIB_SRC += usb.c pins_teensy.c
LIB_CXXSRC += usb_api.cpp
else ifeq ($(HARDWARE_VARIANT), archim)
CDEFS += -DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSB_VID=0x27b1 -DUSB_PID=0x0001 -DUSBCON '-DUSB_MANUFACTURER="UltiMachine"' '-DUSB_PRODUCT="Archim"'
LIB_CXXSRC += variant.cpp IPAddress.cpp Reset.cpp RingBuffer.cpp Stream.cpp UARTClass.cpp USARTClass.cpp abi.cpp new.cpp watchdog.cpp CDC.cpp PluggableUSB.cpp USBCore.cpp
LIB_SRC += cortex_handlers.c iar_calls_sam3.c syscalls_sam3.c dtostrf.c itoa.c
ifeq ($(U8GLIB), 1)
LIB_SRC += u8g_com_api.c u8g_pb32h1.c
endif
endif
# Add all the source directories as include directories too
CINCS = ${addprefix -I ,${VPATH}}
CXXINCS = ${addprefix -I ,${VPATH}}
# Silence warnings for library code (won't work for .h files, unfortunately)
LIBWARN = -w -Wno-packed-bitfield-compat
# Compiler flag to set the C/CPP Standard level.
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 \
-DARDUINO=$(ARDUINO_VERSION)
CWARN = -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
CXXWARN = -Wall -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
CTUNING = -fsigned-char -funsigned-bitfields -fno-exceptions \
-fshort-enums -ffunction-sections -fdata-sections
ifneq ($(HARDWARE_MOTHERBOARD),)
CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
endif
#CEXTRA = -Wa,-adhlns=$(<:.c=.lst)
CEXTRA = -fno-use-cxa-atexit -fno-threadsafe-statics
CFLAGS := $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CEXTRA) $(CTUNING) $(CSTANDARD)
CXXFLAGS := $(CDEFS) $(CINCS) -O$(OPT) -Wall $(CEXTRA) $(CTUNING) $(CXXSTANDARD)
CXXEXTRA = -fno-use-cxa-atexit -fno-threadsafe-statics -fno-rtti
CFLAGS := $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CEXTRA) $(CTUNING) $(CSTANDARD)
CXXFLAGS := $(CDEFS) $(CINCS) -O$(OPT) $(CXXEXTRA) $(CTUNING) $(CXXSTANDARD)
ASFLAGS := $(CDEFS)
#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
LDFLAGS = -lm
ifeq ($(HARDWARE_VARIANT), archim)
LD_PREFIX = -Wl,--gc-sections,-Map,Marlin.ino.map,--cref,--check-sections,--entry=Reset_Handler,--unresolved-symbols=report-all,--warn-common,--warn-section-align
LD_SUFFIX = $(LDLIBS)
LDFLAGS = -lm -T$(LDSCRIPT) -u _sbrk -u link -u _close -u _fstat -u _isatty -u _lseek -u _read -u _write -u _exit -u kill -u _getpid
else
LD_PREFIX = -Wl,--gc-sections,--relax
LDFLAGS = -lm
CTUNING += -flto
endif
# Programming support using avrdude. Settings and variables.
AVRDUDE_PORT = $(UPLOAD_PORT)
AVRDUDE_WRITE_FLASH = -Uflash:w:$(BUILD_DIR)/$(TARGET).hex:i
ifeq ($(shell uname -s), Linux)
AVRDUDE_CONF = /etc/avrdude/avrdude.conf
AVRDUDE_CONF = /etc/avrdude/avrdude.conf
else
AVRDUDE_CONF = $(ARDUINO_INSTALL_DIR)/hardware/tools/avr/etc/avrdude.conf
AVRDUDE_CONF = $(ARDUINO_INSTALL_DIR)/hardware/tools/avr/etc/avrdude.conf
endif
AVRDUDE_FLAGS = -D -C$(AVRDUDE_CONF) \
-p$(MCU) -P$(AVRDUDE_PORT) -c$(AVRDUDE_PROGRAMMER) \
-b$(UPLOAD_RATE)
-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.
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
ALL_CXXFLAGS = -mmcu=$(MCU) $(CXXFLAGS)
ALL_ASFLAGS = -mmcu=$(MCU) -x assembler-with-cpp $(ASFLAGS)
ALL_CFLAGS = $(MCU_FLAGS) $(CPU_FLAGS) $(CFLAGS) -I.
ALL_CXXFLAGS = $(MCU_FLAGS) $(CPU_FLAGS) $(CXXFLAGS)
ALL_ASFLAGS = $(MCU_FLAGS) $(CPU_FLAGS) $(ASFLAGS) -x assembler-with-cpp
# set V=1 (eg, "make V=1") to print the full commands etc.
ifneq ($V,1)
Pecho=@echo
P=@
Pecho=@echo
P=@
else
Pecho=@:
P=
Pecho=@:
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 bin
elf: $(BUILD_DIR)/$(TARGET).elf
bin: $(BUILD_DIR)/$(TARGET).bin
hex: $(BUILD_DIR)/$(TARGET).hex
eep: $(BUILD_DIR)/$(TARGET).eep
lss: $(BUILD_DIR)/$(TARGET).lss
@@ -438,9 +784,9 @@ ifeq (${AVRDUDE_PROGRAMMER}, arduino)
stty -hup < $(UPLOAD_PORT); true
endif
# Display size of file.
# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex
ELFSIZE = $(SIZE) --mcu=$(MCU) -C $(BUILD_DIR)/$(TARGET).elf; \
ELFSIZE = $(SIZE) $(SIZE_FLAGS) $(BUILD_DIR)/$(TARGET).elf; \
$(SIZE) $(BUILD_DIR)/$(TARGET).elf
sizebefore:
$P if [ -f $(BUILD_DIR)/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(HEXSIZE); echo; fi
@@ -451,10 +797,10 @@ sizeafter: build
# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
COFFCONVERT=$(OBJCOPY) --debugging \
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000
coff: $(BUILD_DIR)/$(TARGET).elf
@@ -465,16 +811,20 @@ extcoff: $(TARGET).elf
$(COFFCONVERT) -O coff-ext-avr $(BUILD_DIR)/$(TARGET).elf $(TARGET).cof
.SUFFIXES: .elf .hex .eep .lss .sym
.SUFFIXES: .elf .hex .eep .lss .sym .bin
.PRECIOUS: .o
.elf.hex:
$(Pecho) " COPY $@"
$P $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
.elf.bin:
$(Pecho) " COPY $@"
$P $(OBJCOPY) -O binary -R .eeprom $< $@
.elf.eep:
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
# Create extended listing file from ELF output file.
.elf.lss:
@@ -484,35 +834,44 @@ extcoff: $(TARGET).elf
.elf.sym:
$(NM) -n $< > $@
# Link: create ELF output file from library.
# 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) -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 $@
$P $(CC) -MMD -c $(ALL_CFLAGS) $(CWARN) $< -o $@
$(BUILD_DIR)/%.o: %.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
$(Pecho) " CXX $<"
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $< -o $@
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $(CXXWARN) $< -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) $(LIBWARN) $< -o $@
$(BUILD_DIR)/arduino/%.o: %.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
$(Pecho) " CXX $<"
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $(LIBWARN) $< -o $@
$(BUILD_DIR)/arduino/%.o: %.S $(MAKEFILE)
$(Pecho) " CXX $<"
$P $(CXX) -MMD -c $(ALL_ASFLAGS) $< -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)
.PHONY: all build elf hex eep lss sym program coff extcoff clean depend sizebefore sizeafter
.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}}
-479
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
+45 -64
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-2019 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.
*/
-516
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
-174
View File
@@ -1,174 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
MarlinSerial.h - Hardware serial library for Wiring
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
Modified 28 September 2010 by Mark Sproul
Modified 14 February 2016 by Andreas Hardtung (added tx buffer)
*/
#ifndef MARLINSERIAL_H
#define MARLINSERIAL_H
#include "MarlinConfig.h"
#ifndef SERIAL_PORT
#define SERIAL_PORT 0
#endif
// The presence of the UBRRH register is used to detect a UART.
#define UART_PRESENT(port) ((port == 0 && (defined(UBRRH) || defined(UBRR0H))) || \
(port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \
(port == 3 && defined(UBRR3H)))
// These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor
// requires two levels of indirection to expand macro values properly)
#define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix)
#if SERIAL_PORT == 0 && (!defined(UBRR0H) || !defined(UDR0)) // use un-numbered registers if necessary
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##suffix
#else
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix
#endif
// Registers used by MarlinSerial class (expanded depending on selected serial port)
#define M_UCSRxA SERIAL_REGNAME(UCSR,SERIAL_PORT,A) // defines M_UCSRxA to be UCSRnA where n is the serial port number
#define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B)
#define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,)
#define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,)
#define M_TXCx SERIAL_REGNAME(TXC,SERIAL_PORT,)
#define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,)
#define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,)
#define M_UDRIEx SERIAL_REGNAME(UDRIE,SERIAL_PORT,)
#define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,)
#define M_UBRRxH SERIAL_REGNAME(UBRR,SERIAL_PORT,H)
#define M_UBRRxL SERIAL_REGNAME(UBRR,SERIAL_PORT,L)
#define M_RXCx SERIAL_REGNAME(RXC,SERIAL_PORT,)
#define M_USARTx_RX_vect SERIAL_REGNAME(USART,SERIAL_PORT,_RX_vect)
#define M_U2Xx SERIAL_REGNAME(U2X,SERIAL_PORT,)
#define M_USARTx_UDRE_vect SERIAL_REGNAME(USART,SERIAL_PORT,_UDRE_vect)
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
#define BYTE 0
#ifndef USBCON
// Define constants and variables for buffering incoming serial data. We're
// using a ring buffer (I think), in which rx_buffer_head is the index of the
// location to which to write the next incoming character and rx_buffer_tail
// is the index of the location from which to read.
// 256 is the max limit due to uint8_t head and tail. Use only powers of 2. (...,16,32,64,128,256)
#ifndef RX_BUFFER_SIZE
#define RX_BUFFER_SIZE 128
#endif
#ifndef TX_BUFFER_SIZE
#define TX_BUFFER_SIZE 32
#endif
#if !((RX_BUFFER_SIZE == 256) ||(RX_BUFFER_SIZE == 128) ||(RX_BUFFER_SIZE == 64) ||(RX_BUFFER_SIZE == 32) ||(RX_BUFFER_SIZE == 16) ||(RX_BUFFER_SIZE == 8) ||(RX_BUFFER_SIZE == 4) ||(RX_BUFFER_SIZE == 2))
#error "RX_BUFFER_SIZE has to be a power of 2 and >= 2"
#endif
#if !((TX_BUFFER_SIZE == 256) ||(TX_BUFFER_SIZE == 128) ||(TX_BUFFER_SIZE == 64) ||(TX_BUFFER_SIZE == 32) ||(TX_BUFFER_SIZE == 16) ||(TX_BUFFER_SIZE == 8) ||(TX_BUFFER_SIZE == 4) ||(TX_BUFFER_SIZE == 2) ||(TX_BUFFER_SIZE == 0))
#error TX_BUFFER_SIZE has to be a power of 2 or 0
#endif
struct ring_buffer_r {
unsigned char buffer[RX_BUFFER_SIZE];
volatile uint8_t head;
volatile uint8_t tail;
};
#if TX_BUFFER_SIZE > 0
struct ring_buffer_t {
unsigned char buffer[TX_BUFFER_SIZE];
volatile uint8_t head;
volatile uint8_t tail;
};
#endif
#if UART_PRESENT(SERIAL_PORT)
extern ring_buffer_r rx_buffer;
#if TX_BUFFER_SIZE > 0
extern ring_buffer_t tx_buffer;
#endif
#endif
class MarlinSerial { //: public Stream
public:
MarlinSerial() {};
static void begin(const long);
static void end();
static int peek(void);
static int read(void);
static void flush(void);
static uint8_t available(void);
static void checkRx(void);
static void write(const uint8_t c);
#if TX_BUFFER_SIZE > 0
static uint8_t availableForWrite(void);
static void flushTX(void);
#endif
private:
static void printNumber(unsigned long, const uint8_t);
static void printFloat(double, uint8_t);
public:
static FORCE_INLINE void write(const char* str) { while (*str) write(*str++); }
static FORCE_INLINE void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
static FORCE_INLINE void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
static FORCE_INLINE void print(const char* str) { write(str); }
static void print(char, int = BYTE);
static void print(unsigned char, int = BYTE);
static void print(int, int = DEC);
static void print(unsigned int, int = DEC);
static void print(long, int = DEC);
static void print(unsigned long, int = DEC);
static void print(double, int = 2);
static void println(const String& s);
static void println(const char[]);
static void println(char, int = BYTE);
static void println(unsigned char, int = BYTE);
static void println(int, int = DEC);
static void println(unsigned int, int = DEC);
static void println(long, int = DEC);
static void println(unsigned long, int = DEC);
static void println(double, int = 2);
static void println(void);
};
extern MarlinSerial customizedSerial;
#endif // !USBCON
// Use the UART for Bluetooth in AT90USB configurations
#if defined(USBCON) && ENABLED(BLUETOOTH)
extern HardwareSerial bluetoothSerial;
#endif
#endif // MARLINSERIAL_H
-12613
View File
File diff suppressed because it is too large Load Diff
-1238
View File
File diff suppressed because it is too large Load Diff
-729
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
-251
View File
@@ -1,251 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino Sd2Card Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef Sd2Card_h
#define Sd2Card_h
/**
* \file
* \brief Sd2Card class for V2 SD/SDHC cards
*/
#include "SdFatConfig.h"
#include "SdInfo.h"
//------------------------------------------------------------------------------
// SPI speed is F_CPU/2^(1 + index), 0 <= index <= 6
/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */
uint8_t const SPI_FULL_SPEED = 0;
/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */
uint8_t const SPI_HALF_SPEED = 1;
/** Set SCK rate to F_CPU/8. See Sd2Card::setSckRate(). */
uint8_t const SPI_QUARTER_SPEED = 2;
/** Set SCK rate to F_CPU/16. See Sd2Card::setSckRate(). */
uint8_t const SPI_EIGHTH_SPEED = 3;
/** Set SCK rate to F_CPU/32. See Sd2Card::setSckRate(). */
uint8_t const SPI_SIXTEENTH_SPEED = 4;
//------------------------------------------------------------------------------
/** init timeout ms */
uint16_t const SD_INIT_TIMEOUT = 2000;
/** erase timeout ms */
uint16_t const SD_ERASE_TIMEOUT = 10000;
/** read timeout ms */
uint16_t const SD_READ_TIMEOUT = 300;
/** write time out ms */
uint16_t const SD_WRITE_TIMEOUT = 600;
//------------------------------------------------------------------------------
// SD card errors
/** timeout error for command CMD0 (initialize card in SPI mode) */
uint8_t const SD_CARD_ERROR_CMD0 = 0X1;
/** CMD8 was not accepted - not a valid SD card*/
uint8_t const SD_CARD_ERROR_CMD8 = 0X2;
/** card returned an error response for CMD12 (write stop) */
uint8_t const SD_CARD_ERROR_CMD12 = 0X3;
/** card returned an error response for CMD17 (read block) */
uint8_t const SD_CARD_ERROR_CMD17 = 0X4;
/** card returned an error response for CMD18 (read multiple block) */
uint8_t const SD_CARD_ERROR_CMD18 = 0X5;
/** card returned an error response for CMD24 (write block) */
uint8_t const SD_CARD_ERROR_CMD24 = 0X6;
/** WRITE_MULTIPLE_BLOCKS command failed */
uint8_t const SD_CARD_ERROR_CMD25 = 0X7;
/** card returned an error response for CMD58 (read OCR) */
uint8_t const SD_CARD_ERROR_CMD58 = 0X8;
/** SET_WR_BLK_ERASE_COUNT failed */
uint8_t const SD_CARD_ERROR_ACMD23 = 0X9;
/** ACMD41 initialization process timeout */
uint8_t const SD_CARD_ERROR_ACMD41 = 0XA;
/** card returned a bad CSR version field */
uint8_t const SD_CARD_ERROR_BAD_CSD = 0XB;
/** erase block group command failed */
uint8_t const SD_CARD_ERROR_ERASE = 0XC;
/** card not capable of single block erase */
uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0XD;
/** Erase sequence timed out */
uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0XE;
/** card returned an error token instead of read data */
uint8_t const SD_CARD_ERROR_READ = 0XF;
/** read CID or CSD failed */
uint8_t const SD_CARD_ERROR_READ_REG = 0X10;
/** timeout while waiting for start of read data */
uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X11;
/** card did not accept STOP_TRAN_TOKEN */
uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X12;
/** card returned an error token as a response to a write operation */
uint8_t const SD_CARD_ERROR_WRITE = 0X13;
/** attempt to write protected block zero */
uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X14; // REMOVE - not used
/** card did not go ready for a multiple block write */
uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X15;
/** card returned an error to a CMD13 status check after a write */
uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X16;
/** timeout occurred during write programming */
uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X17;
/** incorrect rate selected */
uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18;
/** init() not called */
uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19;
/** crc check error */
uint8_t const SD_CARD_ERROR_CRC = 0X20;
//------------------------------------------------------------------------------
// card types
/** Standard capacity V1 SD card */
uint8_t const SD_CARD_TYPE_SD1 = 1;
/** Standard capacity V2 SD card */
uint8_t const SD_CARD_TYPE_SD2 = 2;
/** High Capacity SD card */
uint8_t const SD_CARD_TYPE_SDHC = 3;
/**
* define SOFTWARE_SPI to use bit-bang SPI
*/
//------------------------------------------------------------------------------
#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__))
#define SOFTWARE_SPI
#elif USE_SOFTWARE_SPI
#define SOFTWARE_SPI
#endif // MEGA_SOFT_SPI
//------------------------------------------------------------------------------
// SPI pin definitions - do not edit here - change in SdFatConfig.h
//
#if DISABLED(SOFTWARE_SPI)
// hardware pin defs
/** The default chip select pin for the SD card is SS. */
#define SD_CHIP_SELECT_PIN SS_PIN
// The following three pins must not be redefined for hardware SPI.
/** SPI Master Out Slave In pin */
#define SPI_MOSI_PIN MOSI_PIN
/** SPI Master In Slave Out pin */
#define SPI_MISO_PIN MISO_PIN
/** SPI Clock pin */
#define SPI_SCK_PIN SCK_PIN
#else // SOFTWARE_SPI
/** SPI chip select pin */
#define SD_CHIP_SELECT_PIN SOFT_SPI_CS_PIN
/** SPI Master Out Slave In pin */
#define SPI_MOSI_PIN SOFT_SPI_MOSI_PIN
/** SPI Master In Slave Out pin */
#define SPI_MISO_PIN SOFT_SPI_MISO_PIN
/** SPI Clock pin */
#define SPI_SCK_PIN SOFT_SPI_SCK_PIN
#endif // SOFTWARE_SPI
//------------------------------------------------------------------------------
/**
* \class Sd2Card
* \brief Raw access to SD and SDHC flash memory cards.
*/
class Sd2Card {
public:
/** Construct an instance of Sd2Card. */
Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0) {}
uint32_t cardSize();
bool erase(uint32_t firstBlock, uint32_t lastBlock);
bool eraseSingleBlockEnable();
/**
* Set SD error code.
* \param[in] code value for error code.
*/
void error(uint8_t code) {errorCode_ = code;}
/**
* \return error code for last error. See Sd2Card.h for a list of error codes.
*/
int errorCode() const {return errorCode_;}
/** \return error data for last error. */
int errorData() const {return status_;}
/**
* Initialize an SD flash memory card with default clock rate and chip
* select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin).
*
* \return true for success or false for failure.
*/
bool init(uint8_t sckRateID = SPI_FULL_SPEED,
uint8_t chipSelectPin = SD_CHIP_SELECT_PIN);
bool readBlock(uint32_t block, uint8_t* dst);
/**
* Read a card's CID register. The CID contains card identification
* information such as Manufacturer ID, Product name, Product serial
* number and Manufacturing date.
*
* \param[out] cid pointer to area for returned data.
*
* \return true for success or false for failure.
*/
bool readCID(cid_t* cid) {
return readRegister(CMD10, cid);
}
/**
* Read a card's CSD register. The CSD contains Card-Specific Data that
* provides information regarding access to the card's contents.
*
* \param[out] csd pointer to area for returned data.
*
* \return true for success or false for failure.
*/
bool readCSD(csd_t* csd) {
return readRegister(CMD9, csd);
}
bool readData(uint8_t* dst);
bool readStart(uint32_t blockNumber);
bool readStop();
bool setSckRate(uint8_t sckRateID);
/** Return the card type: SD V1, SD V2 or SDHC
* \return 0 - SD V1, 1 - SD V2, or 3 - SDHC.
*/
int type() const {return type_;}
bool writeBlock(uint32_t blockNumber, const uint8_t* src);
bool writeData(const uint8_t* src);
bool writeStart(uint32_t blockNumber, uint32_t eraseCount);
bool writeStop();
private:
//----------------------------------------------------------------------------
uint8_t chipSelectPin_;
uint8_t errorCode_;
uint8_t spiRate_;
uint8_t status_;
uint8_t type_;
// private functions
uint8_t cardAcmd(uint8_t cmd, uint32_t arg) {
cardCommand(CMD55, 0);
return cardCommand(cmd, arg);
}
uint8_t cardCommand(uint8_t cmd, uint32_t arg);
bool readData(uint8_t* dst, uint16_t count);
bool readRegister(uint8_t cmd, void* buf);
void chipSelectHigh();
void chipSelectLow();
void type(uint8_t value) {type_ = value;}
bool waitNotBusy(uint16_t timeoutMillis);
bool writeData(uint8_t token, const uint8_t* src);
};
#endif // Sd2Card_h
#endif
-492
View File
@@ -1,492 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdBaseFile_h
#define SdBaseFile_h
/**
* \file
* \brief SdBaseFile class
*/
#include "Marlin.h"
#include "SdFatConfig.h"
#include "SdVolume.h"
//------------------------------------------------------------------------------
/**
* \struct filepos_t
* \brief internal type for istream
* do not use in user apps
*/
struct filepos_t {
/** stream position */
uint32_t position;
/** cluster for position */
uint32_t cluster;
filepos_t() : position(0), cluster(0) {}
};
// use the gnu style oflag in open()
/** open() oflag for reading */
uint8_t const O_READ = 0X01;
/** open() oflag - same as O_IN */
uint8_t const O_RDONLY = O_READ;
/** open() oflag for write */
uint8_t const O_WRITE = 0X02;
/** open() oflag - same as O_WRITE */
uint8_t const O_WRONLY = O_WRITE;
/** open() oflag for reading and writing */
uint8_t const O_RDWR = (O_READ | O_WRITE);
/** open() oflag mask for access modes */
uint8_t const O_ACCMODE = (O_READ | O_WRITE);
/** The file offset shall be set to the end of the file prior to each write. */
uint8_t const O_APPEND = 0X04;
/** synchronous writes - call sync() after each write */
uint8_t const O_SYNC = 0X08;
/** truncate the file to zero length */
uint8_t const O_TRUNC = 0X10;
/** set the initial position at the end of the file */
uint8_t const O_AT_END = 0X20;
/** create the file if nonexistent */
uint8_t const O_CREAT = 0X40;
/** If O_CREAT and O_EXCL are set, open() shall fail if the file exists */
uint8_t const O_EXCL = 0X80;
// SdBaseFile class static and const definitions
// flags for ls()
/** ls() flag to print modify date */
uint8_t const LS_DATE = 1;
/** ls() flag to print file size */
uint8_t const LS_SIZE = 2;
/** ls() flag for recursive list of subdirectories */
uint8_t const LS_R = 4;
// flags for timestamp
/** set the file's last access date */
uint8_t const T_ACCESS = 1;
/** set the file's creation date and time */
uint8_t const T_CREATE = 2;
/** Set the file's write date and time */
uint8_t const T_WRITE = 4;
// values for type_
/** This file has not been opened. */
uint8_t const FAT_FILE_TYPE_CLOSED = 0;
/** A normal file */
uint8_t const FAT_FILE_TYPE_NORMAL = 1;
/** A FAT12 or FAT16 root directory */
uint8_t const FAT_FILE_TYPE_ROOT_FIXED = 2;
/** A FAT32 root directory */
uint8_t const FAT_FILE_TYPE_ROOT32 = 3;
/** A subdirectory file*/
uint8_t const FAT_FILE_TYPE_SUBDIR = 4;
/** Test value for directory type */
uint8_t const FAT_FILE_TYPE_MIN_DIR = FAT_FILE_TYPE_ROOT_FIXED;
/** date field for FAT directory entry
* \param[in] year [1980,2107]
* \param[in] month [1,12]
* \param[in] day [1,31]
*
* \return Packed date for dir_t entry.
*/
static inline uint16_t FAT_DATE(uint16_t year, uint8_t month, uint8_t day) {
return (year - 1980) << 9 | month << 5 | day;
}
/** year part of FAT directory date field
* \param[in] fatDate Date in packed dir format.
*
* \return Extracted year [1980,2107]
*/
static inline uint16_t FAT_YEAR(uint16_t fatDate) {
return 1980 + (fatDate >> 9);
}
/** month part of FAT directory date field
* \param[in] fatDate Date in packed dir format.
*
* \return Extracted month [1,12]
*/
static inline uint8_t FAT_MONTH(uint16_t fatDate) {
return (fatDate >> 5) & 0XF;
}
/** day part of FAT directory date field
* \param[in] fatDate Date in packed dir format.
*
* \return Extracted day [1,31]
*/
static inline uint8_t FAT_DAY(uint16_t fatDate) {
return fatDate & 0X1F;
}
/** time field for FAT directory entry
* \param[in] hour [0,23]
* \param[in] minute [0,59]
* \param[in] second [0,59]
*
* \return Packed time for dir_t entry.
*/
static inline uint16_t FAT_TIME(uint8_t hour, uint8_t minute, uint8_t second) {
return hour << 11 | minute << 5 | second >> 1;
}
/** hour part of FAT directory time field
* \param[in] fatTime Time in packed dir format.
*
* \return Extracted hour [0,23]
*/
static inline uint8_t FAT_HOUR(uint16_t fatTime) {
return fatTime >> 11;
}
/** minute part of FAT directory time field
* \param[in] fatTime Time in packed dir format.
*
* \return Extracted minute [0,59]
*/
static inline uint8_t FAT_MINUTE(uint16_t fatTime) {
return (fatTime >> 5) & 0X3F;
}
/** second part of FAT directory time field
* Note second/2 is stored in packed time.
*
* \param[in] fatTime Time in packed dir format.
*
* \return Extracted second [0,58]
*/
static inline uint8_t FAT_SECOND(uint16_t fatTime) {
return 2 * (fatTime & 0X1F);
}
/** Default date for file timestamps is 1 Jan 2000 */
uint16_t const FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1;
/** Default time for file timestamp is 1 am */
uint16_t const FAT_DEFAULT_TIME = (1 << 11);
//------------------------------------------------------------------------------
/**
* \class SdBaseFile
* \brief Base class for SdFile with Print and C++ streams.
*/
class SdBaseFile {
public:
/** Create an instance. */
SdBaseFile() : writeError(false), type_(FAT_FILE_TYPE_CLOSED) {}
SdBaseFile(const char* path, uint8_t oflag);
~SdBaseFile() {if (isOpen()) close();}
/**
* writeError is set to true if an error occurs during a write().
* Set writeError to false before calling print() and/or write() and check
* for true after calls to print() and/or write().
*/
bool writeError;
//----------------------------------------------------------------------------
// helpers for stream classes
/** get position for streams
* \param[out] pos struct to receive position
*/
void getpos(filepos_t* pos);
/** set position for streams
* \param[out] pos struct with value for new position
*/
void setpos(filepos_t* pos);
//----------------------------------------------------------------------------
bool close();
bool contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock);
bool createContiguous(SdBaseFile* dirFile,
const char* path, uint32_t size);
/** \return The current cluster number for a file or directory. */
uint32_t curCluster() const {return curCluster_;}
/** \return The current position for a file or directory. */
uint32_t curPosition() const {return curPosition_;}
/** \return Current working directory */
static SdBaseFile* cwd() {return cwd_;}
/** Set the date/time callback function
*
* \param[in] dateTime The user's call back function. The callback
* function is of the form:
*
* \code
* void dateTime(uint16_t* date, uint16_t* time) {
* uint16_t year;
* uint8_t month, day, hour, minute, second;
*
* // User gets date and time from GPS or real-time clock here
*
* // return date using FAT_DATE macro to format fields
* *date = FAT_DATE(year, month, day);
*
* // return time using FAT_TIME macro to format fields
* *time = FAT_TIME(hour, minute, second);
* }
* \endcode
*
* Sets the function that is called when a file is created or when
* a file's directory entry is modified by sync(). All timestamps,
* access, creation, and modify, are set when a file is created.
* sync() maintains the last access date and last modify date/time.
*
* See the timestamp() function.
*/
static void dateTimeCallback(
void (*dateTime)(uint16_t* date, uint16_t* time)) {
dateTime_ = dateTime;
}
/** Cancel the date/time callback function. */
static void dateTimeCallbackCancel() {dateTime_ = 0;}
bool dirEntry(dir_t* dir);
static void dirName(const dir_t& dir, char* name);
bool exists(const char* name);
int16_t fgets(char* str, int16_t num, char* delim = 0);
/** \return The total number of bytes in a file or directory. */
uint32_t fileSize() const {return fileSize_;}
/** \return The first cluster number for a file or directory. */
uint32_t firstCluster() const {return firstCluster_;}
bool getFilename(char* name);
/** \return True if this is a directory else false. */
bool isDir() const {return type_ >= FAT_FILE_TYPE_MIN_DIR;}
/** \return True if this is a normal file else false. */
bool isFile() const {return type_ == FAT_FILE_TYPE_NORMAL;}
/** \return True if this is an open file/directory else false. */
bool isOpen() const {return type_ != FAT_FILE_TYPE_CLOSED;}
/** \return True if this is a subdirectory else false. */
bool isSubDir() const {return type_ == FAT_FILE_TYPE_SUBDIR;}
/** \return True if this is the root directory. */
bool isRoot() const {
return type_ == FAT_FILE_TYPE_ROOT_FIXED || type_ == FAT_FILE_TYPE_ROOT32;
}
void ls(uint8_t flags = 0, uint8_t indent = 0);
bool mkdir(SdBaseFile* dir, const char* path, bool pFlag = true);
// alias for backward compactability
bool makeDir(SdBaseFile* dir, const char* path) {
return mkdir(dir, path, false);
}
bool open(SdBaseFile* dirFile, uint16_t index, uint8_t oflag);
bool open(SdBaseFile* dirFile, const char* path, uint8_t oflag);
bool open(const char* path, uint8_t oflag = O_READ);
bool openNext(SdBaseFile* dirFile, uint8_t oflag);
bool openRoot(SdVolume* vol);
int peek();
static void printFatDate(uint16_t fatDate);
static void printFatTime(uint16_t fatTime);
bool printName();
int16_t read();
int16_t read(void* buf, uint16_t nbyte);
int8_t readDir(dir_t* dir, char* longFilename);
static bool remove(SdBaseFile* dirFile, const char* path);
bool remove();
/** Set the file's current position to zero. */
void rewind() {seekSet(0);}
bool rename(SdBaseFile* dirFile, const char* newPath);
bool rmdir();
// for backward compatibility
bool rmDir() {return rmdir();}
bool rmRfStar();
/** Set the files position to current position + \a pos. See seekSet().
* \param[in] offset The new position in bytes from the current position.
* \return true for success or false for failure.
*/
bool seekCur(int32_t offset) {
return seekSet(curPosition_ + offset);
}
/** Set the files position to end-of-file + \a offset. See seekSet().
* \param[in] offset The new position in bytes from end-of-file.
* \return true for success or false for failure.
*/
bool seekEnd(int32_t offset = 0) {return seekSet(fileSize_ + offset);}
bool seekSet(uint32_t pos);
bool sync();
bool timestamp(SdBaseFile* file);
bool timestamp(uint8_t flag, uint16_t year, uint8_t month, uint8_t day,
uint8_t hour, uint8_t minute, uint8_t second);
/** Type of file. You should use isFile() or isDir() instead of type()
* if possible.
*
* \return The file or directory type.
*/
uint8_t type() const {return type_;}
bool truncate(uint32_t size);
/** \return SdVolume that contains this file. */
SdVolume* volume() const {return vol_;}
int16_t write(const void* buf, uint16_t nbyte);
//------------------------------------------------------------------------------
private:
// allow SdFat to set cwd_
friend class SdFat;
// global pointer to cwd dir
static SdBaseFile* cwd_;
// data time callback function
static void (*dateTime_)(uint16_t* date, uint16_t* time);
// bits defined in flags_
// should be 0X0F
static uint8_t const F_OFLAG = (O_ACCMODE | O_APPEND | O_SYNC);
// sync of directory entry required
static uint8_t const F_FILE_DIR_DIRTY = 0X80;
// private data
uint8_t flags_; // See above for definition of flags_ bits
uint8_t fstate_; // error and eof indicator
uint8_t type_; // type of file see above for values
uint32_t curCluster_; // cluster for current file position
uint32_t curPosition_; // current file position in bytes from beginning
uint32_t dirBlock_; // block for this files directory entry
uint8_t dirIndex_; // index of directory entry in dirBlock
uint32_t fileSize_; // file size in bytes
uint32_t firstCluster_; // first cluster of file
SdVolume* vol_; // volume where file is located
/** experimental don't use */
bool openParent(SdBaseFile* dir);
// private functions
bool addCluster();
bool addDirCluster();
dir_t* cacheDirEntry(uint8_t action);
int8_t lsPrintNext(uint8_t flags, uint8_t indent);
static bool make83Name(const char* str, uint8_t* name, const char** ptr);
bool mkdir(SdBaseFile* parent, const uint8_t dname[11]);
bool open(SdBaseFile* dirFile, const uint8_t dname[11], uint8_t oflag);
bool openCachedEntry(uint8_t cacheIndex, uint8_t oflags);
dir_t* readDirCache();
//------------------------------------------------------------------------------
// to be deleted
static void printDirName(const dir_t& dir,
uint8_t width, bool printSlash);
//------------------------------------------------------------------------------
// Deprecated functions - suppress cpplint warnings with NOLINT comment
#if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
public:
/** \deprecated Use:
* bool contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock);
* \param[out] bgnBlock the first block address for the file.
* \param[out] endBlock the last block address for the file.
* \return true for success or false for failure.
*/
bool contiguousRange(uint32_t& bgnBlock, uint32_t& endBlock) { // NOLINT
return contiguousRange(&bgnBlock, &endBlock);
}
/** \deprecated Use:
* bool createContiguous(SdBaseFile* dirFile,
* const char* path, uint32_t size)
* \param[in] dirFile The directory where the file will be created.
* \param[in] path A path with a valid DOS 8.3 file name.
* \param[in] size The desired file size.
* \return true for success or false for failure.
*/
bool createContiguous(SdBaseFile& dirFile, // NOLINT
const char* path, uint32_t size) {
return createContiguous(&dirFile, path, size);
}
/** \deprecated Use:
* static void dateTimeCallback(
* void (*dateTime)(uint16_t* date, uint16_t* time));
* \param[in] dateTime The user's call back function.
*/
static void dateTimeCallback(
void (*dateTime)(uint16_t &date, uint16_t &time)) { // NOLINT
oldDateTime_ = dateTime;
dateTime_ = dateTime ? oldToNew : 0;
}
/** \deprecated Use: bool dirEntry(dir_t* dir);
* \param[out] dir Location for return of the file's directory entry.
* \return true for success or false for failure.
*/
bool dirEntry(dir_t& dir) {return dirEntry(&dir);} // NOLINT
/** \deprecated Use:
* bool mkdir(SdBaseFile* dir, const char* path);
* \param[in] dir An open SdFat instance for the directory that will contain
* the new directory.
* \param[in] path A path with a valid 8.3 DOS name for the new directory.
* \return true for success or false for failure.
*/
bool mkdir(SdBaseFile& dir, const char* path) { // NOLINT
return mkdir(&dir, path);
}
/** \deprecated Use:
* bool open(SdBaseFile* dirFile, const char* path, uint8_t oflag);
* \param[in] dirFile An open SdFat instance for the directory containing the
* file to be opened.
* \param[in] path A path with a valid 8.3 DOS name for the file.
* \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive
* OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC.
* \return true for success or false for failure.
*/
bool open(SdBaseFile& dirFile, // NOLINT
const char* path, uint8_t oflag) {
return open(&dirFile, path, oflag);
}
/** \deprecated Do not use in new apps
* \param[in] dirFile An open SdFat instance for the directory containing the
* file to be opened.
* \param[in] path A path with a valid 8.3 DOS name for a file to be opened.
* \return true for success or false for failure.
*/
bool open(SdBaseFile& dirFile, const char* path) { // NOLINT
return open(dirFile, path, O_RDWR);
}
/** \deprecated Use:
* bool open(SdBaseFile* dirFile, uint16_t index, uint8_t oflag);
* \param[in] dirFile An open SdFat instance for the directory.
* \param[in] index The \a index of the directory entry for the file to be
* opened. The value for \a index is (directory file position)/32.
* \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive
* OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC.
* \return true for success or false for failure.
*/
bool open(SdBaseFile& dirFile, uint16_t index, uint8_t oflag) { // NOLINT
return open(&dirFile, index, oflag);
}
/** \deprecated Use: bool openRoot(SdVolume* vol);
* \param[in] vol The FAT volume containing the root directory to be opened.
* \return true for success or false for failure.
*/
bool openRoot(SdVolume& vol) {return openRoot(&vol);} // NOLINT
/** \deprecated Use: int8_t readDir(dir_t* dir);
* \param[out] dir The dir_t struct that will receive the data.
* \return bytes read for success zero for eof or -1 for failure.
*/
int8_t readDir(dir_t& dir, char* longFilename) {return readDir(&dir, longFilename);} // NOLINT
/** \deprecated Use:
* static uint8_t remove(SdBaseFile* dirFile, const char* path);
* \param[in] dirFile The directory that contains the file.
* \param[in] path The name of the file to be removed.
* \return true for success or false for failure.
*/
static bool remove(SdBaseFile& dirFile, const char* path) { // NOLINT
return remove(&dirFile, path);
}
//------------------------------------------------------------------------------
// rest are private
private:
static void (*oldDateTime_)(uint16_t &date, uint16_t &time); // NOLINT
static void oldToNew(uint16_t* date, uint16_t* time) {
uint16_t d;
uint16_t t;
oldDateTime_(d, t);
*date = d;
*time = t;
}
#endif // ALLOW_DEPRECATED_FUNCTIONS
};
#endif // SdBaseFile_h
#endif
-134
View File
@@ -1,134 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
/**
* \file
* \brief configuration definitions
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdFatConfig_h
#define SdFatConfig_h
#include <stdint.h>
//------------------------------------------------------------------------------
/**
* To use multiple SD cards set USE_MULTIPLE_CARDS nonzero.
*
* Using multiple cards costs 400 - 500 bytes of flash.
*
* Each card requires about 550 bytes of SRAM so use of a Mega is recommended.
*/
#define USE_MULTIPLE_CARDS 0
//------------------------------------------------------------------------------
/**
* Call flush for endl if ENDL_CALLS_FLUSH is nonzero
*
* The standard for iostreams is to call flush. This is very costly for
* SdFat. Each call to flush causes 2048 bytes of I/O to the SD.
*
* SdFat has a single 512 byte buffer for SD I/O so it must write the current
* data block to the SD, read the directory block from the SD, update the
* directory entry, write the directory block to the SD and read the data
* block back into the buffer.
*
* The SD flash memory controller is not designed for this many rewrites
* so performance may be reduced by more than a factor of 100.
*
* If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force
* all data to be written to the SD.
*/
#define ENDL_CALLS_FLUSH 0
//------------------------------------------------------------------------------
/**
* Allow use of deprecated functions if ALLOW_DEPRECATED_FUNCTIONS is nonzero
*/
#define ALLOW_DEPRECATED_FUNCTIONS 1
//------------------------------------------------------------------------------
/**
* Allow FAT12 volumes if FAT12_SUPPORT is nonzero.
* FAT12 has not been well tested.
*/
#define FAT12_SUPPORT 0
//------------------------------------------------------------------------------
/**
* SPI init rate for SD initialization commands. Must be 5 (F_CPU/64)
* or 6 (F_CPU/128).
*/
#define SPI_SD_INIT_RATE 5
//------------------------------------------------------------------------------
/**
* Set the SS pin high for hardware SPI. If SS is chip select for another SPI
* device this will disable that device during the SD init phase.
*/
#define SET_SPI_SS_HIGH 1
//------------------------------------------------------------------------------
/**
* Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos.
* Pins used are SS 10, MOSI 11, MISO 12, and SCK 13.
*
* MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used
* on Mega Arduinos. Software SPI works well with GPS Shield V1.1
* but many SD cards will fail with GPS Shield V1.0.
*/
#define MEGA_SOFT_SPI 0
//------------------------------------------------------------------------------
/**
* Set USE_SOFTWARE_SPI nonzero to always use software SPI.
*/
#define USE_SOFTWARE_SPI 0
// define software SPI pins so Mega can use unmodified 168/328 shields
/** Software SPI chip select pin for the SD */
#define SOFT_SPI_CS_PIN 10
/** Software SPI Master Out Slave In pin */
#define SOFT_SPI_MOSI_PIN 11
/** Software SPI Master In Slave Out pin */
#define SOFT_SPI_MISO_PIN 12
/** Software SPI Clock pin */
#define SOFT_SPI_SCK_PIN 13
//------------------------------------------------------------------------------
/**
* The __cxa_pure_virtual function is an error handler that is invoked when
* a pure virtual function is called.
*/
#define USE_CXA_PURE_VIRTUAL 1
/** Number of UTF-16 characters per entry */
#define FILENAME_LENGTH 13
/**
* Defines for long (vfat) filenames
*/
/** Number of VFAT entries used. Every entry has 13 UTF-16 characters */
#define MAX_VFAT_ENTRIES (2)
/** Total size of the buffer used to store the long filenames */
#define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1)
#endif // SdFatConfig_h
#endif
-655
View File
@@ -1,655 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdFatStructs_h
#define SdFatStructs_h
#define PACKED __attribute__((__packed__))
/**
* \file
* \brief FAT file structures
*/
/**
* mostly from Microsoft document fatgen103.doc
* http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
*/
//------------------------------------------------------------------------------
/** Value for byte 510 of boot block or MBR */
uint8_t const BOOTSIG0 = 0X55;
/** Value for byte 511 of boot block or MBR */
uint8_t const BOOTSIG1 = 0XAA;
/** Value for bootSignature field int FAT/FAT32 boot sector */
uint8_t const EXTENDED_BOOT_SIG = 0X29;
//------------------------------------------------------------------------------
/**
* \struct partitionTable
* \brief MBR partition table entry
*
* A partition table entry for a MBR formatted storage device.
* The MBR partition table has four entries.
*/
struct partitionTable {
/**
* Boot Indicator . Indicates whether the volume is the active
* partition. Legal values include: 0X00. Do not use for booting.
* 0X80 Active partition.
*/
uint8_t boot;
/**
* Head part of Cylinder-head-sector address of the first block in
* the partition. Legal values are 0-255. Only used in old PC BIOS.
*/
uint8_t beginHead;
/**
* Sector part of Cylinder-head-sector address of the first block in
* the partition. Legal values are 1-63. Only used in old PC BIOS.
*/
unsigned beginSector : 6;
/** High bits cylinder for first block in partition. */
unsigned beginCylinderHigh : 2;
/**
* Combine beginCylinderLow with beginCylinderHigh. Legal values
* are 0-1023. Only used in old PC BIOS.
*/
uint8_t beginCylinderLow;
/**
* Partition type. See defines that begin with PART_TYPE_ for
* some Microsoft partition types.
*/
uint8_t type;
/**
* head part of cylinder-head-sector address of the last sector in the
* partition. Legal values are 0-255. Only used in old PC BIOS.
*/
uint8_t endHead;
/**
* Sector part of cylinder-head-sector address of the last sector in
* the partition. Legal values are 1-63. Only used in old PC BIOS.
*/
unsigned endSector : 6;
/** High bits of end cylinder */
unsigned endCylinderHigh : 2;
/**
* Combine endCylinderLow with endCylinderHigh. Legal values
* are 0-1023. Only used in old PC BIOS.
*/
uint8_t endCylinderLow;
/** Logical block address of the first block in the partition. */
uint32_t firstSector;
/** Length of the partition, in blocks. */
uint32_t totalSectors;
} PACKED;
/** Type name for partitionTable */
typedef struct partitionTable part_t;
//------------------------------------------------------------------------------
/**
* \struct masterBootRecord
*
* \brief Master Boot Record
*
* The first block of a storage device that is formatted with a MBR.
*/
struct masterBootRecord {
/** Code Area for master boot program. */
uint8_t codeArea[440];
/** Optional Windows NT disk signature. May contain boot code. */
uint32_t diskSignature;
/** Usually zero but may be more boot code. */
uint16_t usuallyZero;
/** Partition tables. */
part_t part[4];
/** First MBR signature byte. Must be 0X55 */
uint8_t mbrSig0;
/** Second MBR signature byte. Must be 0XAA */
uint8_t mbrSig1;
} PACKED;
/** Type name for masterBootRecord */
typedef struct masterBootRecord mbr_t;
//------------------------------------------------------------------------------
/**
* \struct fat_boot
*
* \brief Boot sector for a FAT12/FAT16 volume.
*
*/
struct fat_boot {
/**
* The first three bytes of the boot sector must be valid,
* executable x 86-based CPU instructions. This includes a
* jump instruction that skips the next nonexecutable bytes.
*/
uint8_t jump[3];
/**
* This is typically a string of characters that identifies
* the operating system that formatted the volume.
*/
char oemId[8];
/**
* The size of a hardware sector. Valid decimal values for this
* field are 512, 1024, 2048, and 4096. For most disks used in
* the United States, the value of this field is 512.
*/
uint16_t bytesPerSector;
/**
* Number of sectors per allocation unit. This value must be a
* power of 2 that is greater than 0. The legal values are
* 1, 2, 4, 8, 16, 32, 64, and 128. 128 should be avoided.
*/
uint8_t sectorsPerCluster;
/**
* The number of sectors preceding the start of the first FAT,
* including the boot sector. The value of this field is always 1.
*/
uint16_t reservedSectorCount;
/**
* The number of copies of the FAT on the volume.
* The value of this field is always 2.
*/
uint8_t fatCount;
/**
* For FAT12 and FAT16 volumes, this field contains the count of
* 32-byte directory entries in the root directory. For FAT32 volumes,
* this field must be set to 0. For FAT12 and FAT16 volumes, this
* value should always specify a count that when multiplied by 32
* results in a multiple of bytesPerSector. FAT16 volumes should
* use the value 512.
*/
uint16_t rootDirEntryCount;
/**
* This field is the old 16-bit total count of sectors on the volume.
* This count includes the count of all sectors in all four regions
* of the volume. This field can be 0; if it is 0, then totalSectors32
* must be nonzero. For FAT32 volumes, this field must be 0. For
* FAT12 and FAT16 volumes, this field contains the sector count, and
* totalSectors32 is 0 if the total sector count fits
* (is less than 0x10000).
*/
uint16_t totalSectors16;
/**
* This dates back to the old MS-DOS 1.x media determination and is
* no longer usually used for anything. 0xF8 is the standard value
* for fixed (nonremovable) media. For removable media, 0xF0 is
* frequently used. Legal values are 0xF0 or 0xF8-0xFF.
*/
uint8_t mediaType;
/**
* Count of sectors occupied by one FAT on FAT12/FAT16 volumes.
* On FAT32 volumes this field must be 0, and sectorsPerFat32
* contains the FAT size count.
*/
uint16_t sectorsPerFat16;
/** Sectors per track for interrupt 0x13. Not used otherwise. */
uint16_t sectorsPerTrack;
/** Number of heads for interrupt 0x13. Not used otherwise. */
uint16_t headCount;
/**
* Count of hidden sectors preceding the partition that contains this
* FAT volume. This field is generally only relevant for media
* visible on interrupt 0x13.
*/
uint32_t hidddenSectors;
/**
* This field is the new 32-bit total count of sectors on the volume.
* This count includes the count of all sectors in all four regions
* of the volume. This field can be 0; if it is 0, then
* totalSectors16 must be nonzero.
*/
uint32_t totalSectors32;
/**
* Related to the BIOS physical drive number. Floppy drives are
* identified as 0x00 and physical hard disks are identified as
* 0x80, regardless of the number of physical disk drives.
* Typically, this value is set prior to issuing an INT 13h BIOS
* call to specify the device to access. The value is only
* relevant if the device is a boot device.
*/
uint8_t driveNumber;
/** used by Windows NT - should be zero for FAT */
uint8_t reserved1;
/** 0X29 if next three fields are valid */
uint8_t bootSignature;
/**
* A random serial number created when formatting a disk,
* which helps to distinguish between disks.
* Usually generated by combining date and time.
*/
uint32_t volumeSerialNumber;
/**
* A field once used to store the volume label. The volume label
* is now stored as a special file in the root directory.
*/
char volumeLabel[11];
/**
* A field with a value of either FAT, FAT12 or FAT16,
* depending on the disk format.
*/
char fileSystemType[8];
/** X86 boot code */
uint8_t bootCode[448];
/** must be 0X55 */
uint8_t bootSectorSig0;
/** must be 0XAA */
uint8_t bootSectorSig1;
} PACKED;
/** Type name for FAT Boot Sector */
typedef struct fat_boot fat_boot_t;
//------------------------------------------------------------------------------
/**
* \struct fat32_boot
*
* \brief Boot sector for a FAT32 volume.
*
*/
struct fat32_boot {
/**
* The first three bytes of the boot sector must be valid,
* executable x 86-based CPU instructions. This includes a
* jump instruction that skips the next nonexecutable bytes.
*/
uint8_t jump[3];
/**
* This is typically a string of characters that identifies
* the operating system that formatted the volume.
*/
char oemId[8];
/**
* The size of a hardware sector. Valid decimal values for this
* field are 512, 1024, 2048, and 4096. For most disks used in
* the United States, the value of this field is 512.
*/
uint16_t bytesPerSector;
/**
* Number of sectors per allocation unit. This value must be a
* power of 2 that is greater than 0. The legal values are
* 1, 2, 4, 8, 16, 32, 64, and 128. 128 should be avoided.
*/
uint8_t sectorsPerCluster;
/**
* The number of sectors preceding the start of the first FAT,
* including the boot sector. Must not be zero
*/
uint16_t reservedSectorCount;
/**
* The number of copies of the FAT on the volume.
* The value of this field is always 2.
*/
uint8_t fatCount;
/**
* FAT12/FAT16 only. For FAT32 volumes, this field must be set to 0.
*/
uint16_t rootDirEntryCount;
/**
* For FAT32 volumes, this field must be 0.
*/
uint16_t totalSectors16;
/**
* This dates back to the old MS-DOS 1.x media determination and is
* no longer usually used for anything. 0xF8 is the standard value
* for fixed (nonremovable) media. For removable media, 0xF0 is
* frequently used. Legal values are 0xF0 or 0xF8-0xFF.
*/
uint8_t mediaType;
/**
* On FAT32 volumes this field must be 0, and sectorsPerFat32
* contains the FAT size count.
*/
uint16_t sectorsPerFat16;
/** Sectors per track for interrupt 0x13. Not used otherwise. */
uint16_t sectorsPerTrack;
/** Number of heads for interrupt 0x13. Not used otherwise. */
uint16_t headCount;
/**
* Count of hidden sectors preceding the partition that contains this
* FAT volume. This field is generally only relevant for media
* visible on interrupt 0x13.
*/
uint32_t hidddenSectors;
/**
* Contains the total number of sectors in the FAT32 volume.
*/
uint32_t totalSectors32;
/**
* Count of sectors occupied by one FAT on FAT32 volumes.
*/
uint32_t sectorsPerFat32;
/**
* This field is only defined for FAT32 media and does not exist on
* FAT12 and FAT16 media.
* Bits 0-3 -- Zero-based number of active FAT.
* Only valid if mirroring is disabled.
* Bits 4-6 -- Reserved.
* Bit 7 -- 0 means the FAT is mirrored at runtime into all FATs.
* -- 1 means only one FAT is active; it is the one referenced
* in bits 0-3.
* Bits 8-15 -- Reserved.
*/
uint16_t fat32Flags;
/**
* FAT32 version. High byte is major revision number.
* Low byte is minor revision number. Only 0.0 define.
*/
uint16_t fat32Version;
/**
* Cluster number of the first cluster of the root directory for FAT32.
* This usually 2 but not required to be 2.
*/
uint32_t fat32RootCluster;
/**
* Sector number of FSINFO structure in the reserved area of the
* FAT32 volume. Usually 1.
*/
uint16_t fat32FSInfo;
/**
* If nonzero, indicates the sector number in the reserved area
* of the volume of a copy of the boot record. Usually 6.
* No value other than 6 is recommended.
*/
uint16_t fat32BackBootBlock;
/**
* Reserved for future expansion. Code that formats FAT32 volumes
* should always set all of the bytes of this field to 0.
*/
uint8_t fat32Reserved[12];
/**
* Related to the BIOS physical drive number. Floppy drives are
* identified as 0x00 and physical hard disks are identified as
* 0x80, regardless of the number of physical disk drives.
* Typically, this value is set prior to issuing an INT 13h BIOS
* call to specify the device to access. The value is only
* relevant if the device is a boot device.
*/
uint8_t driveNumber;
/** used by Windows NT - should be zero for FAT */
uint8_t reserved1;
/** 0X29 if next three fields are valid */
uint8_t bootSignature;
/**
* A random serial number created when formatting a disk,
* which helps to distinguish between disks.
* Usually generated by combining date and time.
*/
uint32_t volumeSerialNumber;
/**
* A field once used to store the volume label. The volume label
* is now stored as a special file in the root directory.
*/
char volumeLabel[11];
/**
* A text field with a value of FAT32.
*/
char fileSystemType[8];
/** X86 boot code */
uint8_t bootCode[420];
/** must be 0X55 */
uint8_t bootSectorSig0;
/** must be 0XAA */
uint8_t bootSectorSig1;
} PACKED;
/** Type name for FAT32 Boot Sector */
typedef struct fat32_boot fat32_boot_t;
//------------------------------------------------------------------------------
/** Lead signature for a FSINFO sector */
uint32_t const FSINFO_LEAD_SIG = 0x41615252;
/** Struct signature for a FSINFO sector */
uint32_t const FSINFO_STRUCT_SIG = 0x61417272;
/**
* \struct fat32_fsinfo
*
* \brief FSINFO sector for a FAT32 volume.
*
*/
struct fat32_fsinfo {
/** must be 0X52, 0X52, 0X61, 0X41 */
uint32_t leadSignature;
/** must be zero */
uint8_t reserved1[480];
/** must be 0X72, 0X72, 0X41, 0X61 */
uint32_t structSignature;
/**
* Contains the last known free cluster count on the volume.
* If the value is 0xFFFFFFFF, then the free count is unknown
* and must be computed. Any other value can be used, but is
* not necessarily correct. It should be range checked at least
* to make sure it is <= volume cluster count.
*/
uint32_t freeCount;
/**
* This is a hint for the FAT driver. It indicates the cluster
* number at which the driver should start looking for free clusters.
* If the value is 0xFFFFFFFF, then there is no hint and the driver
* should start looking at cluster 2.
*/
uint32_t nextFree;
/** must be zero */
uint8_t reserved2[12];
/** must be 0X00, 0X00, 0X55, 0XAA */
uint8_t tailSignature[4];
} PACKED;
/** Type name for FAT32 FSINFO Sector */
typedef struct fat32_fsinfo fat32_fsinfo_t;
//------------------------------------------------------------------------------
// End Of Chain values for FAT entries
/** FAT12 end of chain value used by Microsoft. */
uint16_t const FAT12EOC = 0XFFF;
/** Minimum value for FAT12 EOC. Use to test for EOC. */
uint16_t const FAT12EOC_MIN = 0XFF8;
/** FAT16 end of chain value used by Microsoft. */
uint16_t const FAT16EOC = 0XFFFF;
/** Minimum value for FAT16 EOC. Use to test for EOC. */
uint16_t const FAT16EOC_MIN = 0XFFF8;
/** FAT32 end of chain value used by Microsoft. */
uint32_t const FAT32EOC = 0X0FFFFFFF;
/** Minimum value for FAT32 EOC. Use to test for EOC. */
uint32_t const FAT32EOC_MIN = 0X0FFFFFF8;
/** Mask a for FAT32 entry. Entries are 28 bits. */
uint32_t const FAT32MASK = 0X0FFFFFFF;
//------------------------------------------------------------------------------
/**
* \struct directoryEntry
* \brief FAT short directory entry
*
* Short means short 8.3 name, not the entry size.
*
* Date Format. A FAT directory entry date stamp is a 16-bit field that is
* basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the
* format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the
* 16-bit word):
*
* Bits 9-15: Count of years from 1980, valid value range 0-127
* inclusive (1980-2107).
*
* Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive.
*
* Bits 0-4: Day of month, valid value range 1-31 inclusive.
*
* Time Format. A FAT directory entry time stamp is a 16-bit field that has
* a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the
* 16-bit word, bit 15 is the MSB of the 16-bit word).
*
* Bits 11-15: Hours, valid value range 0-23 inclusive.
*
* Bits 5-10: Minutes, valid value range 0-59 inclusive.
*
* Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds).
*
* The valid time range is from Midnight 00:00:00 to 23:59:58.
*/
struct directoryEntry {
/** Short 8.3 name.
*
* The first eight bytes contain the file name with blank fill.
* The last three bytes contain the file extension with blank fill.
*/
uint8_t name[11];
/** Entry attributes.
*
* The upper two bits of the attribute byte are reserved and should
* always be set to 0 when a file is created and never modified or
* looked at after that. See defines that begin with DIR_ATT_.
*/
uint8_t attributes;
/**
* Reserved for use by Windows NT. Set value to 0 when a file is
* created and never modify or look at it after that.
*/
uint8_t reservedNT;
/**
* The granularity of the seconds part of creationTime is 2 seconds
* so this field is a count of tenths of a second and its valid
* value range is 0-199 inclusive. (WHG note - seems to be hundredths)
*/
uint8_t creationTimeTenths;
/** Time file was created. */
uint16_t creationTime;
/** Date file was created. */
uint16_t creationDate;
/**
* Last access date. Note that there is no last access time, only
* a date. This is the date of last read or write. In the case of
* a write, this should be set to the same date as lastWriteDate.
*/
uint16_t lastAccessDate;
/**
* High word of this entry's first cluster number (always 0 for a
* FAT12 or FAT16 volume).
*/
uint16_t firstClusterHigh;
/** Time of last write. File creation is considered a write. */
uint16_t lastWriteTime;
/** Date of last write. File creation is considered a write. */
uint16_t lastWriteDate;
/** Low word of this entry's first cluster number. */
uint16_t firstClusterLow;
/** 32-bit unsigned holding this file's size in bytes. */
uint32_t fileSize;
} PACKED;
/**
* \struct directoryVFATEntry
* \brief VFAT long filename directory entry
*
* directoryVFATEntries are found in the same list as normal directoryEntry.
* But have the attribute field set to DIR_ATT_LONG_NAME.
*
* Long filenames are saved in multiple directoryVFATEntries.
* Each entry containing 13 UTF-16 characters.
*/
struct directoryVFATEntry {
/**
* Sequence number. Consists of 2 parts:
* bit 6: indicates first long filename block for the next file
* bit 0-4: the position of this long filename block (first block is 1)
*/
uint8_t sequenceNumber;
/** First set of UTF-16 characters */
uint16_t name1[5];//UTF-16
/** attributes (at the same location as in directoryEntry), always 0x0F */
uint8_t attributes;
/** Reserved for use by Windows NT. Always 0. */
uint8_t reservedNT;
/** Checksum of the short 8.3 filename, can be used to checked if the file system as modified by a not-long-filename aware implementation. */
uint8_t checksum;
/** Second set of UTF-16 characters */
uint16_t name2[6];//UTF-16
/** firstClusterLow is always zero for longFilenames */
uint16_t firstClusterLow;
/** Third set of UTF-16 characters */
uint16_t name3[2];//UTF-16
} PACKED;
//------------------------------------------------------------------------------
// Definitions for directory entries
//
/** Type name for directoryEntry */
typedef struct directoryEntry dir_t;
/** Type name for directoryVFATEntry */
typedef struct directoryVFATEntry vfat_t;
/** escape for name[0] = 0XE5 */
uint8_t const DIR_NAME_0XE5 = 0X05;
/** name[0] value for entry that is free after being "deleted" */
uint8_t const DIR_NAME_DELETED = 0XE5;
/** name[0] value for entry that is free and no allocated entries follow */
uint8_t const DIR_NAME_FREE = 0X00;
/** file is read-only */
uint8_t const DIR_ATT_READ_ONLY = 0X01;
/** File should hidden in directory listings */
uint8_t const DIR_ATT_HIDDEN = 0X02;
/** Entry is for a system file */
uint8_t const DIR_ATT_SYSTEM = 0X04;
/** Directory entry contains the volume label */
uint8_t const DIR_ATT_VOLUME_ID = 0X08;
/** Entry is for a directory */
uint8_t const DIR_ATT_DIRECTORY = 0X10;
/** Old DOS archive bit for backup support */
uint8_t const DIR_ATT_ARCHIVE = 0X20;
/** Test value for long name entry. Test is
(d->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME. */
uint8_t const DIR_ATT_LONG_NAME = 0X0F;
/** Test mask for long name entry */
uint8_t const DIR_ATT_LONG_NAME_MASK = 0X3F;
/** defined attribute bits */
uint8_t const DIR_ATT_DEFINED_BITS = 0X3F;
/** Directory entry is part of a long name
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for part of a long name else false.
*/
static inline uint8_t DIR_IS_LONG_NAME(const dir_t* dir) {
return (dir->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME;
}
/** Mask for file/subdirectory tests */
uint8_t const DIR_ATT_FILE_TYPE_MASK = (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY);
/** Directory entry is for a file
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for a normal file else false.
*/
static inline uint8_t DIR_IS_FILE(const dir_t* dir) {
return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == 0;
}
/** Directory entry is for a subdirectory
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for a subdirectory else false.
*/
static inline uint8_t DIR_IS_SUBDIR(const dir_t* dir) {
return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == DIR_ATT_DIRECTORY;
}
/** Directory entry is for a file or subdirectory
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for a normal file or subdirectory else false.
*/
static inline uint8_t DIR_IS_FILE_OR_SUBDIR(const dir_t* dir) {
return (dir->attributes & DIR_ATT_VOLUME_ID) == 0;
}
#endif // SdFatStructs_h
#endif
-91
View File
@@ -1,91 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2008 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#include "SdFatUtil.h"
//------------------------------------------------------------------------------
/** Amount of free RAM
* \return The number of free bytes.
*/
#ifdef __arm__
extern "C" char* sbrk(int incr);
int SdFatUtil::FreeRam() {
char top;
return &top - reinterpret_cast<char*>(sbrk(0));
}
#else // __arm__
extern char* __brkval;
extern char __bss_end;
/** Amount of free RAM
* \return The number of free bytes.
*/
int SdFatUtil::FreeRam() {
char top;
return __brkval ? &top - __brkval : &top - &__bss_end;
}
#endif // __arm
//------------------------------------------------------------------------------
/** %Print a string in flash memory.
*
* \param[in] pr Print object for output.
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::print_P(PGM_P str) {
for (uint8_t c; (c = pgm_read_byte(str)); str++) MYSERIAL.write(c);
}
//------------------------------------------------------------------------------
/** %Print a string in flash memory followed by a CR/LF.
*
* \param[in] pr Print object for output.
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::println_P(PGM_P str) {
print_P(str);
MYSERIAL.println();
}
//------------------------------------------------------------------------------
/** %Print a string in flash memory to Serial.
*
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::SerialPrint_P(PGM_P str) {
print_P(str);
}
//------------------------------------------------------------------------------
/** %Print a string in flash memory to Serial followed by a CR/LF.
*
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::SerialPrintln_P(PGM_P str) {
println_P(str);
}
#endif
-227
View File
@@ -1,227 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdVolume_h
#define SdVolume_h
/**
* \file
* \brief SdVolume class
*/
#include "SdFatConfig.h"
#include "Sd2Card.h"
#include "SdFatStructs.h"
//==============================================================================
// SdVolume class
/**
* \brief Cache for an SD data block
*/
union cache_t {
/** Used to access cached file data blocks. */
uint8_t data[512];
/** Used to access cached FAT16 entries. */
uint16_t fat16[256];
/** Used to access cached FAT32 entries. */
uint32_t fat32[128];
/** Used to access cached directory entries. */
dir_t dir[16];
/** Used to access a cached Master Boot Record. */
mbr_t mbr;
/** Used to access to a cached FAT boot sector. */
fat_boot_t fbs;
/** Used to access to a cached FAT32 boot sector. */
fat32_boot_t fbs32;
/** Used to access to a cached FAT32 FSINFO sector. */
fat32_fsinfo_t fsinfo;
};
//------------------------------------------------------------------------------
/**
* \class SdVolume
* \brief Access FAT16 and FAT32 volumes on SD and SDHC cards.
*/
class SdVolume {
public:
/** Create an instance of SdVolume */
SdVolume() : fatType_(0) {}
/** Clear the cache and returns a pointer to the cache. Used by the WaveRP
* recorder to do raw write to the SD card. Not for normal apps.
* \return A pointer to the cache buffer or zero if an error occurs.
*/
cache_t* cacheClear() {
if (!cacheFlush()) return 0;
cacheBlockNumber_ = 0XFFFFFFFF;
return &cacheBuffer_;
}
/** Initialize a FAT volume. Try partition one first then try super
* floppy format.
*
* \param[in] dev The Sd2Card where the volume is located.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure. Reasons for
* failure include not finding a valid partition, not finding a valid
* FAT file system or an I/O error.
*/
bool init(Sd2Card* dev) { return init(dev, 1) ? true : init(dev, 0);}
bool init(Sd2Card* dev, uint8_t part);
// inline functions that return volume info
/** \return The volume's cluster size in blocks. */
uint8_t blocksPerCluster() const {return blocksPerCluster_;}
/** \return The number of blocks in one FAT. */
uint32_t blocksPerFat() const {return blocksPerFat_;}
/** \return The total number of clusters in the volume. */
uint32_t clusterCount() const {return clusterCount_;}
/** \return The shift count required to multiply by blocksPerCluster. */
uint8_t clusterSizeShift() const {return clusterSizeShift_;}
/** \return The logical block number for the start of file data. */
uint32_t dataStartBlock() const {return dataStartBlock_;}
/** \return The number of FAT structures on the volume. */
uint8_t fatCount() const {return fatCount_;}
/** \return The logical block number for the start of the first FAT. */
uint32_t fatStartBlock() const {return fatStartBlock_;}
/** \return The FAT type of the volume. Values are 12, 16 or 32. */
uint8_t fatType() const {return fatType_;}
int32_t freeClusterCount();
/** \return The number of entries in the root directory for FAT16 volumes. */
uint32_t rootDirEntryCount() const {return rootDirEntryCount_;}
/** \return The logical block number for the start of the root directory
on FAT16 volumes or the first cluster number on FAT32 volumes. */
uint32_t rootDirStart() const {return rootDirStart_;}
/** Sd2Card object for this volume
* \return pointer to Sd2Card object.
*/
Sd2Card* sdCard() {return sdCard_;}
/** Debug access to FAT table
*
* \param[in] n cluster number.
* \param[out] v value of entry
* \return true for success or false for failure
*/
bool dbgFat(uint32_t n, uint32_t* v) {return fatGet(n, v);}
//------------------------------------------------------------------------------
private:
// Allow SdBaseFile access to SdVolume private data.
friend class SdBaseFile;
// value for dirty argument in cacheRawBlock to indicate read from cache
static bool const CACHE_FOR_READ = false;
// value for dirty argument in cacheRawBlock to indicate write to cache
static bool const CACHE_FOR_WRITE = true;
#if USE_MULTIPLE_CARDS
cache_t cacheBuffer_; // 512 byte cache for device blocks
uint32_t cacheBlockNumber_; // Logical number of block in the cache
Sd2Card* sdCard_; // Sd2Card object for cache
bool cacheDirty_; // cacheFlush() will write block if true
uint32_t cacheMirrorBlock_; // block number for mirror FAT
#else // USE_MULTIPLE_CARDS
static cache_t cacheBuffer_; // 512 byte cache for device blocks
static uint32_t cacheBlockNumber_; // Logical number of block in the cache
static Sd2Card* sdCard_; // Sd2Card object for cache
static bool cacheDirty_; // cacheFlush() will write block if true
static uint32_t cacheMirrorBlock_; // block number for mirror FAT
#endif // USE_MULTIPLE_CARDS
uint32_t allocSearchStart_; // start cluster for alloc search
uint8_t blocksPerCluster_; // cluster size in blocks
uint32_t blocksPerFat_; // FAT size in blocks
uint32_t clusterCount_; // clusters in one FAT
uint8_t clusterSizeShift_; // shift to convert cluster count to block count
uint32_t dataStartBlock_; // first data block number
uint8_t fatCount_; // number of FATs on volume
uint32_t fatStartBlock_; // start block for first FAT
uint8_t fatType_; // volume type (12, 16, OR 32)
uint16_t rootDirEntryCount_; // number of entries in FAT16 root dir
uint32_t rootDirStart_; // root start block for FAT16, cluster for FAT32
//----------------------------------------------------------------------------
bool allocContiguous(uint32_t count, uint32_t* curCluster);
uint8_t blockOfCluster(uint32_t position) const {
return (position >> 9) & (blocksPerCluster_ - 1);
}
uint32_t clusterStartBlock(uint32_t cluster) const {
return dataStartBlock_ + ((cluster - 2) << clusterSizeShift_);
}
uint32_t blockNumber(uint32_t cluster, uint32_t position) const {
return clusterStartBlock(cluster) + blockOfCluster(position);
}
cache_t* cache() {return &cacheBuffer_;}
uint32_t cacheBlockNumber() {return cacheBlockNumber_;}
#if USE_MULTIPLE_CARDS
bool cacheFlush();
bool cacheRawBlock(uint32_t blockNumber, bool dirty);
#else // USE_MULTIPLE_CARDS
static bool cacheFlush();
static bool cacheRawBlock(uint32_t blockNumber, bool dirty);
#endif // USE_MULTIPLE_CARDS
// used by SdBaseFile write to assign cache to SD location
void cacheSetBlockNumber(uint32_t blockNumber, bool dirty) {
cacheDirty_ = dirty;
cacheBlockNumber_ = blockNumber;
}
void cacheSetDirty() {cacheDirty_ |= CACHE_FOR_WRITE;}
bool chainSize(uint32_t beginCluster, uint32_t* size);
bool fatGet(uint32_t cluster, uint32_t* value);
bool fatPut(uint32_t cluster, uint32_t value);
bool fatPutEOC(uint32_t cluster) {
return fatPut(cluster, 0x0FFFFFFF);
}
bool freeChain(uint32_t cluster);
bool isEOC(uint32_t cluster) const {
if (FAT12_SUPPORT && fatType_ == 12) return cluster >= FAT12EOC_MIN;
if (fatType_ == 16) return cluster >= FAT16EOC_MIN;
return cluster >= FAT32EOC_MIN;
}
bool readBlock(uint32_t block, uint8_t* dst) {
return sdCard_->readBlock(block, dst);
}
bool writeBlock(uint32_t block, const uint8_t* dst) {
return sdCard_->writeBlock(block, dst);
}
//------------------------------------------------------------------------------
// Deprecated functions - suppress cpplint warnings with NOLINT comment
#if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
public:
/** \deprecated Use: bool SdVolume::init(Sd2Card* dev);
* \param[in] dev The SD card where the volume is located.
* \return true for success or false for failure.
*/
bool init(Sd2Card& dev) {return init(&dev);} // NOLINT
/** \deprecated Use: bool SdVolume::init(Sd2Card* dev, uint8_t vol);
* \param[in] dev The SD card where the volume is located.
* \param[in] part The partition to be used.
* \return true for success or false for failure.
*/
bool init(Sd2Card& dev, uint8_t part) { // NOLINT
return init(&dev, part);
}
#endif // ALLOW_DEPRECATED_FUNCTIONS
};
#endif // SdVolume
#endif
+47 -65
View File
@@ -1,9 +1,9 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
* Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* 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
@@ -19,76 +19,58 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once
////////////////////////////
// VENDOR VERSION EXAMPLE //
////////////////////////////
/**
* This file is the standard Marlin version identifier file, all fields can be
* overriden by the ones defined on _Version.h by using the Configuration.h
* directive USE_AUTOMATIC_VERSIONING.
* Marlin release version identifier
*/
#define SHORT_BUILD_VERSION "2.0.5_SX4M"
#if ENABLED(USE_AUTOMATIC_VERSIONING)
/**
* Verbose version identifier which should contain a reference to the location
* from where the binary was downloaded or the source code was compiled.
*/
#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " TM3D"
#include "_Version.h"
/**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release
* version was tagged.
*/
#define STRING_DISTRIBUTION_DATE "2020-04-07"
#else
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
*/
#define MACHINE_NAME "TM3D SX4"
/**
* Marlin release version identifier
*/
#define SHORT_BUILD_VERSION "bugfix-1.1.x"
/**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source
* Code which is installed on the device. In most cases —unless the manufacturer
* has a distinct Github fork— the Source Code URL should just be the main
* Marlin repository.
*/
#define SOURCE_CODE_URL "https://github.com/InsanityAutomation/Marlin/tree/TM_SX4_2.0"
/**
* Verbose version identifier which should contain a reference to the location
* from where the binary was downloaded or the source code was compiled.
*/
#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " (Github)"
/**
* Default generic printer UUID.
*/
//#define DEFAULT_MACHINE_UUID "cede2a2f-41a2-4748-9b12-c55c62f367ff"
/**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release
* version was tagged.
*/
#define STRING_DISTRIBUTION_DATE "2017-05-04 12:00"
/**
* The WEBSITE_URL is the location where users can get more information such as
* documentation about a specific Marlin release.
*/
#define WEBSITE_URL "tinymachines3d.com"
/**
* Required minimum Configuration.h and Configuration_adv.h file versions.
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option on
* the configuration files.
*/
#define REQUIRED_CONFIGURATION_H_VERSION 010100
#define REQUIRED_CONFIGURATION_ADV_H_VERSION 010100
/**
* The protocol for communication to the host. Protocol indicates communication
* standards such as the use of ASCII, "echo:" and "error:" line prefixes, etc.
* (Other behaviors are given by the firmware version and capabilities report.)
*/
#define PROTOCOL_VERSION "1.0"
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
*/
#define MACHINE_NAME "3D Printer"
/**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source
* Code which is installed on the device. In most cases —unless the manufacturer
* has a distinct Github fork— the Source Code URL should just be the main
* Marlin repository.
*/
#define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin"
/**
* Default generic printer UUID.
*/
#define DEFAULT_MACHINE_UUID "cede2a2f-41a2-4748-9b12-c55c62f367ff"
/**
* The WEBSITE_URL is the location where users can get more information such as
* documentation about a specific Marlin release.
*/
#define WEBSITE_URL "http://marlinfw.org"
#endif // USE_AUTOMATIC_VERSIONING
/**
* Set the vendor info the serial USB interface, if changable
* Currently only supported by DUE platform
*/
//#define USB_DEVICE_VENDOR_ID 0x0000
//#define USB_DEVICE_PRODUCT_ID 0x0000
//#define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL
+93
View File
@@ -0,0 +1,93 @@
/**
* 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
*/
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500
#define CUSTOM_BOOTSCREEN_BMPWIDTH 128
#define CUSTOM_BOOTSCREEN_INVERTED
const unsigned char custom_start_bmp[] PROGMEM = {
B11111101,B01010101,B01010101,B01010101,B01010101,B01010101,B01011111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111110,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111101,B00000000,B00000000,B00000111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111110,B00000111,B11000000,B00000101,B01010101,B01010101,B01010101,B01010101,B01010101,B01011111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111100,B00001010,B00100000,B00000110,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111110,B00010100,B00010000,B00000101,B00000000,B00000000,B00000111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111100,B00101000,B00001000,B00000110,B00000111,B11000000,B00000101,B01010101,B01010101,B01010101,B01010101,B01010101,B01011111,B11111111,B11111111,B11111111,
B11111110,B01010100,B00000100,B00000100,B00001010,B00100000,B00000110,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111111,B11111111,
B11111100,B01100000,B00000100,B00000110,B00010100,B00010000,B00000101,B00000000,B00000000,B00000111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111110,B01010000,B00000100,B00000100,B00101000,B00001000,B00000110,B00000111,B11000000,B00000101,B01010101,B01010101,B01010101,B01010101,B01010101,B01011111,
B11111100,B01100000,B00000100,B00000110,B01010100,B00000100,B00000100,B00001010,B00100000,B00000110,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,
B11111110,B01010100,B00000100,B00011100,B01100000,B00000100,B00000110,B00010100,B00010000,B00000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00011111,
B11111100,B00101000,B00001000,B00101110,B01010000,B00000100,B00000100,B00101000,B00001000,B00000110,B00000111,B11000000,B00000000,B00000001,B11110000,B00111111,
B11111110,B00010100,B00010000,B01010100,B01100000,B00000100,B00000110,B01010100,B00000100,B00000100,B00001010,B00100000,B00000000,B00000010,B00001000,B00011111,
B11111100,B00001010,B00100000,B01100110,B01010100,B00000100,B00011100,B01100000,B00000100,B00000110,B00010100,B00010000,B00000000,B00000101,B00000100,B00111111,
B11111110,B00000111,B11000000,B01010100,B00101000,B00001000,B00101110,B01010000,B00000100,B00000100,B00101000,B00001000,B00000000,B00001010,B00000010,B00011111,
B11111100,B00000000,B00000000,B00101110,B00010100,B00010000,B01010100,B01100000,B00000100,B00000110,B01010100,B00000100,B00000000,B00010101,B00000001,B00111111,
B11111110,B00000000,B00000000,B00011100,B00001010,B00100000,B01100110,B01010100,B00000100,B00011100,B01100000,B00000100,B00000000,B00011000,B00000001,B00011111,
B11111100,B00000000,B00000000,B00000110,B00000111,B11000000,B01010100,B00101000,B00001000,B00101110,B01010000,B00000100,B00000000,B00010100,B00000001,B00111111,
B11111110,B00000000,B00000000,B00000100,B00000000,B00000000,B00101110,B00010100,B00010000,B01010100,B01100000,B00000100,B00000000,B00011000,B00000001,B00011111,
B11111100,B11111111,B11111111,B11111110,B00000000,B00000000,B00011100,B00001010,B00100000,B01100110,B01010100,B00000100,B00011100,B00010101,B00000001,B00111111,
B11111110,B11010101,B01010101,B01010100,B00000000,B00000000,B00000110,B00000111,B11000000,B01010100,B00101000,B00001000,B00101010,B00001010,B00000010,B00011111,
B11111100,B10000100,B00010000,B01000110,B00000000,B00000000,B00000100,B00000000,B00000000,B00101110,B00010100,B00010000,B01010001,B00000101,B00000100,B00111111,
B11111110,B11000100,B00010000,B01000100,B11111111,B11111111,B11111110,B00000000,B00000000,B00011100,B00001010,B00100000,B01100001,B00000010,B10001000,B00011111,
B11111100,B10000100,B00010000,B01000110,B11010101,B01010101,B01010100,B00000000,B00000000,B00000110,B00000111,B11000000,B01010001,B00000001,B11110000,B00111111,
B11111110,B10000100,B00010000,B01000100,B10000100,B00010000,B01000110,B00000000,B00000000,B00000100,B00000000,B00000000,B00101010,B00000000,B00000000,B00011111,
B11111100,B11000100,B00010000,B01000110,B11000100,B00010000,B01000100,B11111111,B11111111,B11111110,B00000000,B00000000,B00011100,B00000000,B00000000,B00111111,
B11111110,B10000100,B00010000,B01000100,B10000100,B00010000,B01000110,B11010101,B01010101,B01010100,B00000000,B00000000,B00000000,B00000000,B00000000,B00011111,
B11111100,B11010101,B01010101,B01010110,B10000100,B00010000,B01000100,B10000100,B00010000,B01000110,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,
B11111100,B11111111,B11111111,B11111100,B11000100,B00010000,B01000110,B11000100,B00010000,B01000100,B11111111,B11111111,B11111111,B11111111,B11111111,B10011111,
B11111110,B00000000,B00000000,B00000110,B10000100,B00010000,B01000100,B10000100,B00010000,B01000110,B11010101,B01010101,B01010101,B01010101,B01010101,B10111111,
B11111101,B01010101,B01010101,B01010100,B11010101,B01010101,B01010110,B10000100,B00010000,B01000100,B10000100,B00010000,B01000001,B00000100,B00010000,B10011111,
B11111111,B11111111,B11111111,B11111100,B11111111,B11111111,B11111100,B11000100,B00010000,B01000110,B11000100,B00010000,B01000001,B00000100,B00010001,B10111111,
B11111111,B11111111,B11111111,B11111110,B00000000,B00000000,B00000110,B10000100,B00010000,B01000100,B10000100,B00010000,B01000001,B00000100,B00010000,B10011111,
B11111111,B11111111,B11111111,B11111101,B01010101,B01010101,B01010100,B11010101,B01010101,B01010110,B10000100,B00010000,B01000001,B00000100,B00010000,B10011111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B11111111,B11111111,B11111100,B11000100,B00010000,B01000001,B00000100,B00010001,B10111111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B00000000,B00000000,B00000110,B10000100,B00010000,B01000001,B00000100,B00010000,B10011111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111101,B01010101,B01010101,B01010100,B11010101,B01010101,B01010101,B01010101,B01010101,B10111111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B11111111,B11111111,B11111111,B11111111,B11111111,B10011111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111110,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111101,B01010101,B01010101,B01010101,B01010101,B01010101,B01011111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
B11100000,B00101110,B11111011,B01111101,B11111011,B11111011,B11001111,B11000001,B11011111,B10111011,B00111110,B11000000,B11100001,B11111110,B00111100,B00011111,
B11111101,B11101110,B01111011,B00111001,B11111001,B11110011,B11001111,B10011110,B11011111,B10111011,B00111110,B11011111,B11011110,B11111100,B11011101,B11100111,
B11111101,B11101110,B00111011,B10111011,B11111001,B11101011,B11010111,B10111111,B01011111,B10111011,B01011110,B11011111,B11011110,B11111101,B11101101,B11110111,
B11111101,B11101110,B10111011,B11010011,B11111010,B11101011,B10110111,B00111111,B11011111,B10111011,B01001110,B11011111,B11011111,B11111111,B11001101,B11110011,
B11111101,B11101110,B11011011,B11000111,B11111010,B11101011,B10111011,B01111111,B11000000,B00111011,B01101110,B11000000,B11100011,B11111111,B00011101,B11110011,
B11111101,B11101110,B11001011,B11101111,B11111010,B11011011,B10111011,B01111111,B11011111,B10111011,B01100110,B11011111,B11111000,B11111111,B11001101,B11110011,
B11111101,B11101110,B11101011,B11101111,B11111011,B01011011,B00000011,B00111111,B01011111,B10111011,B01110110,B11011111,B11111110,B01111111,B11101101,B11110011,
B11111101,B11101110,B11110011,B11101111,B11111011,B01011011,B01111001,B10111110,B11011111,B10111011,B01111010,B11011111,B11011110,B01111101,B11101101,B11110111,
B11111101,B11101110,B11110011,B11101111,B11111011,B10111010,B11111101,B10011110,B11011111,B10111011,B01111100,B11011111,B11011110,B11111101,B11001101,B11100111,
B11111101,B11101110,B11111011,B11101111,B11111011,B10111010,B11111101,B11000001,B11011111,B10111011,B01111110,B11000000,B11100000,B11111110,B00011100,B00011111
};
+74
View File
@@ -0,0 +1,74 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Custom Status Screen bitmap
*
* Place this file in the root with your configuration files
* and enable CUSTOM_STATUS_SCREEN_IMAGE in Configuration.h.
*
* Use the Marlin Bitmap Converter to make your own:
* http://marlinfw.org/tools/u8glib/converter.html
*/
//
// Status Screen Logo bitmap
//
#define STATUS_LOGO_Y 3
#define STATUS_LOGO_WIDTH 24
const unsigned char status_logo_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,
B10000000,B00000000,B00000001,
B10001110,B00000000,B11100001,
B10011111,B00000001,B11110001,
B10010011,B10000001,B00111001,
B10011111,B10000001,B11111001,
B10011111,B10000001,B11111001,
B10011111,B10111001,B11111001,
B10001111,B00101000,B11110001,
B10000000,B00111000,B00000001,
B10000000,B00000000,B00000001,
B10011111,B11111111,B11111001,
B10010001,B01110100,B10011001,
B10011011,B00000110,B10101001,
B10011011,B01010100,B10101001,
B10011011,B01010110,B10101001,
B10011011,B01010100,B10011001,
B10011111,B11111111,B11111001,
B11111111,B11111111,B11111111
};
//
// Use default bitmaps
//
#define STATUS_HOTEND_ANIM
#define STATUS_BED_ANIM
#if HOTENDS < 2
#define STATUS_LOGO_X 8
#define STATUS_HEATERS_X 40
#define STATUS_BED_X 72
#else
#define STATUS_LOGO_X 0
#define STATUS_HEATERS_X 32
#define STATUS_BED_X 80
#endif
-101
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
-146
View File
@@ -1,146 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef __BUZZER_H__
#define __BUZZER_H__
#include "types.h"
#include "fastio.h"
#include "circularqueue.h"
#include "temperature.h"
#include "MarlinConfig.h"
#define TONE_QUEUE_LENGTH 4
/**
* @brief Tone structure
* @details Simple abstraction of a tone based on a duration and a frequency.
*/
struct tone_t {
uint16_t duration;
uint16_t frequency;
};
/**
* @brief Buzzer class
*/
class Buzzer {
private:
struct state_t {
tone_t tone;
uint32_t endtime;
} state;
protected:
CircularQueue<tone_t, TONE_QUEUE_LENGTH> buffer;
/**
* @brief Inverts the sate of a digital PIN
* @details This will invert the current state of an digital IO pin.
*/
void invert() {
TOGGLE(BEEPER_PIN);
}
/**
* @brief Turn off a digital PIN
* @details Alias of digitalWrite(PIN, LOW) using FastIO
*/
void off() {
WRITE(BEEPER_PIN, LOW);
}
/**
* @brief Turn on a digital PIN
* @details Alias of digitalWrite(PIN, HIGH) using FastIO
*/
void on() {
WRITE(BEEPER_PIN, HIGH);
}
/**
* @brief Resets the state of the class
* @details Brings the class state to a known one.
*/
void reset() {
this->off();
this->state.endtime = 0;
}
public:
/**
* @brief Class constructor
*/
Buzzer() {
SET_OUTPUT(BEEPER_PIN);
this->reset();
}
/**
* @brief Add a tone to the queue
* @details Adds a tone_t structure to the ring buffer, will block IO if the
* queue is full waiting for one slot to get available.
*
* @param duration Duration of the tone in milliseconds
* @param frequency Frequency of the tone in hertz
*/
void tone(uint16_t const &duration, uint16_t const &frequency = 0) {
while (buffer.isFull()) {
this->tick();
thermalManager.manage_heater();
}
tone_t tone = { duration, frequency };
this->buffer.enqueue(tone);
}
/**
* @brief Loop function
* @details This function should be called at loop, it will take care of
* playing the tones in the queue.
*/
virtual void tick() {
const millis_t now = millis();
if (!this->state.endtime) {
if (this->buffer.isEmpty()) return;
this->state.tone = this->buffer.dequeue();
this->state.endtime = now + this->state.tone.duration;
if (this->state.tone.frequency > 0) {
#if ENABLED(SPEAKER)
CRITICAL_SECTION_START;
::tone(BEEPER_PIN, this->state.tone.frequency, this->state.tone.duration);
CRITICAL_SECTION_END;
#else
this->on();
#endif
}
}
else if (ELAPSED(now, this->state.endtime)) this->reset();
}
};
extern Buzzer buzzer;
#endif
-885
View File
@@ -1,885 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "cardreader.h"
#include "ultralcd.h"
#include "stepper.h"
#include "language.h"
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#define LONGEST_FILENAME (longFilename[0] ? longFilename : filename)
CardReader::CardReader() {
#if ENABLED(SDCARD_SORT_ALPHA)
sort_count = 0;
#if ENABLED(SDSORT_GCODE)
sort_alpha = true;
sort_folders = FOLDER_SORTING;
//sort_reverse = false;
#endif
#endif
sdprinting = cardOK = saving = logging = false;
filesize = 0;
sdpos = 0;
workDirDepth = 0;
file_subcall_ctr = 0;
ZERO(workDirParents);
autostart_stilltocheck = true; //the SD start is delayed, because otherwise the serial cannot answer fast enough to make contact with the host software.
autostart_index = 0;
//power to SD reader
#if SDPOWER > -1
OUT_WRITE(SDPOWER, HIGH);
#endif // SDPOWER
next_autostart_ms = millis() + 5000;
}
char *createFilename(char *buffer, const dir_t &p) { //buffer > 12characters
char *pos = buffer;
for (uint8_t i = 0; i < 11; i++) {
if (p.name[i] == ' ') continue;
if (i == 8) *pos++ = '.';
*pos++ = p.name[i];
}
*pos++ = 0;
return buffer;
}
/**
* Dive into a folder and recurse depth-first to perform a pre-set operation lsAction:
* LS_Count - Add +1 to nrFiles for every file within the parent
* LS_GetFilename - Get the filename of the file indexed by nrFiles
* LS_SerialPrint - Print the full path and size of each file to serial output
*/
void CardReader::lsDive(const char *prepend, SdFile parent, const char * const match/*=NULL*/) {
dir_t p;
uint8_t cnt = 0;
// Read the next entry from a directory
while (parent.readDir(p, longFilename) > 0) {
// If the entry is a directory and the action is LS_SerialPrint
if (DIR_IS_SUBDIR(&p) && lsAction != LS_Count && lsAction != LS_GetFilename) {
// Get the short name for the item, which we know is a folder
char lfilename[FILENAME_LENGTH];
createFilename(lfilename, p);
// Allocate enough stack space for the full path to a folder, trailing slash, and nul
bool prepend_is_empty = (prepend[0] == '\0');
int len = (prepend_is_empty ? 1 : strlen(prepend)) + strlen(lfilename) + 1 + 1;
char path[len];
// Append the FOLDERNAME12/ to the passed string.
// It contains the full path to the "parent" argument.
// We now have the full path to the item in this folder.
strcpy(path, prepend_is_empty ? "/" : prepend); // root slash if prepend is empty
strcat(path, lfilename); // FILENAME_LENGTH-1 characters maximum
strcat(path, "/"); // 1 character
// Serial.print(path);
// Get a new directory object using the full path
// and dive recursively into it.
SdFile dir;
if (!dir.open(parent, lfilename, O_READ)) {
if (lsAction == LS_SerialPrint) {
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_SD_CANT_OPEN_SUBDIR);
SERIAL_ECHOLN(lfilename);
}
}
lsDive(path, dir);
// close() is done automatically by destructor of SdFile
}
else {
uint8_t pn0 = p.name[0];
if (pn0 == DIR_NAME_FREE) break;
if (pn0 == DIR_NAME_DELETED || pn0 == '.') continue;
if (longFilename[0] == '.') continue;
if (!DIR_IS_FILE_OR_SUBDIR(&p) || (p.attributes & DIR_ATT_HIDDEN)) continue;
filenameIsDir = DIR_IS_SUBDIR(&p);
if (!filenameIsDir && (p.name[8] != 'G' || p.name[9] == '~')) continue;
switch (lsAction) {
case LS_Count:
nrFiles++;
break;
case LS_SerialPrint:
createFilename(filename, p);
SERIAL_PROTOCOL(prepend);
SERIAL_PROTOCOL(filename);
SERIAL_PROTOCOLCHAR(' ');
SERIAL_PROTOCOLLN(p.fileSize);
break;
case LS_GetFilename:
createFilename(filename, p);
if (match != NULL) {
if (strcasecmp(match, filename) == 0) return;
}
else if (cnt == nrFiles) return;
cnt++;
break;
}
}
} // while readDir
}
void CardReader::ls() {
lsAction = LS_SerialPrint;
root.rewind();
lsDive("", root);
}
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)
/**
* Get a long pretty path based on a DOS 8.3 path
*/
void CardReader::printLongPath(char *path) {
lsAction = LS_GetFilename;
int i, pathLen = strlen(path);
// SERIAL_ECHOPGM("Full Path: "); SERIAL_ECHOLN(path);
// Zero out slashes to make segments
for (i = 0; i < pathLen; i++) if (path[i] == '/') path[i] = '\0';
SdFile diveDir = root; // start from the root for segment 1
for (i = 0; i < pathLen;) {
if (path[i] == '\0') i++; // move past a single nul
char *segment = &path[i]; // The segment after most slashes
// If a segment is empty (extra-slash) then exit
if (!*segment) break;
// Go to the next segment
while (path[++i]) { }
// SERIAL_ECHOPGM("Looking for segment: "); SERIAL_ECHOLN(segment);
// Find the item, setting the long filename
diveDir.rewind();
lsDive("", diveDir, segment);
// Print /LongNamePart to serial output
SERIAL_PROTOCOLCHAR('/');
SERIAL_PROTOCOL(longFilename[0] ? longFilename : "???");
// If the filename was printed then that's it
if (!filenameIsDir) break;
// SERIAL_ECHOPGM("Opening dir: "); SERIAL_ECHOLN(segment);
// Open the sub-item as the new dive parent
SdFile dir;
if (!dir.open(diveDir, segment, O_READ)) {
SERIAL_EOL;
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_SD_CANT_OPEN_SUBDIR);
SERIAL_ECHO(segment);
break;
}
diveDir.close();
diveDir = dir;
} // while i<pathLen
SERIAL_EOL;
}
#endif // LONG_FILENAME_HOST_SUPPORT
void CardReader::initsd() {
cardOK = false;
if (root.isOpen()) root.close();
#ifndef SPI_SPEED
#define SPI_SPEED SPI_FULL_SPEED
#endif
if (!card.init(SPI_SPEED, SDSS)
#if defined(LCD_SDSS) && (LCD_SDSS != SDSS)
&& !card.init(SPI_SPEED, LCD_SDSS)
#endif
) {
//if (!card.init(SPI_HALF_SPEED,SDSS))
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_SD_INIT_FAIL);
}
else if (!volume.init(&card)) {
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_VOL_INIT_FAIL);
}
else if (!root.openRoot(&volume)) {
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_OPENROOT_FAIL);
}
else {
cardOK = true;
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_SD_CARD_OK);
}
workDir = root;
curDir = &root;
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
/**
if (!workDir.openRoot(&volume)) {
SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
}
*/
}
void CardReader::setroot() {
/*if (!workDir.openRoot(&volume)) {
SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
}*/
workDir = root;
curDir = &workDir;
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
}
void CardReader::release() {
sdprinting = false;
cardOK = false;
}
void CardReader::openAndPrintFile(const char *name) {
char cmd[4 + strlen(name) + 1]; // Room for "M23 ", filename, and null
sprintf_P(cmd, PSTR("M23 %s"), name);
for (char *c = &cmd[4]; *c; c++) *c = tolower(*c);
enqueue_and_echo_command(cmd);
enqueue_and_echo_commands_P(PSTR("M24"));
}
void CardReader::startFileprint() {
if (cardOK) {
sdprinting = true;
#if ENABLED(SDCARD_SORT_ALPHA)
flush_presort();
#endif
}
}
void CardReader::stopSDPrint() {
sdprinting = false;
if (isFileOpen()) file.close();
}
void CardReader::openLogFile(char* name) {
logging = true;
openFile(name, false);
}
void CardReader::getAbsFilename(char *t) {
uint8_t cnt = 0;
*t = '/'; t++; cnt++;
for (uint8_t i = 0; i < workDirDepth; i++) {
workDirParents[i].getFilename(t); //SDBaseFile.getfilename!
while (*t && cnt < MAXPATHNAMELENGTH) { t++; cnt++; } //crawl counter forward.
}
if (cnt < MAXPATHNAMELENGTH - (FILENAME_LENGTH))
file.getFilename(t);
else
t[0] = 0;
}
void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
if (!cardOK) return;
uint8_t doing = 0;
if (isFileOpen()) { //replacing current file by new file, or subfile call
if (push_current) {
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
SERIAL_ERROR_START;
SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
SERIAL_ERRORLN(SD_PROCEDURE_DEPTH);
kill(PSTR(MSG_KILLED));
return;
}
// Store current filename and position
getAbsFilename(proc_filenames[file_subcall_ctr]);
SERIAL_ECHO_START;
SERIAL_ECHOPAIR("SUBROUTINE CALL target:\"", name);
SERIAL_ECHOPAIR("\" parent:\"", proc_filenames[file_subcall_ctr]);
SERIAL_ECHOLNPAIR("\" pos", sdpos);
filespos[file_subcall_ctr] = sdpos;
file_subcall_ctr++;
}
else {
doing = 1;
}
}
else { // Opening fresh file
doing = 2;
file_subcall_ctr = 0; // Reset procedure depth in case user cancels print while in procedure
}
if (doing) {
SERIAL_ECHO_START;
SERIAL_ECHOPGM("Now ");
SERIAL_ECHO(doing == 1 ? "doing" : "fresh");
SERIAL_ECHOLNPAIR(" file: ", name);
}
stopSDPrint();
SdFile myDir;
curDir = &root;
char *fname = name;
char *dirname_start, *dirname_end;
if (name[0] == '/') {
dirname_start = &name[1];
while (dirname_start != NULL) {
dirname_end = strchr(dirname_start, '/');
//SERIAL_ECHOPGM("start:");SERIAL_ECHOLN((int)(dirname_start - name));
//SERIAL_ECHOPGM("end :");SERIAL_ECHOLN((int)(dirname_end - name));
if (dirname_end != NULL && dirname_end > dirname_start) {
char subdirname[FILENAME_LENGTH];
strncpy(subdirname, dirname_start, dirname_end - dirname_start);
subdirname[dirname_end - dirname_start] = 0;
SERIAL_ECHOLN(subdirname);
if (!myDir.open(curDir, subdirname, O_READ)) {
SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(subdirname);
SERIAL_PROTOCOLCHAR('.');
return;
}
else {
//SERIAL_ECHOLNPGM("dive ok");
}
curDir = &myDir;
dirname_start = dirname_end + 1;
}
else { // the remainder after all /fsa/fdsa/ is the filename
fname = dirname_start;
//SERIAL_ECHOLNPGM("remainder");
//SERIAL_ECHOLN(fname);
break;
}
}
}
else { //relative path
curDir = &workDir;
}
if (read) {
if (file.open(curDir, fname, O_READ)) {
filesize = file.fileSize();
SERIAL_PROTOCOLPAIR(MSG_SD_FILE_OPENED, fname);
SERIAL_PROTOCOLLNPAIR(MSG_SD_SIZE, filesize);
sdpos = 0;
SERIAL_PROTOCOLLNPGM(MSG_SD_FILE_SELECTED);
getfilename(0, fname);
lcd_setstatus(longFilename[0] ? longFilename : fname);
}
else {
SERIAL_PROTOCOLPAIR(MSG_SD_OPEN_FILE_FAIL, fname);
SERIAL_PROTOCOLCHAR('.');
SERIAL_EOL;
}
}
else { //write
if (!file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC)) {
SERIAL_PROTOCOLPAIR(MSG_SD_OPEN_FILE_FAIL, fname);
SERIAL_PROTOCOLCHAR('.');
SERIAL_EOL;
}
else {
saving = true;
SERIAL_PROTOCOLLNPAIR(MSG_SD_WRITE_TO_FILE, name);
lcd_setstatus(fname);
}
}
}
void CardReader::removeFile(char* name) {
if (!cardOK) return;
stopSDPrint();
SdFile myDir;
curDir = &root;
char *fname = name;
char *dirname_start, *dirname_end;
if (name[0] == '/') {
dirname_start = strchr(name, '/') + 1;
while (dirname_start != NULL) {
dirname_end = strchr(dirname_start, '/');
//SERIAL_ECHOPGM("start:");SERIAL_ECHOLN((int)(dirname_start - name));
//SERIAL_ECHOPGM("end :");SERIAL_ECHOLN((int)(dirname_end - name));
if (dirname_end != NULL && dirname_end > dirname_start) {
char subdirname[FILENAME_LENGTH];
strncpy(subdirname, dirname_start, dirname_end - dirname_start);
subdirname[dirname_end - dirname_start] = 0;
SERIAL_ECHOLN(subdirname);
if (!myDir.open(curDir, subdirname, O_READ)) {
SERIAL_PROTOCOLPAIR("open failed, File: ", subdirname);
SERIAL_PROTOCOLCHAR('.');
SERIAL_EOL;
return;
}
else {
//SERIAL_ECHOLNPGM("dive ok");
}
curDir = &myDir;
dirname_start = dirname_end + 1;
}
else { // the remainder after all /fsa/fdsa/ is the filename
fname = dirname_start;
//SERIAL_ECHOLNPGM("remainder");
//SERIAL_ECHOLN(fname);
break;
}
}
}
else { // relative path
curDir = &workDir;
}
if (file.remove(curDir, fname)) {
SERIAL_PROTOCOLPGM("File deleted:");
SERIAL_PROTOCOLLN(fname);
sdpos = 0;
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
}
else {
SERIAL_PROTOCOLPGM("Deletion failed, File: ");
SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLCHAR('.');
}
}
void CardReader::getStatus() {
if (cardOK) {
SERIAL_PROTOCOLPGM(MSG_SD_PRINTING_BYTE);
SERIAL_PROTOCOL(sdpos);
SERIAL_PROTOCOLCHAR('/');
SERIAL_PROTOCOLLN(filesize);
}
else {
SERIAL_PROTOCOLLNPGM(MSG_SD_NOT_PRINTING);
}
}
void CardReader::write_command(char *buf) {
char* begin = buf;
char* npos = 0;
char* end = buf + strlen(buf) - 1;
file.writeError = false;
if ((npos = strchr(buf, 'N')) != NULL) {
begin = strchr(npos, ' ') + 1;
end = strchr(npos, '*') - 1;
}
end[1] = '\r';
end[2] = '\n';
end[3] = '\0';
file.write(begin);
if (file.writeError) {
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_ERR_WRITE_TO_FILE);
}
}
void CardReader::checkautostart(bool force) {
if (!force && (!autostart_stilltocheck || ELAPSED(millis(), next_autostart_ms)))
return;
autostart_stilltocheck = false;
if (!cardOK) {
initsd();
if (!cardOK) return; // fail
}
char autoname[10];
sprintf_P(autoname, PSTR("auto%i.g"), autostart_index);
for (int8_t i = 0; i < (int8_t)strlen(autoname); i++) autoname[i] = tolower(autoname[i]);
dir_t p;
root.rewind();
bool found = false;
while (root.readDir(p, NULL) > 0) {
for (int8_t i = (int8_t)strlen((char*)p.name); i--;) p.name[i] = tolower(p.name[i]);
if (p.name[9] != '~' && strncmp((char*)p.name, autoname, 5) == 0) {
openAndPrintFile(autoname);
found = true;
}
}
if (!found)
autostart_index = -1;
else
autostart_index++;
}
void CardReader::closefile(bool store_location) {
file.sync();
file.close();
saving = logging = false;
if (store_location) {
//future: store printer state, filename and position for continuing a stopped print
// so one can unplug the printer and continue printing the next day.
}
}
/**
* Get the name of a file in the current directory by index
*/
void CardReader::getfilename(uint16_t nr, const char * const match/*=NULL*/) {
#if ENABLED(SDSORT_CACHE_NAMES)
if (match != NULL) {
while (nr < sort_count) {
if (strcasecmp(match, sortshort[nr]) == 0) break;
nr++;
}
}
if (nr < sort_count) {
strcpy(filename, sortshort[nr]);
strcpy(longFilename, sortnames[nr]);
filenameIsDir = TEST(isDir[nr>>3], nr & 0x07);
return;
}
#endif // SDSORT_CACHE_NAMES
curDir = &workDir;
lsAction = LS_GetFilename;
nrFiles = nr;
curDir->rewind();
lsDive("", *curDir, match);
}
uint16_t CardReader::getnrfilenames() {
curDir = &workDir;
lsAction = LS_Count;
nrFiles = 0;
curDir->rewind();
lsDive("", *curDir);
//SERIAL_ECHOLN(nrFiles);
return nrFiles;
}
void CardReader::chdir(const char * relpath) {
SdFile newfile;
SdFile *parent = &root;
if (workDir.isOpen()) parent = &workDir;
if (!newfile.open(*parent, relpath, O_READ)) {
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_SD_CANT_ENTER_SUBDIR);
SERIAL_ECHOLN(relpath);
}
else {
if (workDirDepth < MAX_DIR_DEPTH)
workDirParents[workDirDepth++] = *parent;
workDir = newfile;
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
}
}
void CardReader::updir() {
if (workDirDepth > 0) {
workDir = workDirParents[--workDirDepth];
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
}
}
#if ENABLED(SDCARD_SORT_ALPHA)
/**
* Get the name of a file in the current directory by sort-index
*/
void CardReader::getfilename_sorted(const uint16_t nr) {
getfilename(
#if ENABLED(SDSORT_GCODE)
sort_alpha &&
#endif
(nr < sort_count) ? sort_order[nr] : nr
);
}
/**
* Read all the files and produce a sort key
*
* We can do this in 3 ways...
* - Minimal RAM: Read two filenames at a time sorting along...
* - Some RAM: Buffer the directory just for this sort
* - Most RAM: Buffer the directory and return filenames from RAM
*/
void CardReader::presort() {
// Sorting may be turned off
#if ENABLED(SDSORT_GCODE)
if (!sort_alpha) return;
#endif
// Throw away old sort index
flush_presort();
// If there are files, sort up to the limit
uint16_t fileCnt = getnrfilenames();
if (fileCnt > 0) {
// Never sort more than the max allowed
// If you use folders to organize, 20 may be enough
if (fileCnt > SDSORT_LIMIT) fileCnt = SDSORT_LIMIT;
// Sort order is always needed. May be static or dynamic.
#if ENABLED(SDSORT_DYNAMIC_RAM)
sort_order = new uint8_t[fileCnt];
#endif
// Use RAM to store the entire directory during pre-sort.
// SDSORT_LIMIT should be set to prevent over-allocation.
#if ENABLED(SDSORT_USES_RAM)
// If using dynamic ram for names, allocate on the heap.
#if ENABLED(SDSORT_CACHE_NAMES)
#if ENABLED(SDSORT_DYNAMIC_RAM)
sortshort = new char*[fileCnt];
sortnames = new char*[fileCnt];
#endif
#elif ENABLED(SDSORT_USES_STACK)
char sortnames[fileCnt][LONG_FILENAME_LENGTH];
#endif
// Folder sorting needs 1 bit per entry for flags.
#if HAS_FOLDER_SORTING
#if ENABLED(SDSORT_DYNAMIC_RAM)
isDir = new uint8_t[(fileCnt + 7) >> 3];
#elif ENABLED(SDSORT_USES_STACK)
uint8_t isDir[(fileCnt + 7) >> 3];
#endif
#endif
#else // !SDSORT_USES_RAM
// By default re-read the names from SD for every compare
// retaining only two filenames at a time. This is very
// slow but is safest and uses minimal RAM.
char name1[LONG_FILENAME_LENGTH + 1];
#endif
if (fileCnt > 1) {
// Init sort order.
for (uint16_t i = 0; i < fileCnt; i++) {
sort_order[i] = i;
// If using RAM then read all filenames now.
#if ENABLED(SDSORT_USES_RAM)
getfilename(i);
#if ENABLED(SDSORT_DYNAMIC_RAM)
// Use dynamic method to copy long filename
sortnames[i] = strdup(LONGEST_FILENAME);
#if ENABLED(SDSORT_CACHE_NAMES)
// When caching also store the short name, since
// we're replacing the getfilename() behavior.
sortshort[i] = strdup(filename);
#endif
#else
// Copy filenames into the static array
strcpy(sortnames[i], LONGEST_FILENAME);
#if ENABLED(SDSORT_CACHE_NAMES)
strcpy(sortshort[i], filename);
#endif
#endif
// char out[30];
// sprintf_P(out, PSTR("---- %i %s %s"), i, filenameIsDir ? "D" : " ", sortnames[i]);
// SERIAL_ECHOLN(out);
#if HAS_FOLDER_SORTING
const uint16_t bit = i & 0x07, ind = i >> 3;
if (bit == 0) isDir[ind] = 0x00;
if (filenameIsDir) isDir[ind] |= _BV(bit);
#endif
#endif
}
// Bubble Sort
for (uint16_t i = fileCnt; --i;) {
bool didSwap = false;
for (uint16_t j = 0; j < i; ++j) {
const uint16_t o1 = sort_order[j], o2 = sort_order[j + 1];
// Compare names from the array or just the two buffered names
#if ENABLED(SDSORT_USES_RAM)
#define _SORT_CMP_NODIR() (strcasecmp(sortnames[o1], sortnames[o2]) > 0)
#else
#define _SORT_CMP_NODIR() (strcasecmp(name1, name2) > 0)
#endif
#if HAS_FOLDER_SORTING
#if ENABLED(SDSORT_USES_RAM)
// Folder sorting needs an index and bit to test for folder-ness.
const uint8_t ind1 = o1 >> 3, bit1 = o1 & 0x07,
ind2 = o2 >> 3, bit2 = o2 & 0x07;
#define _SORT_CMP_DIR(fs) \
(((isDir[ind1] & _BV(bit1)) != 0) == ((isDir[ind2] & _BV(bit2)) != 0) \
? _SORT_CMP_NODIR() \
: (isDir[fs > 0 ? ind1 : ind2] & (fs > 0 ? _BV(bit1) : _BV(bit2))) != 0)
#else
#define _SORT_CMP_DIR(fs) ((dir1 == filenameIsDir) ? _SORT_CMP_NODIR() : (fs > 0 ? dir1 : !dir1))
#endif
#endif
// The most economical method reads names as-needed
// throughout the loop. Slow if there are many.
#if DISABLED(SDSORT_USES_RAM)
getfilename(o1);
strcpy(name1, LONGEST_FILENAME); // save (or getfilename below will trounce it)
#if HAS_FOLDER_SORTING
bool dir1 = filenameIsDir;
#endif
getfilename(o2);
char *name2 = LONGEST_FILENAME; // use the string in-place
#endif // !SDSORT_USES_RAM
// Sort the current pair according to settings.
if (
#if HAS_FOLDER_SORTING
#if ENABLED(SDSORT_GCODE)
sort_folders ? _SORT_CMP_DIR(sort_folders) : _SORT_CMP_NODIR()
#else
_SORT_CMP_DIR(FOLDER_SORTING)
#endif
#else
_SORT_CMP_NODIR()
#endif
) {
sort_order[j] = o2;
sort_order[j + 1] = o1;
didSwap = true;
}
}
if (!didSwap) break;
}
// Using RAM but not keeping names around
#if ENABLED(SDSORT_USES_RAM) && DISABLED(SDSORT_CACHE_NAMES)
#if ENABLED(SDSORT_DYNAMIC_RAM)
for (uint16_t i = 0; i < fileCnt; ++i) free(sortnames[i]);
#if HAS_FOLDER_SORTING
free(isDir);
#endif
#endif
#endif
}
else {
sort_order[0] = 0;
#if ENABLED(SDSORT_USES_RAM) && ENABLED(SDSORT_CACHE_NAMES)
getfilename(0);
#if ENABLED(SDSORT_DYNAMIC_RAM)
sortnames = new char*[1];
sortnames[0] = strdup(LONGEST_FILENAME); // malloc
sortshort = new char*[1];
sortshort[0] = strdup(filename); // malloc
isDir = new uint8_t[1];
#else
strcpy(sortnames[0], LONGEST_FILENAME);
strcpy(sortshort[0], filename);
#endif
isDir[0] = filenameIsDir ? 0x01 : 0x00;
#endif
}
sort_count = fileCnt;
}
}
void CardReader::flush_presort() {
if (sort_count > 0) {
#if ENABLED(SDSORT_DYNAMIC_RAM)
delete sort_order;
#if ENABLED(SDSORT_CACHE_NAMES)
for (uint8_t i = 0; i < sort_count; ++i) {
free(sortshort[i]); // strdup
free(sortnames[i]); // strdup
}
delete sortshort;
delete sortnames;
#endif
#endif
sort_count = 0;
}
}
#endif // SDCARD_SORT_ALPHA
void CardReader::printingHasFinished() {
stepper.synchronize();
file.close();
if (file_subcall_ctr > 0) { // Heading up to a parent file that called current as a procedure.
file_subcall_ctr--;
openFile(proc_filenames[file_subcall_ctr], true, true);
setIndex(filespos[file_subcall_ctr]);
startFileprint();
}
else {
sdprinting = false;
if (SD_FINISHED_STEPPERRELEASE)
enqueue_and_echo_commands_P(PSTR(SD_FINISHED_RELEASECOMMAND));
print_job_timer.stop();
if (print_job_timer.duration() > 60)
enqueue_and_echo_commands_P(PSTR("M31"));
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
}
}
#endif // SDSUPPORT
-188
View File
@@ -1,188 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef CARDREADER_H
#define CARDREADER_H
#include "MarlinConfig.h"
#if ENABLED(SDSUPPORT)
#define MAX_DIR_DEPTH 10 // Maximum folder depth
#include "SdFile.h"
#include "types.h"
#include "enum.h"
class CardReader {
public:
CardReader();
void initsd();
void write_command(char *buf);
//files auto[0-9].g on the sd card are performed in a row
//this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset
void checkautostart(bool x);
void openFile(char* name, bool read, bool push_current=false);
void openLogFile(char* name);
void removeFile(char* name);
void closefile(bool store_location=false);
void release();
void openAndPrintFile(const char *name);
void startFileprint();
void stopSDPrint();
void getStatus();
void printingHasFinished();
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)
void printLongPath(char *path);
#endif
void getfilename(uint16_t nr, const char* const match=NULL);
uint16_t getnrfilenames();
void getAbsFilename(char *t);
void ls();
void chdir(const char *relpath);
void updir();
void setroot();
#if ENABLED(SDCARD_SORT_ALPHA)
void presort();
void getfilename_sorted(const uint16_t nr);
#if ENABLED(SDSORT_GCODE)
FORCE_INLINE void setSortOn(bool b) { sort_alpha = b; presort(); }
FORCE_INLINE void setSortFolders(int i) { sort_folders = i; presort(); }
//FORCE_INLINE void setSortReverse(bool b) { sort_reverse = b; }
#endif
#endif
FORCE_INLINE void pauseSDPrint() { sdprinting = false; }
FORCE_INLINE bool isFileOpen() { return file.isOpen(); }
FORCE_INLINE bool eof() { return sdpos >= filesize; }
FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); }
FORCE_INLINE void setIndex(long index) { sdpos = index; file.seekSet(index); }
FORCE_INLINE uint8_t percentDone() { return (isFileOpen() && filesize) ? sdpos / ((filesize + 99) / 100) : 0; }
FORCE_INLINE char* getWorkDirName() { workDir.getFilename(filename); return filename; }
public:
bool saving, logging, sdprinting, cardOK, filenameIsDir;
char filename[FILENAME_LENGTH], longFilename[LONG_FILENAME_LENGTH];
int autostart_index;
private:
SdFile root, *curDir, workDir, workDirParents[MAX_DIR_DEPTH];
uint8_t workDirDepth;
// Sort files and folders alphabetically.
#if ENABLED(SDCARD_SORT_ALPHA)
uint16_t sort_count; // Count of sorted items in the current directory
#if ENABLED(SDSORT_GCODE)
bool sort_alpha; // Flag to enable / disable the feature
int sort_folders; // Flag to enable / disable folder sorting
//bool sort_reverse; // Flag to enable / disable reverse sorting
#endif
// By default the sort index is static
#if ENABLED(SDSORT_DYNAMIC_RAM)
uint8_t *sort_order;
#else
uint8_t sort_order[SDSORT_LIMIT];
#endif
// Cache filenames to speed up SD menus.
#if ENABLED(SDSORT_USES_RAM)
// If using dynamic ram for names, allocate on the heap.
#if ENABLED(SDSORT_CACHE_NAMES)
#if ENABLED(SDSORT_DYNAMIC_RAM)
char **sortshort, **sortnames;
#else
char sortshort[SDSORT_LIMIT][FILENAME_LENGTH];
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
#endif
#elif DISABLED(SDSORT_USES_STACK)
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
#endif
// Folder sorting uses an isDir array when caching items.
#if HAS_FOLDER_SORTING
#if ENABLED(SDSORT_DYNAMIC_RAM)
uint8_t *isDir;
#elif ENABLED(SDSORT_CACHE_NAMES) || DISABLED(SDSORT_USES_STACK)
uint8_t isDir[(SDSORT_LIMIT+7)>>3];
#endif
#endif
#endif // SDSORT_USES_RAM
#endif // SDCARD_SORT_ALPHA
Sd2Card card;
SdVolume volume;
SdFile file;
#define SD_PROCEDURE_DEPTH 1
#define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH + MAX_DIR_DEPTH + 1)
uint8_t file_subcall_ctr;
uint32_t filespos[SD_PROCEDURE_DEPTH];
char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
uint32_t filesize;
uint32_t sdpos;
millis_t next_autostart_ms;
bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
LsAction lsAction; //stored for recursion.
uint16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory.
char* diveDirName;
void lsDive(const char *prepend, SdFile parent, const char * const match=NULL);
#if ENABLED(SDCARD_SORT_ALPHA)
void flush_presort();
#endif
};
extern CardReader card;
#define IS_SD_PRINTING (card.sdprinting)
#if PIN_EXISTS(SD_DETECT)
#if ENABLED(SD_DETECT_INVERTED)
#define IS_SD_INSERTED (READ(SD_DETECT_PIN) != 0)
#else
#define IS_SD_INSERTED (READ(SD_DETECT_PIN) == 0)
#endif
#else
//No card detect line? Assume the card is inserted.
#define IS_SD_INSERTED true
#endif
#else
#define IS_SD_PRINTING (false)
#endif // SDSUPPORT
#endif // __CARDREADER_H
File diff suppressed because it is too large Load Diff
-82
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
-66
View File
@@ -1,66 +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 library for MicroChip MCP4728 I2C D/A converter.
*/
#ifndef DAC_MCP4728_H
#define DAC_MCP4728_H
#include "MarlinConfig.h"
#if ENABLED(DAC_STEPPER_CURRENT)
#include "Wire.h"
#define defaultVDD DAC_STEPPER_MAX //was 5000 but differs with internal Vref
#define BASE_ADDR 0x60
#define RESET 0B00000110
#define WAKE 0B00001001
#define UPDATE 0B00001000
#define MULTIWRITE 0B01000000
#define SINGLEWRITE 0B01011000
#define SEQWRITE 0B01010000
#define VREFWRITE 0B10000000
#define GAINWRITE 0B11000000
#define POWERDOWNWRITE 0B10100000
#define GENERALCALL 0B00000000
#define GAINWRITE 0B11000000
// This is taken from the original lib, makes it easy to edit if needed
// DAC_OR_ADDRESS defined in pins_BOARD.h file
#define DAC_DEV_ADDRESS (BASE_ADDR | DAC_OR_ADDRESS)
void mcp4728_init();
uint8_t mcp4728_analogWrite(uint8_t channel, uint16_t value);
uint8_t mcp4728_eepromWrite();
uint8_t mcp4728_setVref_all(uint8_t value);
uint8_t mcp4728_setGain_all(uint8_t value);
uint16_t mcp4728_getValue(uint8_t channel);
uint8_t mcp4728_fastWrite();
uint8_t mcp4728_simpleCommand(byte simpleCommand);
uint16_t mcp4728_getDrvPct(uint8_t channel);
void mcp4728_setDrvPct(uint16_t pct[XYZE]);
#endif
#endif // DAC_MCP4728_H
-91
View File
@@ -1,91 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#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
-79
View File
@@ -1,79 +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) && DISABLED(DIGIPOT_MCP4018)
#include "Stream.h"
#include "utility/twi.h"
#include "Wire.h"
// Settings for the I2C based DIGIPOT (MCP4451) on Azteeg X3 Pro
#if MB(5DPRINT)
#define DIGIPOT_I2C_FACTOR 117.96
#define DIGIPOT_I2C_MAX_CURRENT 1.736
#else
#define DIGIPOT_I2C_FACTOR 106.7
#define DIGIPOT_I2C_MAX_CURRENT 2.5
#endif
static byte current_to_wiper(float current) {
return byte(ceil(float((DIGIPOT_I2C_FACTOR * current))));
}
static void i2c_send(byte addr, byte a, byte b) {
Wire.beginTransmission(addr);
Wire.write(a);
Wire.write(b);
Wire.endTransmission();
}
// This is for the MCP4451 I2C based digipot
void digipot_i2c_set_current(int channel, float current) {
current = min((float) max(current, 0.0f), DIGIPOT_I2C_MAX_CURRENT);
// these addresses are specific to Azteeg X3 Pro, can be set to others,
// In this case first digipot is at address A0=0, A1= 0, second one is at A0=0, A1= 1
byte addr = 0x2C; // channel 0-3
if (channel >= 4) {
addr = 0x2E; // channel 4-7
channel -= 4;
}
// Initial setup
i2c_send(addr, 0x40, 0xFF);
i2c_send(addr, 0xA0, 0xFF);
// Set actual wiper value
byte addresses[4] = { 0x00, 0x10, 0x60, 0x70 };
i2c_send(addr, addresses[channel], current_to_wiper(current));
}
void digipot_i2c_init() {
const float digipot_motor_current[] = DIGIPOT_I2C_MOTOR_CURRENTS;
Wire.begin();
// setup initial currents as defined in Configuration_adv.h
for (int i = 0; i < COUNT(digipot_motor_current); i++)
digipot_i2c_set_current(i, digipot_motor_current[i]);
}
#endif // DIGIPOT_I2C
-422
View File
@@ -1,422 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Standard Marlin Bitmap for splashscreen
*
* You may use one of the following tools to generate the C++ bitmap array from
* a black and white image:
*
* - http://www.marlinfw.org/tools/u8glib/converter.html
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
*
* Please note that using the high-res version takes 402Bytes of PROGMEM.
*/
//#define START_BMPHIGH
#if ENABLED(SHOW_BOOTSCREEN)
#if ENABLED(START_BMPHIGH)
#define START_BMPWIDTH 112
#define START_BMPHEIGHT 38
#define START_BMPBYTEWIDTH 14
#define START_BMPBYTES 532 // START_BMPWIDTH * START_BMPHEIGHT / 8
const unsigned char start_bmp[START_BMPBYTES] PROGMEM = {
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF,
0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF,
0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3F, 0xFF,
0xC0, 0x0F, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x00, 0x1F, 0xFF,
0xC0, 0x3F, 0xE1, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x0F, 0xFF,
0xC0, 0x7F, 0xF3, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x07, 0xFF,
0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x03, 0xFF,
0xC1, 0xF8, 0x7F, 0x87, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xFF,
0xC1, 0xF0, 0x3F, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xFF,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x1F, 0x00, 0x03, 0xE0, 0x78, 0x3C, 0x03, 0xF0, 0x7F,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x7F, 0xC0, 0x0F, 0xF8, 0x78, 0x3C, 0x07, 0xFC, 0x3F,
0xC1, 0xE0, 0x1E, 0x01, 0xE1, 0xFF, 0xE0, 0x1F, 0xFC, 0x78, 0x3C, 0x0F, 0xFE, 0x1F,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xFF, 0xF0, 0x3F, 0xFE, 0x78, 0x3C, 0x1F, 0xFE, 0x0F,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xF3, 0xF8, 0x3F, 0x3E, 0x78, 0x3C, 0x3F, 0x3F, 0x07,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xE0, 0xFC, 0x7C, 0x1F, 0x78, 0x3C, 0x3E, 0x1F, 0x07,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xC0, 0x7C, 0x7C, 0x0F, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x7C, 0x78, 0x0F, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xC0, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xE0, 0x3C, 0x78, 0x00, 0x7C, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xFF, 0x3F, 0xF8, 0x00, 0x7F, 0xBC, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE1, 0xFF, 0x3F, 0xF8, 0x00, 0x3F, 0xBF, 0xFC, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0xFF, 0x3F, 0xF8, 0x00, 0x1F, 0xBF, 0xFC, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x7F, 0x3F, 0xF8, 0x00, 0x0F, 0xBF, 0xFC, 0x0F, 0x03,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80 };
#else
#define START_BMPWIDTH 56
#define START_BMPHEIGHT 19
#define START_BMPBYTEWIDTH 7
#define START_BMPBYTES 133 // START_BMPWIDTH * START_BMPHEIGHT / 8
const unsigned char start_bmp[START_BMPBYTES] PROGMEM = {
0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x60, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F,
0x83, 0xCF, 0x00, 0x00, 0x0C, 0x30, 0x3F,
0x87, 0xFF, 0x80, 0x00, 0x0C, 0x30, 0x1F,
0x86, 0x79, 0x80, 0x00, 0x0C, 0x00, 0x0F,
0x8C, 0x30, 0xC7, 0x83, 0x8C, 0x30, 0xE7,
0x8C, 0x30, 0xCF, 0xC7, 0xCC, 0x31, 0xF3,
0x8C, 0x30, 0xDC, 0xEC, 0xEC, 0x33, 0xB9,
0x8C, 0x30, 0xD8, 0x6C, 0x6C, 0x33, 0x19,
0x8C, 0x30, 0xD0, 0x6C, 0x0C, 0x33, 0x19,
0x8C, 0x30, 0xD8, 0x6C, 0x0C, 0x33, 0x19,
0x8C, 0x30, 0xDC, 0x6C, 0x0E, 0x3B, 0x19,
0x8C, 0x30, 0xCF, 0x7C, 0x07, 0x9F, 0x19,
0x8C, 0x30, 0xC7, 0x7C, 0x03, 0x8F, 0x19,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8 };
#endif
#endif
// Here comes a compile-time operation to match the extruder symbols
// on the info screen to the set number of extruders in configuration.h
//
// When only one extruder is selected, the "1" on the symbol will not
// be displayed.
#if HAS_TEMP_BED
#if HOTENDS == 1
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#elif HOTENDS == 2
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#else
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#endif // Extruders
#else
#if HOTENDS == 1
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#elif HOTENDS == 2
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#else
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#endif // Extruders
#endif // HAS_TEMP_BED
-194
View File
@@ -1,194 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: HD44780_C v1.2
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 8
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t HD44780_C_5x7[2522] U8G_SECTION(".progmem.HD44780_C_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 34, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 7, 7, 6, 0, 0, 32, 112, 160, 160, 168, 112, 32, 3, 7, 7,
6, 1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4,
32, 80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5,
128, 64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7,
6, 0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0,
112, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136,
136, 120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7,
6, 0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255,
112, 136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200,
136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
3, 8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7,
7, 6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1,
0, 192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168,
168, 168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5,
5, 6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240,
136, 136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8,
8, 5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6,
0, 0, 112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224,
64, 64, 72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5,
5, 5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0,
136, 136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136,
5, 6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6,
0, 0, 248, 16, 32, 64, 248, 5, 5, 5, 6, 0, 2, 184, 168, 168,
168, 184, 5, 5, 5, 6, 0, 2, 184, 136, 184, 160, 184, 5, 5, 5,
6, 0, 2, 184, 160, 184, 136, 184, 5, 6, 6, 6, 0, 1, 8, 40,
72, 248, 64, 32, 5, 5, 5, 6, 0, 0, 56, 112, 224, 136, 240, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5,
7, 7, 6, 0, 0, 248, 136, 128, 240, 136, 136, 240, 5, 7, 7, 6,
0, 0, 248, 136, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 80,
0, 248, 128, 240, 128, 248, 5, 7, 7, 6, 0, 0, 168, 168, 168, 112,
168, 168, 168, 5, 7, 7, 6, 0, 0, 240, 8, 8, 112, 8, 8, 240,
5, 7, 7, 6, 0, 0, 136, 136, 152, 168, 200, 136, 136, 5, 8, 8,
6, 0, 0, 80, 32, 136, 152, 168, 168, 200, 136, 5, 7, 7, 6, 0,
0, 120, 40, 40, 40, 40, 168, 72, 5, 7, 7, 6, 0, 0, 248, 136,
136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136, 136, 80, 32,
64, 128, 5, 7, 7, 6, 0, 0, 32, 112, 168, 168, 168, 112, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 120, 8, 8, 8, 5, 7, 7, 6,
0, 0, 168, 168, 168, 168, 168, 168, 248, 5, 7, 7, 6, 0, 0, 192,
64, 64, 112, 72, 72, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 200,
168, 168, 200, 5, 7, 7, 6, 0, 0, 112, 136, 8, 56, 8, 136, 112,
5, 7, 7, 6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7,
6, 0, 0, 120, 136, 136, 120, 40, 72, 136, 5, 7, 7, 6, 0, 0,
24, 96, 128, 240, 136, 136, 112, 4, 5, 5, 6, 0, 0, 224, 144, 224,
144, 224, 5, 5, 5, 6, 0, 0, 248, 136, 128, 128, 128, 5, 7, 7,
6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 5, 5, 5, 6, 0, 0,
168, 168, 112, 168, 168, 5, 5, 5, 6, 0, 0, 240, 8, 48, 8, 240,
5, 5, 5, 6, 0, 0, 136, 152, 168, 200, 136, 5, 7, 7, 6, 0,
0, 80, 32, 136, 152, 168, 200, 136, 4, 5, 5, 6, 0, 0, 144, 160,
192, 160, 144, 5, 5, 5, 6, 0, 0, 248, 40, 40, 168, 72, 5, 5,
5, 6, 0, 0, 136, 216, 168, 136, 136, 5, 5, 5, 6, 0, 0, 136,
136, 248, 136, 136, 5, 5, 5, 6, 0, 0, 248, 136, 136, 136, 136, 5,
5, 5, 6, 0, 0, 248, 32, 32, 32, 32, 5, 5, 5, 6, 0, 0,
136, 136, 120, 8, 8, 5, 5, 5, 6, 0, 0, 168, 168, 168, 168, 248,
5, 5, 5, 6, 0, 0, 192, 64, 112, 72, 112, 5, 5, 5, 6, 0,
0, 136, 136, 200, 168, 200, 4, 5, 5, 6, 0, 0, 128, 128, 224, 144,
224, 5, 5, 5, 6, 0, 0, 112, 136, 56, 136, 112, 5, 5, 5, 6,
0, 0, 144, 168, 232, 168, 144, 5, 5, 5, 6, 0, 0, 120, 136, 120,
40, 72, 5, 5, 5, 6, 0, 1, 32, 72, 144, 72, 32, 5, 5, 5,
6, 0, 1, 32, 144, 72, 144, 32, 5, 3, 3, 6, 0, 0, 72, 144,
216, 5, 3, 3, 6, 0, 4, 216, 72, 144, 5, 7, 7, 6, 0, 0,
144, 208, 176, 144, 56, 40, 56, 5, 7, 7, 6, 0, 0, 32, 0, 32,
64, 128, 136, 112, 5, 7, 7, 6, 0, 0, 24, 32, 32, 112, 32, 32,
192, 5, 7, 7, 6, 0, 0, 32, 80, 64, 240, 64, 64, 120, 1, 2,
2, 6, 2, 0, 128, 128, 1, 4, 4, 6, 2, 0, 128, 128, 128, 128,
3, 5, 5, 6, 1, 0, 160, 160, 160, 0, 224, 3, 5, 5, 6, 1,
0, 160, 160, 160, 0, 160, 5, 7, 7, 6, 0, 0, 160, 0, 232, 16,
32, 64, 128, 5, 5, 5, 6, 0, 1, 216, 112, 32, 112, 216, 5, 7,
7, 6, 0, 0, 160, 64, 168, 16, 32, 64, 128, 3, 6, 6, 6, 1,
1, 224, 64, 64, 64, 64, 224, 5, 6, 6, 6, 0, 1, 248, 80, 80,
80, 80, 248, 5, 7, 7, 6, 0, 0, 32, 112, 168, 32, 32, 32, 32,
5, 7, 7, 6, 0, 0, 32, 32, 32, 32, 168, 112, 32, 5, 7, 7,
6, 0, 0, 128, 144, 176, 248, 176, 144, 128, 5, 7, 7, 6, 0, 0,
8, 72, 104, 248, 104, 72, 8, 5, 7, 7, 6, 0, 0, 128, 136, 168,
248, 168, 136, 128, 5, 7, 7, 6, 0, 0, 128, 224, 136, 16, 32, 64,
128, 2, 2, 2, 6, 2, 2, 192, 192, 5, 8, 8, 6, 0, 255, 120,
40, 40, 40, 72, 136, 248, 136, 5, 8, 8, 6, 0, 255, 136, 136, 136,
136, 136, 136, 248, 8, 5, 8, 8, 6, 0, 255, 168, 168, 168, 168, 168,
168, 248, 8, 5, 6, 6, 6, 0, 255, 120, 40, 72, 136, 248, 136, 5,
7, 7, 6, 0, 255, 32, 32, 112, 168, 168, 112, 32, 5, 6, 6, 6,
0, 255, 136, 136, 136, 136, 248, 8, 5, 6, 6, 6, 0, 255, 168, 168,
168, 168, 248, 8, 2, 2, 2, 6, 2, 6, 64, 128, 3, 1, 1, 6,
1, 7, 160, 5, 2, 2, 6, 0, 6, 72, 176, 5, 8, 8, 6, 0,
0, 16, 32, 0, 112, 136, 248, 128, 112, 5, 6, 6, 6, 0, 255, 112,
128, 136, 112, 32, 96, 3, 7, 7, 6, 1, 0, 160, 0, 160, 160, 160,
32, 192, 5, 6, 6, 6, 0, 1, 32, 112, 112, 112, 248, 32, 5, 5,
5, 6, 0, 1, 80, 0, 136, 0, 80, 5, 5, 5, 6, 0, 1, 112,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 144, 168, 88, 184, 8,
8, 5, 7, 7, 6, 0, 0, 136, 144, 184, 72, 184, 8, 56, 5, 7,
7, 6, 0, 0, 136, 144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0,
0, 192, 64, 192, 72, 216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 136,
248, 136, 248, 136, 248, 136, 4, 5, 5, 6, 0, 2, 192, 0, 48, 0,
96, 5, 8, 8, 6, 0, 0, 64, 160, 224, 168, 8, 40, 120, 32, 5,
8, 8, 6, 0, 0, 64, 112, 64, 120, 64, 112, 64, 224, 5, 8, 8,
6, 0, 0, 32, 112, 32, 248, 32, 112, 32, 112, 5, 7, 7, 6, 0,
0, 104, 0, 232, 0, 104, 16, 56, 5, 8, 8, 6, 0, 0, 16, 112,
16, 240, 16, 112, 16, 56, 5, 7, 7, 6, 0, 1, 32, 112, 32, 248,
32, 112, 32, 5, 8, 8, 6, 0, 0, 16, 144, 80, 48, 80, 144, 16,
56, 5, 8, 8, 6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 5,
7, 7, 6, 0, 0, 120, 168, 168, 120, 40, 40, 40, 5, 8, 8, 6,
0, 0, 248, 248, 248, 248, 248, 248, 248, 248
};
-192
View File
@@ -1,192 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: HD44780_J
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 6 h=10 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 8
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-2
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t HD44780_J_5x7[2492] U8G_SECTION(".progmem.HD44780_J_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 34, 32, 255, 255, 8, 254, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 7, 7, 6, 0, 0, 136, 80, 248, 32, 248, 32, 32, 3, 7, 7,
6, 1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4,
32, 80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5,
128, 64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7,
6, 0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0,
112, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136,
136, 120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7,
6, 0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255,
112, 136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200,
136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
3, 8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7,
7, 6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1,
0, 192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168,
168, 168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5,
5, 6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240,
136, 136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8,
8, 5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6,
0, 0, 112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224,
64, 64, 72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5,
5, 5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0,
136, 136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136,
5, 6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6,
0, 0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64,
128, 64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128,
128, 3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 5,
5, 6, 0, 1, 32, 16, 248, 16, 32, 5, 5, 5, 6, 0, 1, 32,
64, 248, 64, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 3, 3, 3, 6, 0, 0,
224, 160, 224, 3, 4, 4, 6, 2, 3, 224, 128, 128, 128, 3, 4, 4,
6, 0, 0, 32, 32, 32, 224, 3, 3, 3, 6, 0, 0, 128, 64, 32,
2, 2, 2, 6, 1, 2, 192, 192, 5, 6, 6, 6, 0, 0, 248, 8,
248, 8, 16, 32, 5, 5, 5, 6, 0, 0, 248, 8, 48, 32, 64, 4,
5, 5, 6, 0, 0, 16, 32, 96, 160, 32, 5, 5, 5, 6, 0, 0,
32, 248, 136, 8, 48, 5, 4, 4, 6, 0, 0, 248, 32, 32, 248, 5,
5, 5, 6, 0, 0, 16, 248, 48, 80, 144, 5, 5, 5, 6, 0, 0,
64, 248, 72, 80, 64, 5, 4, 4, 6, 0, 0, 112, 16, 16, 248, 4,
5, 5, 6, 0, 0, 240, 16, 240, 16, 240, 5, 4, 4, 6, 0, 0,
168, 168, 8, 48, 5, 1, 1, 6, 0, 3, 248, 5, 7, 7, 6, 0,
0, 248, 8, 40, 48, 32, 32, 64, 5, 7, 7, 6, 0, 0, 8, 16,
32, 96, 160, 32, 32, 5, 7, 7, 6, 0, 0, 32, 248, 136, 136, 8,
16, 32, 5, 6, 6, 6, 0, 0, 248, 32, 32, 32, 32, 248, 5, 7,
7, 6, 0, 0, 16, 248, 16, 48, 80, 144, 16, 5, 7, 7, 6, 0,
0, 64, 248, 72, 72, 72, 72, 144, 5, 7, 7, 6, 0, 0, 32, 248,
32, 248, 32, 32, 32, 5, 6, 6, 6, 0, 0, 120, 72, 136, 8, 16,
96, 5, 7, 7, 6, 0, 0, 64, 120, 144, 16, 16, 16, 32, 5, 6,
6, 6, 0, 0, 248, 8, 8, 8, 8, 248, 5, 7, 7, 6, 0, 0,
80, 248, 80, 80, 16, 32, 64, 5, 6, 6, 6, 0, 0, 192, 8, 200,
8, 16, 224, 5, 6, 6, 6, 0, 0, 248, 8, 16, 32, 80, 136, 5,
7, 7, 6, 0, 0, 64, 248, 72, 80, 64, 64, 56, 5, 6, 6, 6,
0, 0, 136, 136, 72, 8, 16, 96, 5, 6, 6, 6, 0, 0, 120, 72,
168, 24, 16, 96, 5, 7, 7, 6, 0, 0, 16, 224, 32, 248, 32, 32,
64, 5, 6, 6, 6, 0, 0, 168, 168, 168, 8, 16, 32, 5, 7, 7,
6, 0, 0, 112, 0, 248, 32, 32, 32, 64, 3, 7, 7, 6, 1, 0,
128, 128, 128, 192, 160, 128, 128, 5, 7, 7, 6, 0, 0, 32, 32, 248,
32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 112, 0, 0, 0, 0, 248,
5, 6, 6, 6, 0, 0, 248, 8, 80, 32, 80, 128, 5, 7, 7, 6,
0, 0, 32, 248, 16, 32, 112, 168, 32, 3, 7, 7, 6, 1, 0, 32,
32, 32, 32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 32, 16, 136, 136,
136, 136, 5, 7, 7, 6, 0, 0, 128, 128, 248, 128, 128, 128, 120, 5,
6, 6, 6, 0, 0, 248, 8, 8, 8, 16, 96, 5, 5, 5, 6, 0,
1, 64, 160, 16, 8, 8, 5, 7, 7, 6, 0, 0, 32, 248, 32, 32,
168, 168, 32, 5, 6, 6, 6, 0, 0, 248, 8, 8, 80, 32, 16, 4,
6, 6, 6, 1, 0, 224, 0, 224, 0, 224, 16, 5, 6, 6, 6, 0,
0, 32, 64, 128, 136, 248, 8, 5, 6, 6, 6, 0, 0, 8, 8, 80,
32, 80, 128, 5, 6, 6, 6, 0, 0, 248, 64, 248, 64, 64, 56, 5,
7, 7, 6, 0, 0, 64, 64, 248, 72, 80, 64, 64, 5, 7, 7, 6,
0, 0, 112, 16, 16, 16, 16, 16, 248, 5, 6, 6, 6, 0, 0, 248,
8, 248, 8, 8, 248, 5, 7, 7, 6, 0, 0, 112, 0, 248, 8, 8,
16, 32, 4, 7, 7, 6, 0, 0, 144, 144, 144, 144, 16, 32, 64, 5,
6, 6, 6, 0, 0, 32, 160, 160, 168, 168, 176, 5, 7, 7, 6, 0,
0, 128, 128, 128, 136, 144, 160, 192, 5, 6, 6, 6, 0, 0, 248, 136,
136, 136, 136, 248, 5, 6, 6, 6, 0, 0, 248, 136, 136, 8, 16, 32,
5, 6, 6, 6, 0, 0, 192, 0, 8, 8, 16, 224, 4, 3, 3, 6,
0, 4, 32, 144, 64, 3, 3, 3, 6, 0, 4, 224, 160, 224, 5, 5,
5, 6, 0, 1, 72, 168, 144, 144, 104, 5, 7, 7, 6, 0, 0, 80,
0, 112, 8, 120, 136, 120, 4, 8, 8, 6, 1, 255, 96, 144, 144, 224,
144, 144, 224, 128, 5, 5, 5, 6, 0, 0, 112, 128, 96, 136, 112, 5,
6, 6, 6, 0, 255, 136, 136, 152, 232, 136, 128, 5, 5, 5, 6, 0,
0, 120, 160, 144, 136, 112, 5, 7, 7, 6, 0, 254, 48, 72, 136, 136,
240, 128, 128, 5, 8, 8, 6, 0, 254, 120, 136, 136, 136, 120, 8, 8,
112, 5, 5, 5, 6, 0, 1, 56, 32, 32, 160, 64, 4, 3, 3, 6,
0, 3, 16, 208, 16, 4, 8, 8, 6, 0, 255, 16, 0, 48, 16, 16,
16, 144, 96, 3, 3, 3, 6, 0, 4, 160, 64, 160, 5, 7, 7, 6,
0, 0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7, 6, 0, 0, 64,
64, 224, 64, 224, 64, 120, 5, 7, 7, 6, 0, 0, 112, 0, 176, 200,
136, 136, 136, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136, 112,
5, 7, 7, 6, 0, 255, 176, 200, 136, 136, 240, 128, 128, 5, 7, 7,
6, 0, 255, 104, 152, 136, 136, 120, 8, 8, 5, 6, 6, 6, 0, 0,
112, 136, 248, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88, 168, 208, 5,
5, 5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6, 0, 0,
80, 0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 248, 128, 64,
32, 64, 128, 248, 5, 5, 5, 6, 0, 0, 248, 80, 80, 80, 152, 5,
7, 7, 6, 0, 0, 248, 0, 136, 80, 32, 80, 136, 5, 7, 7, 6,
0, 255, 136, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 0, 8,
240, 32, 248, 32, 32, 5, 5, 5, 6, 0, 0, 248, 64, 120, 72, 136,
5, 5, 5, 6, 0, 0, 248, 168, 248, 136, 136, 5, 5, 5, 6, 0,
1, 32, 0, 248, 0, 32, 0, 0, 0, 6, 0, 0, 6, 10, 10, 6,
0, 254, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252
};
-226
View File
@@ -1,226 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: HD44780_W
Copyright: A.Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t HD44780_W_5x7[3034] U8G_SECTION(".progmem.HD44780_W_5x7") = {
0, 6, 9, 0, 254, 7, 2, 79, 3, 222, 16, 255, 255, 8, 255, 7,
255, 4, 7, 7, 6, 0, 0, 16, 48, 112, 240, 112, 48, 16, 4, 7,
7, 6, 1, 0, 128, 192, 224, 240, 224, 192, 128, 5, 3, 3, 6, 0,
4, 216, 72, 144, 5, 3, 3, 6, 0, 4, 216, 144, 72, 5, 7, 7,
6, 0, 0, 32, 112, 248, 0, 32, 112, 248, 5, 7, 7, 6, 0, 0,
248, 112, 32, 0, 248, 112, 32, 5, 5, 5, 6, 0, 1, 112, 248, 248,
248, 112, 5, 7, 7, 6, 0, 0, 8, 8, 40, 72, 248, 64, 32, 5,
7, 7, 6, 0, 0, 32, 112, 168, 32, 32, 32, 32, 5, 7, 7, 6,
0, 0, 32, 32, 32, 32, 168, 112, 32, 5, 5, 5, 6, 0, 1, 32,
64, 248, 64, 32, 5, 5, 5, 6, 0, 1, 32, 16, 248, 16, 32, 5,
7, 7, 6, 0, 0, 16, 32, 64, 32, 16, 0, 248, 5, 7, 7, 6,
0, 0, 64, 32, 16, 32, 64, 0, 248, 5, 5, 5, 6, 0, 1, 32,
32, 112, 112, 248, 5, 5, 5, 6, 0, 0, 248, 112, 112, 32, 32, 0,
0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128,
0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6, 0, 0,
80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32, 120, 160,
112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32, 64, 152,
24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104, 2, 3,
3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32, 64, 128,
128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32, 32, 64,
128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5, 5, 6,
0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192, 64, 128,
5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192, 192, 5,
5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0,
112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64, 192, 64,
64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112, 128, 128,
248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240, 5, 7,
7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7, 6, 0,
0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0, 48, 64,
128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32, 32,
32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136, 112, 5,
7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5, 5, 6,
2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192, 192, 0,
192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64, 32, 16,
5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1, 0, 128,
64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136, 8, 16,
32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168, 112, 5,
7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7, 7, 6,
0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0, 0, 112,
136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144, 136, 136,
136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 248,
5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5, 7, 7,
6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6, 0, 0,
136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16, 16, 144,
96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136, 5, 7,
7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7, 6, 0,
0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136,
200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7, 7, 6,
0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0, 0, 120,
128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32, 32, 32,
32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 136, 112,
5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5, 7, 7,
6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6, 0, 0,
136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136, 136,
80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32, 64, 128,
248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224, 5, 5,
5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1, 0, 224,
32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80, 136, 5,
1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64, 5, 5,
5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0, 0, 128,
128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128, 128, 136,
112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120, 5, 5,
5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0, 0, 48,
72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136, 136, 120,
8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136, 136, 1,
7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8, 8, 6,
1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6, 0, 0,
128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192, 64, 64,
64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168, 168, 5,
5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6, 0, 0,
112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136, 240, 128,
128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5, 5, 5,
6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0, 112, 128,
112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64, 72, 48,
5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5, 6, 0,
0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136, 168, 168,
80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6, 6, 6,
0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0, 248, 16,
32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64, 64, 32,
1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3, 7, 7,
6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 6, 6, 6, 0, 1,
8, 40, 72, 248, 64, 32, 5, 7, 7, 6, 0, 0, 32, 80, 136, 136,
136, 136, 248, 5, 7, 7, 6, 0, 0, 248, 136, 128, 240, 136, 136, 240,
5, 8, 8, 6, 0, 255, 120, 40, 40, 40, 72, 136, 248, 136, 5, 7,
7, 6, 0, 0, 168, 168, 168, 112, 168, 168, 168, 5, 7, 7, 6, 0,
0, 240, 8, 8, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 136, 136,
152, 168, 200, 136, 136, 5, 8, 8, 6, 0, 0, 80, 32, 136, 152, 168,
168, 200, 136, 5, 7, 7, 6, 0, 0, 120, 40, 40, 40, 40, 168, 72,
5, 7, 7, 6, 0, 0, 248, 136, 136, 136, 136, 136, 136, 5, 7, 7,
6, 0, 0, 136, 136, 136, 80, 32, 64, 128, 5, 8, 8, 6, 0, 255,
136, 136, 136, 136, 136, 136, 248, 8, 5, 7, 7, 6, 0, 0, 136, 136,
136, 120, 8, 8, 8, 5, 7, 7, 6, 0, 0, 168, 168, 168, 168, 168,
168, 248, 5, 8, 8, 6, 0, 255, 168, 168, 168, 168, 168, 168, 248, 8,
5, 7, 7, 6, 0, 0, 192, 64, 64, 112, 72, 72, 112, 5, 7, 7,
6, 0, 0, 136, 136, 136, 200, 168, 168, 200, 5, 7, 7, 6, 0, 0,
112, 136, 40, 80, 8, 136, 112, 5, 5, 5, 6, 0, 0, 64, 160, 144,
144, 104, 5, 7, 7, 6, 0, 0, 32, 48, 40, 40, 32, 224, 224, 5,
7, 7, 6, 0, 0, 248, 136, 128, 128, 128, 128, 128, 5, 5, 5, 6,
0, 0, 248, 80, 80, 80, 152, 5, 7, 7, 6, 0, 0, 248, 128, 64,
32, 64, 128, 248, 5, 5, 5, 6, 0, 0, 120, 144, 144, 144, 96, 5,
7, 7, 6, 0, 0, 48, 40, 56, 40, 200, 216, 24, 5, 6, 6, 6,
0, 0, 8, 112, 160, 32, 32, 16, 5, 6, 6, 6, 0, 1, 32, 112,
112, 112, 248, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136,
112, 5, 5, 5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6,
0, 0, 48, 72, 32, 80, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88,
168, 208, 5, 6, 6, 6, 0, 0, 80, 248, 248, 248, 112, 32, 5, 5,
5, 6, 0, 0, 112, 128, 96, 136, 112, 5, 7, 7, 6, 0, 0, 112,
136, 136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 216, 216, 216, 216,
216, 216, 216, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
5, 7, 7, 6, 0, 0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7,
6, 0, 0, 48, 64, 64, 224, 64, 80, 168, 5, 5, 5, 6, 0, 0,
136, 112, 80, 112, 136, 5, 7, 7, 6, 0, 0, 136, 80, 248, 32, 248,
32, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 0, 128, 128, 128, 5,
8, 8, 6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 5, 7, 7,
6, 0, 0, 24, 32, 32, 112, 32, 32, 192, 5, 7, 7, 6, 0, 0,
248, 136, 184, 184, 184, 136, 248, 5, 7, 7, 6, 0, 0, 112, 8, 120,
136, 120, 0, 248, 5, 5, 5, 6, 0, 1, 40, 80, 160, 80, 40, 5,
7, 7, 6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7, 6,
0, 0, 120, 136, 136, 120, 40, 72, 136, 5, 7, 7, 6, 0, 0, 248,
136, 168, 136, 152, 168, 248, 2, 3, 3, 6, 2, 4, 64, 128, 192, 4,
5, 5, 6, 0, 3, 96, 144, 144, 144, 96, 5, 7, 7, 6, 0, 0,
32, 32, 248, 32, 32, 0, 248, 4, 5, 5, 6, 0, 3, 96, 144, 32,
64, 240, 3, 5, 5, 6, 0, 3, 224, 32, 224, 32, 224, 5, 8, 8,
6, 0, 0, 224, 144, 224, 128, 144, 184, 144, 24, 5, 8, 8, 6, 0,
255, 136, 136, 136, 136, 152, 232, 128, 128, 5, 7, 7, 6, 0, 0, 120,
152, 152, 120, 24, 24, 24, 2, 2, 2, 6, 2, 2, 192, 192, 5, 5,
5, 6, 0, 0, 80, 136, 168, 168, 80, 3, 5, 5, 6, 0, 3, 64,
192, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 112, 0,
248, 5, 5, 5, 6, 0, 1, 160, 80, 40, 80, 160, 5, 7, 7, 6,
0, 0, 136, 144, 168, 88, 184, 8, 8, 5, 7, 7, 6, 0, 0, 136,
144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0, 0, 192, 64, 192, 72,
216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 32, 0, 32, 64, 128, 136,
112, 5, 8, 8, 6, 0, 0, 64, 32, 32, 80, 136, 248, 136, 136, 5,
8, 8, 6, 0, 0, 16, 32, 32, 80, 136, 248, 136, 136, 5, 8, 8,
6, 0, 0, 32, 80, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6, 0,
0, 104, 144, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0, 80,
0, 32, 80, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0, 32, 80, 32,
112, 136, 248, 136, 136, 5, 7, 7, 6, 0, 0, 56, 96, 160, 184, 224,
160, 184, 5, 8, 8, 6, 0, 255, 112, 136, 128, 128, 136, 112, 32, 96,
5, 8, 8, 6, 0, 0, 64, 32, 0, 248, 128, 240, 128, 248, 5, 8,
8, 6, 0, 0, 8, 16, 0, 248, 128, 240, 128, 248, 5, 8, 8, 6,
0, 0, 32, 80, 0, 248, 128, 240, 128, 248, 5, 7, 7, 6, 0, 0,
80, 0, 248, 128, 240, 128, 248, 3, 8, 8, 6, 1, 0, 128, 64, 0,
224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64, 0, 224, 64,
64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 224, 64, 64, 64,
224, 3, 7, 7, 6, 1, 0, 160, 0, 224, 64, 64, 64, 224, 5, 7,
7, 6, 0, 0, 112, 72, 72, 232, 72, 72, 112, 5, 8, 8, 6, 0,
0, 104, 144, 0, 136, 200, 168, 152, 136, 5, 8, 8, 6, 0, 0, 64,
32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 112,
136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136,
136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112, 136, 136, 136,
112, 5, 8, 8, 6, 0, 0, 80, 0, 112, 136, 136, 136, 136, 112, 5,
5, 5, 6, 0, 1, 136, 80, 32, 80, 136, 5, 7, 7, 6, 0, 0,
112, 32, 112, 168, 112, 32, 112, 5, 8, 8, 6, 0, 0, 64, 32, 136,
136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 136, 136, 136,
136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 136, 136, 136, 136,
112, 5, 8, 8, 6, 0, 0, 80, 0, 136, 136, 136, 136, 136, 112, 5,
8, 8, 6, 0, 0, 16, 32, 136, 80, 32, 32, 32, 32, 5, 8, 8,
6, 0, 0, 192, 64, 112, 72, 72, 112, 64, 224, 5, 7, 7, 6, 0,
0, 48, 72, 72, 112, 72, 72, 176, 5, 8, 8, 6, 0, 0, 64, 32,
0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112,
8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 8, 120,
136, 120, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112, 8, 120, 136, 120,
5, 7, 7, 6, 0, 0, 80, 0, 112, 8, 120, 136, 120, 5, 8, 8,
6, 0, 0, 32, 80, 32, 112, 8, 120, 136, 120, 5, 6, 6, 6, 0,
0, 208, 40, 120, 160, 168, 80, 5, 6, 6, 6, 0, 255, 112, 128, 136,
112, 32, 96, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248, 128,
112, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 248, 128, 112, 5,
8, 8, 6, 0, 0, 32, 80, 0, 112, 136, 248, 128, 112, 5, 7, 7,
6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 3, 8, 8, 6, 1, 0,
128, 64, 0, 64, 192, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64,
0, 64, 192, 64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 64,
192, 64, 64, 224, 3, 7, 7, 6, 1, 0, 160, 0, 64, 192, 64, 64,
224, 5, 7, 7, 6, 0, 0, 160, 64, 160, 16, 120, 136, 112, 5, 8,
8, 6, 0, 0, 104, 144, 0, 176, 200, 136, 136, 136, 5, 8, 8, 6,
0, 0, 64, 32, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0,
16, 32, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80,
0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136,
112, 5, 5, 5, 6, 0, 1, 32, 0, 248, 0, 32, 5, 7, 7, 6,
0, 0, 16, 32, 112, 168, 112, 32, 64, 5, 8, 8, 6, 0, 0, 64,
32, 0, 136, 136, 136, 152, 104, 5, 8, 8, 6, 0, 0, 16, 32, 0,
136, 136, 136, 152, 104, 5, 8, 8, 6, 0, 0, 32, 80, 0, 136, 136,
136, 152, 104, 5, 7, 7, 6, 0, 0, 80, 0, 136, 136, 136, 152, 104,
5, 9, 9, 6, 0, 255, 16, 32, 0, 136, 136, 136, 248, 8, 112, 4,
7, 7, 6, 1, 0, 192, 64, 96, 80, 96, 64, 224, 5, 8, 8, 6,
0, 255, 80, 0, 136, 136, 136, 248, 8, 112
};
-198
View File
@@ -1,198 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646-1
Copyright: A.Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 9 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 9
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_1_5x7[2592] U8G_SECTION(".progmem.ISO10646_1_5x7") = {
0, 6, 9, 0, 254, 7, 1, 146, 3, 33, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 136, 136, 136, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
112, 128, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 8, 112, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 7, 7, 6, 0, 0, 112, 136, 8, 104, 168,
168, 112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6,
0, 0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 240,
136, 136, 136, 136, 136, 240, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128,
5, 7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7,
6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0,
128, 128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16,
16, 16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144,
136, 5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7,
7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0,
0, 136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136,
136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6,
0, 0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248,
32, 32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136,
136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32,
5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7,
6, 0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128,
224, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6,
1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32,
80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128,
64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6,
0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112,
128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136,
120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6,
0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112,
136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136,
136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3,
8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7,
6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0,
192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168,
168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5,
6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136,
136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8,
5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0,
0, 112, 128, 112, 8, 240, 4, 7, 7, 6, 0, 0, 64, 64, 224, 64,
64, 64, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5,
5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136,
136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5,
6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0,
0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128,
64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128,
3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2,
6, 0, 2, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 5, 7,
7, 6, 0, 0, 32, 112, 168, 160, 168, 112, 32, 5, 7, 7, 6, 0,
0, 48, 64, 64, 224, 64, 80, 168, 5, 5, 5, 6, 0, 0, 136, 112,
80, 112, 136, 5, 7, 7, 6, 0, 0, 136, 80, 32, 248, 32, 248, 32,
1, 7, 7, 6, 2, 0, 128, 128, 128, 0, 128, 128, 128, 5, 8, 8,
6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 3, 1, 1, 6, 1,
7, 160, 5, 7, 7, 6, 0, 0, 248, 136, 184, 184, 184, 136, 248, 5,
7, 7, 6, 0, 1, 112, 8, 120, 136, 120, 0, 248, 5, 5, 5, 6,
0, 1, 40, 80, 160, 80, 40, 5, 3, 3, 6, 0, 1, 248, 8, 8,
2, 2, 2, 6, 2, 6, 64, 128, 5, 7, 7, 6, 0, 0, 248, 136,
168, 136, 152, 168, 248, 5, 1, 1, 6, 0, 6, 248, 4, 4, 4, 6,
0, 3, 96, 144, 144, 96, 5, 7, 7, 6, 0, 0, 32, 32, 248, 32,
32, 0, 248, 4, 5, 5, 6, 0, 3, 96, 144, 32, 64, 240, 3, 5,
5, 6, 0, 3, 224, 32, 224, 32, 224, 2, 2, 2, 6, 2, 6, 64,
128, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 152, 232, 128, 128, 5,
7, 7, 6, 0, 0, 120, 152, 152, 120, 24, 24, 24, 2, 2, 2, 6,
2, 2, 192, 192, 2, 2, 2, 6, 2, 255, 64, 128, 3, 5, 5, 6,
0, 3, 64, 192, 64, 64, 224, 5, 7, 7, 6, 0, 1, 112, 136, 136,
136, 112, 0, 248, 5, 5, 5, 6, 0, 1, 160, 80, 40, 80, 160, 5,
7, 7, 6, 0, 0, 136, 144, 168, 88, 184, 8, 8, 5, 7, 7, 6,
0, 0, 136, 144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0, 0, 192,
64, 192, 72, 216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 32, 0, 32,
64, 128, 136, 112, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248,
136, 136, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 248, 136, 136,
5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136, 248, 136, 136, 5, 8,
8, 6, 0, 0, 104, 144, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6,
0, 0, 80, 0, 112, 136, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0,
32, 80, 32, 112, 136, 248, 136, 136, 5, 7, 7, 6, 0, 0, 56, 96,
160, 184, 224, 160, 184, 5, 8, 8, 6, 0, 255, 112, 136, 128, 128, 136,
112, 32, 96, 5, 8, 8, 6, 0, 0, 64, 32, 0, 248, 128, 240, 128,
248, 5, 8, 8, 6, 0, 0, 8, 16, 0, 248, 128, 240, 128, 248, 5,
8, 8, 6, 0, 0, 32, 80, 0, 248, 128, 240, 128, 248, 5, 7, 7,
6, 0, 0, 80, 0, 248, 128, 240, 128, 248, 3, 8, 8, 6, 1, 0,
128, 64, 0, 224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64,
0, 224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 224,
64, 64, 64, 224, 3, 7, 7, 6, 1, 0, 160, 0, 224, 64, 64, 64,
224, 5, 7, 7, 6, 0, 0, 112, 72, 72, 232, 72, 72, 112, 5, 8,
8, 6, 0, 0, 104, 144, 0, 136, 200, 168, 152, 136, 5, 8, 8, 6,
0, 0, 64, 32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0,
16, 32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80,
0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112,
136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 80, 0, 112, 136, 136, 136,
136, 112, 5, 5, 5, 6, 0, 1, 136, 80, 32, 80, 136, 5, 8, 8,
6, 0, 255, 16, 112, 168, 168, 168, 168, 112, 64, 5, 8, 8, 6, 0,
0, 64, 32, 136, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16,
32, 136, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0,
136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 80, 0, 136, 136, 136,
136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 136, 80, 32, 32, 32,
32, 5, 9, 9, 6, 0, 255, 192, 64, 112, 72, 72, 112, 64, 64, 224,
4, 8, 8, 6, 1, 255, 96, 144, 144, 160, 144, 144, 224, 128, 5, 8,
8, 6, 0, 0, 64, 32, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6,
0, 0, 16, 32, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0,
32, 80, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 104, 144,
0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0, 0, 80, 0, 112, 8,
120, 136, 120, 5, 8, 8, 6, 0, 0, 32, 80, 32, 112, 8, 120, 136,
120, 5, 6, 6, 6, 0, 0, 208, 40, 120, 160, 168, 80, 5, 6, 6,
6, 0, 255, 112, 128, 136, 112, 32, 96, 5, 8, 8, 6, 0, 0, 64,
32, 0, 112, 136, 248, 128, 112, 5, 8, 8, 6, 0, 0, 16, 32, 0,
112, 136, 248, 128, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136,
248, 128, 112, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 248, 128, 112,
3, 8, 8, 6, 1, 0, 128, 64, 0, 64, 192, 64, 64, 224, 3, 8,
8, 6, 1, 0, 32, 64, 0, 64, 192, 64, 64, 224, 3, 8, 8, 6,
1, 0, 64, 160, 0, 64, 192, 64, 64, 224, 3, 7, 7, 6, 1, 0,
160, 0, 64, 192, 64, 64, 224, 5, 7, 7, 6, 0, 0, 160, 64, 160,
16, 120, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 176, 200, 136,
136, 136, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 136, 136, 112,
5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 136, 136, 112, 5, 8,
8, 6, 0, 0, 32, 80, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6,
0, 0, 104, 144, 0, 112, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0,
80, 0, 112, 136, 136, 136, 112, 5, 5, 5, 6, 0, 1, 32, 0, 248,
0, 32, 5, 7, 7, 6, 0, 255, 16, 112, 168, 168, 168, 112, 64, 5,
8, 8, 6, 0, 0, 64, 32, 0, 136, 136, 136, 152, 104, 5, 8, 8,
6, 0, 0, 16, 32, 0, 136, 136, 136, 152, 104, 5, 8, 8, 6, 0,
0, 32, 80, 0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 80,
0, 136, 136, 136, 152, 104, 5, 9, 9, 6, 0, 255, 16, 32, 0, 136,
136, 136, 248, 8, 112, 4, 7, 7, 6, 1, 255, 192, 64, 96, 80, 96,
64, 224, 5, 8, 8, 6, 0, 255, 80, 0, 136, 136, 136, 120, 8, 112
};
-184
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};
-197
View File
@@ -1,197 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/*
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};
-196
View File
@@ -1,196 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646_5_Cyrillic
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_5_Cyrillic_5x7[2560] U8G_SECTION(".progmem.ISO10646_5_Cyrillic_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 32, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1,
0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80,
136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64,
5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0,
0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128,
128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120,
5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0,
0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136,
136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136,
136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8,
8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6,
0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192,
64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168,
168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6,
0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136,
240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5,
5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0,
112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64,
72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5,
6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136,
168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6,
6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0,
248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64,
64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3,
7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2, 6,
0, 3, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 8, 8, 6, 0, 0,
64, 248, 128, 128, 240, 128, 128, 248, 5, 8, 8, 6, 0, 0, 80, 248,
128, 128, 240, 128, 128, 248, 5, 7, 7, 6, 0, 0, 224, 64, 64, 112,
72, 72, 112, 5, 8, 8, 6, 0, 0, 16, 32, 248, 136, 128, 128, 128,
128, 5, 7, 7, 6, 0, 0, 48, 72, 128, 224, 128, 72, 48, 5, 7,
7, 6, 0, 0, 112, 136, 128, 112, 8, 136, 112, 3, 7, 7, 6, 1,
0, 224, 64, 64, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 160, 0,
224, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 160, 160, 160, 184, 168, 168, 184,
5, 7, 7, 6, 0, 0, 160, 160, 160, 248, 168, 168, 184, 4, 7, 7,
6, 0, 0, 224, 64, 112, 80, 80, 80, 80, 5, 8, 8, 6, 0, 0,
16, 32, 136, 144, 160, 224, 144, 136, 5, 8, 8, 6, 0, 0, 64, 32,
136, 152, 168, 200, 136, 136, 5, 9, 9, 6, 0, 255, 80, 32, 136, 136,
136, 80, 32, 32, 32, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 136,
136, 248, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136,
5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 136, 136, 240, 5, 7, 7,
6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0, 0,
248, 136, 128, 128, 128, 128, 128, 5, 8, 8, 6, 0, 255, 120, 40, 40,
40, 72, 136, 248, 136, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 168, 168, 168, 112, 168, 168, 168, 5,
7, 7, 6, 0, 0, 240, 8, 8, 112, 8, 8, 240, 5, 7, 7, 6,
0, 0, 136, 136, 152, 168, 200, 136, 136, 5, 8, 8, 6, 0, 0, 80,
32, 136, 152, 168, 168, 200, 136, 5, 7, 7, 6, 0, 0, 136, 144, 160,
192, 160, 144, 136, 5, 7, 7, 6, 0, 0, 120, 40, 40, 40, 40, 168,
72, 5, 7, 7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7,
7, 6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 5, 7, 7, 6, 0,
0, 112, 136, 136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 136,
136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 128, 128, 128, 136, 112, 5,
7, 7, 6, 0, 0, 248, 32, 32, 32, 32, 32, 32, 5, 7, 7, 6,
0, 0, 136, 136, 136, 80, 32, 64, 128, 5, 7, 7, 6, 0, 0, 32,
112, 168, 168, 168, 112, 32, 5, 7, 7, 6, 0, 0, 136, 136, 80, 32,
80, 136, 136, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 136, 136, 248,
8, 5, 7, 7, 6, 0, 0, 136, 136, 136, 152, 104, 8, 8, 5, 7,
7, 6, 0, 0, 168, 168, 168, 168, 168, 168, 248, 5, 8, 8, 6, 0,
255, 168, 168, 168, 168, 168, 168, 248, 8, 5, 7, 7, 6, 0, 0, 192,
64, 64, 112, 72, 72, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 200,
168, 168, 200, 5, 7, 7, 6, 0, 0, 128, 128, 128, 240, 136, 136, 240,
5, 7, 7, 6, 0, 0, 112, 136, 8, 56, 8, 136, 112, 5, 7, 7,
6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7, 6, 0, 0,
120, 136, 136, 120, 40, 72, 136, 5, 5, 5, 6, 0, 0, 112, 8, 120,
136, 120, 5, 7, 7, 6, 0, 0, 24, 96, 128, 240, 136, 136, 112, 4,
5, 5, 6, 0, 0, 224, 144, 224, 144, 224, 5, 5, 5, 6, 0, 0,
248, 136, 128, 128, 128, 5, 6, 6, 6, 0, 255, 120, 40, 72, 136, 248,
136, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 5, 5, 6,
0, 0, 168, 168, 112, 168, 168, 5, 5, 5, 6, 0, 0, 240, 8, 48,
8, 240, 5, 5, 5, 6, 0, 0, 136, 152, 168, 200, 136, 5, 7, 7,
6, 0, 0, 80, 32, 136, 152, 168, 200, 136, 4, 5, 5, 6, 0, 0,
144, 160, 192, 160, 144, 5, 5, 5, 6, 0, 0, 248, 40, 40, 168, 72,
5, 5, 5, 6, 0, 0, 136, 216, 168, 136, 136, 5, 5, 5, 6, 0,
0, 136, 136, 248, 136, 136, 5, 5, 5, 6, 0, 0, 112, 136, 136, 136,
112, 5, 5, 5, 6, 0, 0, 248, 136, 136, 136, 136, 5, 6, 6, 6,
0, 255, 240, 136, 136, 240, 128, 128, 5, 5, 5, 6, 0, 0, 112, 128,
128, 136, 112, 5, 5, 5, 6, 0, 0, 248, 32, 32, 32, 32, 5, 6,
6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 0,
32, 112, 168, 168, 112, 32, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80,
136, 5, 6, 6, 6, 0, 255, 136, 136, 136, 136, 248, 8, 5, 5, 5,
6, 0, 0, 136, 136, 248, 8, 8, 5, 5, 5, 6, 0, 0, 168, 168,
168, 168, 248, 5, 6, 6, 6, 0, 255, 168, 168, 168, 168, 248, 8, 5,
5, 5, 6, 0, 0, 192, 64, 112, 72, 112, 5, 5, 5, 6, 0, 0,
136, 136, 200, 168, 200, 3, 5, 5, 6, 1, 0, 128, 128, 192, 160, 192,
5, 5, 5, 6, 0, 0, 112, 136, 56, 136, 112, 5, 5, 5, 6, 0,
0, 144, 168, 232, 168, 144, 5, 5, 5, 6, 0, 0, 120, 136, 120, 40,
72, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248, 128, 112, 5,
7, 7, 6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 5, 9, 9, 6,
0, 255, 64, 224, 64, 64, 120, 72, 72, 72, 16, 5, 8, 8, 6, 0,
0, 16, 32, 0, 248, 136, 128, 128, 128, 5, 5, 5, 6, 0, 0, 112,
136, 96, 136, 112, 5, 5, 5, 6, 0, 0, 112, 128, 112, 8, 240, 1,
7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 7, 7, 6,
1, 0, 160, 0, 64, 64, 64, 64, 64, 3, 8, 8, 6, 1, 255, 32,
0, 32, 32, 32, 32, 160, 64, 5, 5, 5, 6, 0, 0, 160, 160, 184,
168, 184, 5, 5, 5, 6, 0, 0, 160, 160, 248, 168, 184, 5, 6, 6,
6, 0, 0, 64, 224, 64, 120, 72, 72, 4, 8, 8, 6, 0, 0, 16,
32, 0, 144, 160, 192, 160, 144, 5, 8, 8, 6, 0, 0, 64, 32, 0,
136, 152, 168, 200, 136, 5, 9, 9, 6, 0, 255, 80, 32, 0, 136, 136,
136, 120, 8, 112, 5, 6, 6, 6, 0, 255, 136, 136, 136, 136, 248, 32
};
-293
View File
@@ -1,293 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646_CN
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w=11 h=11 x= 2 y=10 dx=12 dy= 0 ascent=10 len=22
Font Bounding box w=12 h=11 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent =10 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_CN[4105] U8G_SECTION(".progmem.ISO10646_CN") = {
0, 12, 11, 0, 254, 7, 1, 146, 3, 33, 32, 255, 255, 10, 255, 7,
255, 0, 0, 0, 6, 0, 10, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
112, 128, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 8, 112, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 0,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 7, 7, 6, 0, 0, 112, 136, 8, 104, 168,
168, 112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6,
0, 0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 240,
136, 136, 136, 136, 136, 240, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128,
5, 7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7,
6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0,
128, 128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16,
16, 16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144,
136, 5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7,
7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0,
0, 136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136,
136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6,
0, 0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248,
32, 32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136,
136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32,
5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7,
6, 0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 64, 128, 248, 3, 7, 7, 6, 0, 0, 224, 128, 128, 128, 128, 128,
224, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6,
0, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32,
80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128,
64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6,
0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112,
128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136,
120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6,
0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112,
136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136,
136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3,
8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7,
6, 1, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0,
192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168,
168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5,
6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136,
136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8,
5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0,
0, 112, 128, 112, 8, 240, 4, 7, 7, 6, 0, 0, 64, 64, 224, 64,
64, 64, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5,
5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136,
136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5,
6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0,
0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128,
64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128,
3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2,
6, 0, 3, 104, 144, 0, 0, 0, 6, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 11, 11, 22, 12, 0, 255, 255,
224, 2, 0, 2, 0, 4, 0, 13, 0, 20, 128, 36, 64, 196, 32, 4,
0, 4, 0, 4, 0, 11, 11, 22, 12, 0, 255, 249, 0, 138, 0, 171,
224, 172, 64, 170, 64, 170, 64, 170, 64, 170, 128, 33, 0, 82, 128, 140,
96, 11, 11, 22, 12, 0, 255, 36, 0, 36, 0, 63, 128, 68, 0, 132,
0, 4, 0, 255, 224, 10, 0, 17, 0, 32, 128, 192, 96, 11, 11, 22,
12, 0, 255, 36, 0, 36, 0, 63, 192, 68, 0, 4, 0, 255, 224, 9,
0, 9, 0, 17, 32, 33, 32, 64, 224, 11, 11, 22, 12, 0, 255, 32,
0, 61, 224, 81, 32, 145, 32, 17, 32, 255, 32, 17, 32, 41, 32, 37,
224, 69, 32, 128, 0, 11, 11, 22, 12, 0, 255, 32, 128, 127, 192, 8,
64, 255, 224, 17, 0, 32, 128, 95, 64, 128, 32, 63, 128, 0, 0, 127,
192, 11, 11, 22, 12, 0, 255, 34, 64, 71, 224, 148, 128, 228, 128, 47,
224, 68, 128, 244, 128, 7, 224, 52, 128, 196, 128, 7, 224, 11, 11, 22,
12, 0, 255, 4, 128, 143, 224, 73, 0, 25, 0, 47, 192, 9, 0, 9,
0, 47, 192, 73, 0, 137, 0, 15, 224, 11, 11, 22, 12, 0, 255, 16,
0, 63, 128, 81, 0, 14, 0, 49, 128, 192, 96, 63, 128, 36, 128, 63,
128, 36, 128, 63, 128, 11, 11, 22, 12, 0, 255, 34, 128, 250, 64, 7,
224, 250, 128, 138, 128, 138, 128, 250, 128, 34, 128, 178, 128, 170, 160, 100,
224, 11, 11, 22, 12, 0, 255, 34, 32, 71, 64, 146, 128, 239, 224, 34,
0, 71, 192, 236, 64, 7, 192, 52, 64, 199, 192, 4, 64, 11, 11, 22,
12, 0, 255, 8, 0, 15, 192, 8, 0, 8, 0, 255, 224, 8, 0, 14,
0, 9, 128, 8, 64, 8, 0, 8, 0, 10, 11, 22, 12, 0, 255, 255,
128, 0, 128, 0, 128, 128, 128, 128, 128, 255, 128, 128, 0, 128, 0, 128,
64, 128, 64, 127, 192, 11, 11, 22, 12, 0, 255, 71, 192, 65, 0, 239,
224, 65, 0, 69, 0, 105, 96, 201, 32, 77, 96, 73, 32, 79, 224, 200,
32, 11, 11, 22, 12, 0, 255, 8, 0, 4, 0, 4, 0, 10, 0, 10,
0, 10, 0, 17, 0, 17, 0, 32, 128, 64, 64, 128, 32, 11, 11, 22,
12, 0, 255, 34, 64, 34, 0, 247, 224, 34, 0, 35, 224, 53, 32, 229,
32, 37, 64, 40, 128, 41, 64, 114, 32, 11, 10, 20, 12, 0, 0, 68,
64, 68, 64, 68, 64, 127, 192, 4, 0, 4, 0, 132, 32, 132, 32, 132,
32, 255, 224, 11, 11, 22, 12, 0, 255, 4, 0, 0, 0, 127, 192, 4,
0, 4, 0, 4, 0, 127, 192, 4, 0, 4, 0, 4, 0, 255, 224, 11,
11, 22, 12, 0, 255, 255, 224, 17, 0, 1, 192, 254, 0, 72, 128, 37,
0, 4, 0, 255, 224, 21, 0, 36, 128, 196, 96, 11, 11, 22, 12, 0,
255, 17, 0, 127, 192, 68, 64, 127, 192, 68, 64, 127, 192, 4, 0, 255,
224, 4, 0, 4, 0, 4, 0, 9, 11, 22, 12, 0, 255, 16, 0, 255,
128, 128, 128, 128, 128, 255, 128, 128, 128, 128, 128, 255, 128, 128, 128, 128,
128, 255, 128, 11, 11, 22, 12, 0, 255, 113, 0, 1, 0, 3, 224, 249,
32, 33, 32, 65, 32, 81, 32, 137, 32, 250, 32, 2, 32, 4, 192, 11,
11, 22, 12, 0, 255, 127, 192, 17, 0, 17, 0, 17, 0, 17, 0, 255,
224, 17, 0, 17, 0, 33, 0, 33, 0, 65, 0, 11, 11, 22, 12, 0,
255, 33, 0, 34, 0, 244, 64, 87, 224, 80, 32, 87, 192, 148, 64, 84,
64, 36, 64, 87, 192, 148, 64, 11, 11, 22, 12, 0, 255, 17, 0, 10,
0, 127, 192, 4, 0, 4, 0, 255, 224, 4, 0, 10, 0, 17, 0, 32,
128, 192, 96, 10, 11, 22, 12, 0, 255, 95, 192, 0, 64, 132, 64, 132,
64, 191, 64, 132, 64, 140, 64, 148, 64, 164, 64, 140, 64, 129, 192, 11,
11, 22, 12, 0, 255, 36, 0, 39, 192, 36, 0, 36, 0, 255, 224, 0,
0, 20, 64, 36, 128, 71, 0, 12, 0, 112, 0, 11, 11, 22, 12, 0,
255, 36, 128, 4, 128, 15, 192, 228, 128, 36, 128, 63, 224, 36, 128, 36,
128, 40, 128, 80, 0, 143, 224, 11, 11, 22, 12, 0, 255, 8, 0, 8,
0, 255, 128, 136, 128, 136, 128, 255, 128, 136, 128, 136, 128, 255, 160, 136,
32, 7, 224, 11, 11, 22, 12, 0, 255, 39, 128, 36, 128, 244, 128, 36,
128, 116, 128, 108, 128, 164, 128, 36, 128, 36, 160, 40, 160, 48, 96, 10,
11, 22, 12, 0, 255, 255, 192, 128, 64, 128, 64, 158, 64, 146, 64, 146,
64, 158, 64, 128, 64, 128, 64, 255, 192, 128, 64, 11, 11, 22, 12, 0,
255, 127, 192, 68, 0, 95, 192, 80, 64, 95, 192, 80, 64, 95, 192, 66,
0, 74, 128, 82, 64, 166, 32, 11, 11, 22, 12, 0, 255, 4, 0, 7,
224, 4, 0, 127, 192, 64, 64, 64, 64, 64, 64, 127, 192, 0, 0, 82,
64, 137, 32, 11, 11, 22, 12, 0, 255, 71, 128, 36, 128, 4, 128, 4,
128, 232, 96, 32, 0, 47, 192, 36, 64, 34, 128, 49, 0, 38, 192, 11,
11, 22, 12, 0, 255, 127, 192, 74, 64, 127, 192, 4, 0, 255, 224, 4,
0, 63, 128, 32, 128, 36, 128, 36, 128, 255, 224, 11, 11, 22, 12, 0,
255, 34, 0, 79, 224, 72, 32, 79, 224, 200, 0, 79, 224, 74, 160, 90,
160, 111, 224, 74, 160, 72, 96, 11, 11, 22, 12, 0, 255, 243, 192, 36,
64, 42, 128, 241, 0, 34, 128, 101, 224, 114, 32, 165, 64, 32, 128, 35,
0, 44, 0, 11, 11, 22, 12, 0, 255, 4, 0, 255, 224, 128, 32, 0,
0, 255, 224, 4, 0, 36, 0, 39, 192, 36, 0, 84, 0, 143, 224, 11,
11, 22, 12, 0, 255, 115, 224, 16, 128, 81, 0, 35, 224, 250, 32, 42,
160, 34, 160, 34, 160, 32, 128, 33, 64, 98, 32, 11, 11, 22, 12, 0,
255, 34, 0, 247, 128, 34, 128, 54, 128, 226, 160, 37, 160, 36, 96, 104,
32, 0, 0, 82, 64, 137, 32, 11, 11, 22, 12, 0, 255, 115, 192, 66,
0, 66, 0, 123, 224, 74, 64, 74, 64, 122, 64, 74, 64, 66, 64, 68,
64, 136, 64, 11, 11, 22, 12, 0, 255, 8, 0, 255, 224, 8, 0, 31,
192, 48, 64, 95, 192, 144, 64, 31, 192, 16, 64, 16, 64, 16, 192, 11,
11, 22, 12, 0, 255, 2, 0, 127, 224, 66, 0, 66, 0, 95, 192, 66,
0, 71, 0, 74, 128, 82, 64, 98, 32, 130, 0, 11, 11, 22, 12, 0,
255, 243, 192, 150, 64, 145, 128, 166, 96, 161, 0, 151, 192, 145, 0, 149,
0, 231, 224, 129, 0, 129, 0, 11, 11, 22, 12, 0, 255, 15, 128, 136,
128, 79, 128, 8, 128, 143, 128, 64, 0, 31, 192, 53, 64, 85, 64, 149,
64, 63, 224, 11, 11, 22, 12, 0, 255, 39, 224, 32, 128, 248, 128, 32,
128, 32, 128, 56, 128, 224, 128, 32, 128, 32, 128, 32, 128, 97, 128, 11,
11, 22, 12, 0, 255, 31, 224, 145, 0, 87, 192, 20, 64, 23, 192, 148,
64, 87, 192, 17, 0, 85, 64, 153, 32, 35, 0, 11, 11, 22, 12, 0,
255, 32, 128, 39, 224, 242, 64, 33, 128, 34, 64, 52, 32, 226, 64, 34,
64, 34, 64, 34, 64, 100, 64, 11, 11, 22, 12, 0, 255, 65, 0, 65,
0, 79, 224, 233, 32, 73, 32, 73, 32, 111, 224, 201, 32, 73, 32, 73,
32, 207, 224, 11, 11, 22, 12, 0, 255, 33, 0, 241, 0, 79, 224, 169,
32, 249, 32, 47, 224, 57, 32, 233, 32, 41, 32, 47, 224, 40, 32, 11,
11, 22, 12, 0, 255, 143, 224, 73, 32, 9, 32, 203, 160, 73, 32, 79,
224, 72, 32, 75, 160, 74, 160, 107, 160, 80, 224, 11, 11, 22, 12, 0,
255, 127, 192, 4, 0, 68, 64, 36, 64, 36, 128, 4, 0, 255, 224, 4,
0, 4, 0, 4, 0, 4, 0, 11, 11, 22, 12, 0, 255, 130, 0, 66,
0, 31, 224, 194, 0, 95, 192, 82, 64, 95, 192, 71, 0, 74, 128, 82,
64, 191, 224, 11, 11, 22, 12, 0, 255, 4, 0, 127, 224, 72, 128, 127,
224, 72, 128, 79, 128, 64, 0, 95, 192, 72, 64, 71, 128, 152, 96, 11,
11, 22, 12, 0, 255, 1, 0, 239, 224, 161, 0, 164, 64, 175, 224, 164,
64, 175, 224, 169, 32, 233, 32, 2, 128, 12, 96, 11, 11, 22, 12, 0,
255, 20, 192, 246, 160, 188, 96, 167, 128, 168, 128, 191, 224, 169, 32, 239,
224, 9, 32, 15, 224, 9, 32, 11, 11, 22, 12, 0, 255, 127, 128, 64,
128, 66, 128, 98, 128, 84, 128, 72, 128, 72, 128, 84, 160, 98, 160, 64,
96, 128, 32, 11, 11, 22, 12, 0, 255, 4, 0, 127, 224, 64, 32, 127,
224, 64, 0, 125, 224, 84, 32, 76, 160, 84, 96, 100, 160, 141, 96, 11,
11, 22, 12, 0, 255, 130, 0, 95, 224, 4, 0, 8, 64, 159, 224, 64,
32, 10, 128, 10, 128, 74, 160, 146, 160, 34, 96, 11, 11, 22, 12, 0,
255, 65, 0, 79, 224, 232, 32, 66, 128, 68, 64, 104, 32, 199, 192, 65,
0, 65, 0, 65, 0, 207, 224, 11, 11, 22, 12, 0, 255, 80, 32, 125,
32, 145, 32, 255, 32, 17, 32, 125, 32, 85, 32, 85, 32, 84, 32, 92,
32, 16, 224, 11, 11, 22, 12, 0, 255, 63, 128, 32, 128, 63, 128, 32,
128, 255, 224, 72, 0, 123, 192, 73, 64, 121, 64, 72, 128, 251, 96, 11,
11, 22, 12, 0, 255, 4, 0, 4, 0, 4, 0, 36, 128, 36, 64, 68,
64, 68, 32, 132, 32, 4, 0, 4, 0, 28, 0, 11, 11, 22, 12, 0,
255, 4, 0, 4, 0, 4, 0, 255, 224, 4, 0, 10, 0, 10, 0, 17,
0, 17, 0, 32, 128, 192, 96, 9, 10, 20, 10, 0, 0, 136, 128, 73,
0, 8, 0, 255, 128, 0, 128, 0, 128, 127, 128, 0, 128, 0, 128, 255,
128, 11, 11, 22, 12, 0, 255, 33, 0, 18, 0, 255, 224, 0, 0, 120,
128, 74, 128, 122, 128, 74, 128, 122, 128, 72, 128, 89, 128, 11, 11, 22,
12, 0, 255, 39, 192, 0, 0, 0, 0, 239, 224, 33, 0, 34, 0, 36,
64, 47, 224, 32, 32, 80, 0, 143, 224, 11, 11, 22, 12, 0, 255, 32,
128, 39, 0, 249, 0, 33, 192, 119, 0, 33, 0, 249, 224, 39, 0, 113,
32, 169, 32, 32, 224, 11, 11, 22, 12, 0, 255, 16, 64, 16, 64, 253,
224, 16, 64, 56, 192, 53, 64, 82, 64, 148, 64, 16, 64, 16, 64, 16,
192, 11, 11, 22, 12, 0, 255, 0, 64, 248, 64, 11, 224, 8, 64, 136,
64, 82, 64, 81, 64, 33, 64, 80, 64, 72, 64, 137, 192, 10, 11, 22,
12, 0, 255, 132, 0, 132, 64, 132, 128, 245, 0, 134, 0, 132, 0, 132,
0, 148, 0, 164, 64, 196, 64, 131, 192, 11, 11, 22, 12, 0, 255, 17,
32, 125, 0, 17, 0, 255, 224, 41, 0, 253, 64, 73, 64, 124, 128, 8,
160, 253, 96, 10, 32, 11, 11, 22, 12, 0, 255, 23, 192, 36, 64, 36,
64, 103, 192, 161, 0, 47, 224, 33, 0, 35, 128, 37, 64, 41, 32, 33,
0, 11, 11, 22, 12, 0, 255, 8, 0, 255, 224, 16, 0, 39, 192, 32,
128, 97, 0, 175, 224, 33, 0, 33, 0, 33, 0, 35, 0, 11, 11, 22,
12, 0, 255, 36, 0, 47, 224, 180, 0, 164, 128, 164, 160, 170, 192, 42,
128, 40, 128, 41, 64, 50, 64, 36, 32, 11, 11, 22, 12, 0, 255, 127,
224, 128, 0, 63, 192, 32, 64, 63, 192, 16, 0, 31, 192, 16, 64, 40,
128, 71, 0, 56, 224, 11, 11, 22, 12, 0, 255, 127, 224, 64, 0, 64,
0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 128,
0, 11, 11, 22, 12, 0, 255, 255, 224, 4, 0, 127, 192, 68, 64, 127,
192, 68, 64, 127, 192, 68, 0, 36, 0, 24, 0, 231, 224, 11, 11, 22,
12, 0, 255, 17, 224, 253, 0, 69, 0, 41, 224, 253, 64, 17, 64, 125,
64, 17, 64, 85, 64, 146, 64, 52, 64, 11, 11, 22, 12, 0, 255, 33,
0, 95, 224, 64, 0, 207, 192, 64, 0, 79, 192, 64, 0, 79, 192, 72,
64, 79, 192, 72, 64, 11, 11, 22, 12, 0, 255, 4, 0, 127, 192, 64,
64, 127, 192, 64, 64, 127, 192, 64, 64, 127, 192, 4, 64, 82, 32, 191,
160, 11, 11, 22, 12, 0, 255, 127, 192, 68, 64, 127, 192, 68, 64, 127,
192, 4, 0, 27, 0, 224, 224, 17, 0, 17, 0, 97, 0, 11, 11, 22,
12, 0, 255, 255, 224, 4, 0, 8, 0, 127, 224, 73, 32, 79, 32, 73,
32, 79, 32, 73, 32, 73, 32, 127, 224, 11, 11, 22, 12, 0, 255, 253,
224, 86, 64, 121, 64, 56, 128, 85, 64, 146, 32, 255, 224, 4, 0, 39,
192, 36, 0, 255, 224, 11, 11, 22, 12, 0, 255, 251, 128, 82, 0, 123,
224, 18, 64, 250, 64, 20, 64, 63, 128, 32, 128, 63, 128, 32, 128, 63,
128, 11, 11, 22, 12, 0, 255, 31, 224, 32, 0, 39, 192, 100, 64, 167,
192, 32, 0, 47, 224, 40, 32, 39, 192, 33, 0, 35, 0, 11, 11, 22,
12, 0, 255, 243, 224, 130, 32, 130, 32, 250, 32, 130, 32, 130, 32, 138,
32, 178, 32, 194, 224, 2, 0, 2, 0, 11, 11, 22, 12, 0, 255, 36,
128, 70, 160, 149, 192, 228, 128, 39, 224, 68, 128, 245, 192, 6, 160, 52,
128, 196, 128, 7, 224, 11, 11, 22, 12, 0, 255, 39, 192, 65, 0, 135,
224, 224, 32, 34, 128, 69, 128, 242, 128, 15, 224, 48, 128, 193, 64, 2,
32, 11, 11, 22, 12, 0, 255, 2, 0, 2, 0, 34, 0, 35, 192, 34,
0, 34, 0, 34, 0, 34, 0, 34, 0, 34, 0, 255, 224, 9, 11, 22,
12, 0, 255, 8, 0, 8, 0, 255, 128, 136, 128, 136, 128, 136, 128, 255,
128, 136, 128, 136, 128, 136, 128, 255, 128, 11, 11, 22, 12, 0, 255, 33,
0, 83, 160, 65, 0, 247, 224, 81, 0, 83, 192, 86, 64, 83, 192, 90,
64, 83, 192, 66, 64, 11, 11, 22, 12, 0, 255, 127, 192, 4, 0, 4,
0, 4, 0, 255, 224, 10, 0, 10, 0, 18, 0, 34, 32, 66, 32, 129,
224, 11, 11, 22, 12, 0, 255, 17, 0, 33, 0, 47, 224, 97, 0, 163,
128, 35, 128, 37, 64, 37, 64, 41, 32, 33, 0, 33, 0, 11, 11, 22,
12, 0, 255, 247, 224, 148, 32, 244, 32, 151, 224, 148, 128, 244, 128, 151,
224, 148, 128, 244, 160, 150, 96, 4, 32, 11, 11, 22, 12, 0, 255, 123,
224, 148, 128, 4, 0, 127, 192, 4, 0, 255, 224, 1, 0, 255, 224, 33,
0, 17, 0, 7, 0, 11, 11, 22, 12, 0, 255, 33, 0, 71, 192, 145,
0, 47, 224, 96, 128, 175, 224, 32, 128, 36, 128, 34, 128, 32, 128, 35,
128, 11, 11, 22, 12, 0, 255, 39, 192, 36, 64, 247, 192, 46, 224, 42,
160, 62, 224, 225, 0, 47, 224, 35, 128, 37, 64, 105, 32, 11, 11, 22,
12, 0, 255, 20, 0, 39, 224, 42, 0, 98, 0, 163, 192, 34, 0, 34,
0, 35, 224, 34, 0, 34, 0, 34, 0
};
-205
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};
-192
View File
@@ -1,192 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646_Kana
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 8 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 8
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_Kana_5x7[2482] U8G_SECTION(".progmem.ISO10646_Kana_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 32, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1,
0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80,
136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64,
5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0,
0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128,
128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120,
5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0,
0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136,
136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136,
136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8,
8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6,
0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192,
64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168,
168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6,
0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136,
240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5,
5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0,
112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64,
72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5,
6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136,
168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6,
6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0,
248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64,
64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3,
7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2, 6,
0, 3, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 3, 3, 6, 0, 1,
248, 0, 248, 4, 4, 4, 6, 0, 0, 240, 16, 96, 64, 5, 6, 6,
6, 0, 0, 248, 8, 40, 48, 32, 64, 3, 4, 4, 6, 1, 0, 32,
64, 192, 64, 4, 6, 6, 6, 0, 0, 16, 32, 96, 160, 32, 32, 4,
4, 4, 6, 0, 0, 32, 240, 144, 32, 5, 6, 6, 6, 0, 0, 32,
248, 136, 8, 16, 32, 3, 4, 4, 6, 1, 0, 224, 64, 64, 224, 5,
5, 5, 6, 0, 0, 248, 32, 32, 32, 248, 4, 4, 4, 6, 0, 0,
32, 240, 96, 160, 5, 6, 6, 6, 0, 0, 16, 248, 48, 80, 144, 16,
5, 6, 6, 6, 0, 0, 64, 248, 72, 72, 72, 144, 5, 8, 8, 6,
0, 0, 40, 0, 64, 248, 72, 72, 72, 144, 5, 6, 6, 6, 0, 0,
32, 248, 32, 248, 32, 32, 5, 8, 8, 6, 0, 0, 40, 0, 32, 248,
32, 248, 32, 32, 4, 5, 5, 6, 0, 0, 112, 144, 16, 32, 192, 5,
7, 7, 6, 0, 0, 40, 0, 112, 144, 16, 32, 192, 5, 6, 6, 6,
0, 0, 64, 120, 144, 16, 16, 32, 5, 8, 8, 6, 0, 0, 40, 0,
64, 120, 144, 16, 16, 32, 5, 5, 5, 6, 0, 0, 248, 8, 8, 8,
248, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 8, 8, 248, 5, 6,
6, 6, 0, 0, 80, 248, 80, 16, 32, 64, 5, 8, 8, 6, 0, 0,
40, 0, 80, 248, 80, 16, 32, 64, 5, 5, 5, 6, 0, 0, 192, 8,
200, 16, 224, 5, 7, 7, 6, 0, 0, 40, 0, 192, 8, 200, 16, 224,
5, 5, 5, 6, 0, 0, 248, 16, 32, 80, 136, 5, 7, 7, 6, 0,
0, 40, 0, 248, 16, 32, 80, 136, 5, 6, 6, 6, 0, 0, 64, 248,
72, 80, 64, 56, 5, 8, 8, 6, 0, 0, 40, 0, 64, 248, 72, 80,
64, 56, 5, 5, 5, 6, 0, 0, 136, 136, 72, 16, 96, 5, 7, 7,
6, 0, 0, 40, 0, 136, 136, 72, 16, 96, 5, 5, 5, 6, 0, 0,
120, 72, 168, 16, 96, 5, 7, 7, 6, 0, 0, 40, 0, 120, 72, 168,
16, 96, 5, 6, 6, 6, 0, 0, 16, 224, 32, 248, 32, 64, 5, 8,
8, 6, 0, 0, 40, 0, 16, 224, 32, 248, 32, 64, 5, 4, 4, 6,
0, 0, 168, 168, 8, 48, 5, 5, 5, 6, 0, 0, 168, 168, 8, 16,
32, 5, 7, 7, 6, 0, 0, 40, 0, 168, 168, 8, 16, 32, 5, 6,
6, 6, 0, 0, 112, 0, 248, 32, 32, 64, 5, 8, 8, 6, 0, 0,
40, 0, 112, 0, 248, 32, 32, 64, 3, 6, 6, 6, 1, 0, 128, 128,
192, 160, 128, 128, 4, 8, 8, 6, 1, 0, 80, 0, 128, 128, 192, 160,
128, 128, 5, 6, 6, 6, 0, 0, 32, 248, 32, 32, 64, 128, 5, 5,
5, 6, 0, 0, 112, 0, 0, 0, 248, 5, 5, 5, 6, 0, 0, 248,
8, 80, 32, 208, 5, 6, 6, 6, 0, 0, 32, 248, 16, 32, 112, 168,
3, 6, 6, 6, 1, 0, 32, 32, 32, 32, 64, 128, 5, 5, 5, 6,
0, 0, 16, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 40, 0, 16,
136, 136, 136, 136, 5, 8, 8, 6, 0, 0, 24, 24, 0, 16, 136, 136,
136, 136, 5, 6, 6, 6, 0, 0, 128, 128, 248, 128, 128, 120, 5, 7,
7, 6, 0, 0, 40, 128, 128, 248, 128, 128, 120, 5, 7, 7, 6, 0,
0, 24, 152, 128, 248, 128, 128, 120, 5, 5, 5, 6, 0, 0, 248, 8,
8, 16, 96, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 8, 16, 96,
5, 8, 8, 6, 0, 0, 24, 24, 0, 248, 8, 8, 16, 96, 5, 4,
4, 6, 0, 1, 64, 160, 16, 8, 5, 6, 6, 6, 0, 1, 40, 0,
64, 160, 16, 8, 5, 6, 6, 6, 0, 1, 24, 24, 64, 160, 16, 8,
5, 6, 6, 6, 0, 0, 32, 248, 32, 168, 168, 32, 5, 8, 8, 6,
0, 0, 40, 0, 32, 248, 32, 168, 168, 32, 5, 8, 8, 6, 0, 0,
24, 24, 32, 248, 32, 168, 168, 32, 5, 5, 5, 6, 0, 0, 248, 8,
80, 32, 16, 4, 5, 5, 6, 1, 0, 224, 0, 224, 0, 240, 5, 5,
5, 6, 0, 0, 32, 64, 136, 248, 8, 5, 5, 5, 6, 0, 0, 8,
40, 16, 40, 192, 5, 5, 5, 6, 0, 0, 248, 64, 248, 64, 56, 5,
4, 4, 6, 0, 0, 64, 248, 80, 64, 5, 6, 6, 6, 0, 0, 64,
248, 72, 80, 64, 64, 4, 4, 4, 6, 0, 0, 96, 32, 32, 240, 5,
5, 5, 6, 0, 0, 112, 16, 16, 16, 248, 4, 5, 5, 6, 0, 0,
240, 16, 240, 16, 240, 5, 5, 5, 6, 0, 0, 248, 8, 248, 8, 248,
5, 6, 6, 6, 0, 0, 112, 0, 248, 8, 16, 32, 4, 6, 6, 6,
0, 0, 144, 144, 144, 144, 16, 32, 5, 5, 5, 6, 0, 0, 32, 160,
168, 168, 176, 4, 5, 5, 6, 0, 0, 128, 128, 144, 160, 192, 5, 5,
5, 6, 0, 0, 248, 136, 136, 136, 248, 4, 4, 4, 6, 0, 0, 240,
144, 16, 32, 5, 5, 5, 6, 0, 0, 248, 136, 8, 16, 32, 5, 6,
6, 6, 0, 0, 16, 248, 80, 80, 248, 16, 5, 5, 5, 6, 0, 0,
248, 8, 48, 32, 248, 5, 5, 5, 6, 0, 0, 248, 8, 248, 8, 48,
5, 5, 5, 6, 0, 0, 192, 8, 8, 16, 224, 5, 8, 8, 6, 0,
0, 40, 0, 32, 248, 136, 8, 16, 32, 4, 4, 4, 6, 0, 0, 64,
240, 80, 160, 4, 4, 4, 6, 0, 0, 64, 240, 32, 64, 5, 7, 7,
6, 0, 0, 40, 0, 248, 136, 8, 16, 96, 5, 8, 8, 6, 0, 0,
40, 0, 16, 248, 80, 80, 248, 16, 5, 7, 7, 6, 0, 0, 40, 0,
248, 8, 48, 32, 248, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 248,
8, 48, 2, 2, 2, 6, 2, 2, 192, 192, 5, 1, 1, 6, 0, 2,
248, 5, 4, 4, 6, 0, 1, 128, 96, 16, 8, 5, 5, 5, 6, 0,
1, 40, 128, 96, 16, 8, 5, 6, 6, 6, 0, 0, 248, 8, 8, 8,
8, 8
};
-45
View File
@@ -1,45 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: Marlin_symbols
Copyright: Created with Fony 1.4.7
Capital A Height: 0, '1' Height: 0
Calculated Max Values w= 5 h=10 x= 0 y= 3 dx= 6 dy= 0 ascent= 8 len=10
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
Pure Font ascent = 0 descent= 0
X Font ascent = 0 descent= 0
Max Font ascent = 8 descent=-2
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t Marlin_symbols[140] U8G_SECTION(".progmem.Marlin_symbols") = {
0, 6, 9, 0, 254, 0, 0, 0, 0, 0, 1, 9, 0, 8, 254, 0,
0, 5, 8, 8, 6, 0, 0, 64, 240, 200, 136, 136, 152, 120, 16, 5,
8, 8, 6, 0, 0, 192, 248, 136, 136, 136, 136, 136, 248, 5, 5, 5,
6, 0, 1, 32, 48, 248, 48, 32, 5, 8, 8, 6, 0, 0, 32, 112,
248, 32, 32, 32, 32, 224, 5, 9, 9, 6, 0, 255, 32, 112, 168, 168,
184, 136, 136, 112, 32, 5, 9, 9, 6, 0, 255, 224, 128, 192, 176, 168,
40, 48, 40, 40, 5, 9, 9, 6, 0, 255, 248, 168, 136, 136, 136, 136,
136, 168, 248, 5, 10, 10, 6, 0, 254, 32, 80, 80, 80, 80, 136, 168,
168, 136, 112, 3, 3, 3, 6, 0, 3, 64, 160, 64
};
-206
View File
@@ -1,206 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Endstop Interrupts
*
* Without endstop interrupts the endstop pins must be polled continually in
* the stepper-ISR via endstops.update(), most of the time finding no change.
* With this feature endstops.update() is called only when we know that at
* least one endstop has changed state, saving valuable CPU cycles.
*
* This feature only works when all used endstop pins can generate either an
* 'external interrupt' or a 'pin change interrupt'.
*
* Test whether pins issue interrupts on your board by flashing 'pin_interrupt_test.ino'.
* (Located in Marlin/buildroot/share/pin_interrupt_test/pin_interrupt_test.ino)
*/
#ifndef _ENDSTOP_INTERRUPTS_H_
#define _ENDSTOP_INTERRUPTS_H_
#include "macros.h"
/**
* Patch for pins_arduino.h (...\Arduino\hardware\arduino\avr\variants\mega\pins_arduino.h)
*
* These macros for the Arduino MEGA do not include the two connected pins on Port J (D13, D14).
* So we extend them here because these are the normal pins for Y_MIN and Y_MAX on RAMPS.
* There are more PCI-enabled processor pins on Port J, but they are not connected to Arduino MEGA.
*/
#if defined(ARDUINO_AVR_MEGA2560) || defined(ARDUINO_AVR_MEGA)
#undef digitalPinToPCICR
#define digitalPinToPCICR(p) ( WITHIN(p, 10, 15) || \
WITHIN(p, 50, 53) || \
WITHIN(p, 62, 69) ? &PCICR : (uint8_t*)0 )
#undef digitalPinToPCICRbit
#define digitalPinToPCICRbit(p) ( WITHIN(p, 10, 13) || WITHIN(p, 50, 53) ? 0 : \
WITHIN(p, 14, 15) ? 1 : \
WITHIN(p, 62, 69) ? 2 : \
0 )
#undef digitalPinToPCMSK
#define digitalPinToPCMSK(p) ( WITHIN(p, 10, 13) || WITHIN(p, 50, 53) ? &PCMSK0 : \
WITHIN(p, 14, 15) ? &PCMSK1 : \
WITHIN(p, 62, 69) ? &PCMSK2 : \
(uint8_t *)0 )
#undef digitalPinToPCMSKbit
#define digitalPinToPCMSKbit(p) ( WITHIN(p, 10, 13) ? ((p) - 6) : \
(p) == 14 || (p) == 51 ? 2 : \
(p) == 15 || (p) == 52 ? 1 : \
(p) == 50 ? 3 : \
(p) == 53 ? 0 : \
WITHIN(p, 62, 69) ? ((p) - 62) : \
0 )
#endif
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
// Must be reset to 0 by the test function when finished.
// Install Pin change interrupt for a pin. Can be called multiple times.
void pciSetup(byte pin) {
SBI(*digitalPinToPCMSK(pin), digitalPinToPCMSKbit(pin)); // enable pin
SBI(PCIFR, digitalPinToPCICRbit(pin)); // clear any outstanding interrupt
SBI(PCICR, digitalPinToPCICRbit(pin)); // enable interrupt for the group
}
// This is what is really done inside the interrupts.
FORCE_INLINE void endstop_ISR_worker( void ) {
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
}
// Use one Routine to handle each group
// One ISR for all EXT-Interrupts
void endstop_ISR(void) { endstop_ISR_worker(); }
// Handlers for pin change interrupts
#ifdef PCINT0_vect
ISR(PCINT0_vect) { endstop_ISR_worker(); }
#endif
#ifdef PCINT1_vect
ISR(PCINT1_vect) { endstop_ISR_worker(); }
#endif
#ifdef PCINT2_vect
ISR(PCINT2_vect) { endstop_ISR_worker(); }
#endif
#ifdef PCINT3_vect
ISR(PCINT3_vect) { endstop_ISR_worker(); }
#endif
void setup_endstop_interrupts( void ) {
#if HAS_X_MAX
#if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT) // if pin has an external interrupt
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE); // assign it
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(X_MAX_PIN) != NULL, "X_MAX_PIN is not interrupt-capable"); // if pin has no pin change interrupt - error
pciSetup(X_MAX_PIN); // assign it
#endif
#endif
#if HAS_X_MIN
#if (digitalPinToInterrupt(X_MIN_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(X_MIN_PIN) != NULL, "X_MIN_PIN is not interrupt-capable");
pciSetup(X_MIN_PIN);
#endif
#endif
#if HAS_Y_MAX
#if (digitalPinToInterrupt(Y_MAX_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Y_MAX_PIN) != NULL, "Y_MAX_PIN is not interrupt-capable");
pciSetup(Y_MAX_PIN);
#endif
#endif
#if HAS_Y_MIN
#if (digitalPinToInterrupt(Y_MIN_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Y_MIN_PIN) != NULL, "Y_MIN_PIN is not interrupt-capable");
pciSetup(Y_MIN_PIN);
#endif
#endif
#if HAS_Z_MAX
#if (digitalPinToInterrupt(Z_MAX_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z_MAX_PIN) != NULL, "Z_MAX_PIN is not interrupt-capable");
pciSetup(Z_MAX_PIN);
#endif
#endif
#if HAS_Z_MIN
#if (digitalPinToInterrupt(Z_MIN_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z_MIN_PIN) != NULL, "Z_MIN_PIN is not interrupt-capable");
pciSetup(Z_MIN_PIN);
#endif
#endif
#if HAS_Z2_MAX
#if (digitalPinToInterrupt(Z2_MAX_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z2_MAX_PIN) != NULL, "Z2_MAX_PIN is not interrupt-capable");
pciSetup(Z2_MAX_PIN);
#endif
#endif
#if HAS_Z2_MIN
#if (digitalPinToInterrupt(Z2_MIN_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z2_MIN_PIN) != NULL, "Z2_MIN_PIN is not interrupt-capable");
pciSetup(Z2_MIN_PIN);
#endif
#endif
#if HAS_Z_MIN_PROBE_PIN
#if (digitalPinToInterrupt(Z_MIN_PROBE_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z_MIN_PROBE_PIN) != NULL, "Z_MIN_PROBE_PIN is not interrupt-capable");
pciSetup(Z_MIN_PROBE_PIN);
#endif
#endif
// If we arrive here without raising an assertion, each pin has either an EXT-interrupt or a PCI.
}
#endif // _ENDSTOP_INTERRUPTS_H_
-458
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()
-102
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
-172
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
File diff suppressed because it is too large Load Diff
@@ -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
@@ -1,60 +0,0 @@
# Felix 2.0/3.0 Configuration for Marlin Firmware
Bringing silky smooth prints to Felix.
## Build HOWTO
- Install the latest non-beta Arduino software IDE/toolset: http://www.arduino.cc/en/Main/Software
- Download the Marlin firmware
- [Latest developement version](https://github.com/MarlinFirmware/Marlin/tree/Development)
- [Stable version](https://github.com/MarlinFirmware/Marlin/tree/Development)
- In both cases use the "Download Zip" button on the right.
```
cd Marlin/Marlin
cp example_configurations/Felix/Configuration_adv.h .
```
The next step depends on your setup:
### Single Extruder Configuration
cp example_configurations/Felix/Configuration.h .
### Dual Extruder Configuration
cp example_configurations/Felix/DUAL/Configuration.h Configuration.h
### Compile Firmware
- Start the Arduino IDE.
- Select Tools -> Board -> Arduino Mega 2560
- Select the correct serial port in Tools -> Serial Port (usually /dev/ttyUSB0)
- Open Marlin.pde or .ino
- Click the Verify/Compile button
### Flash Firmware
#### Connected directly via USB
- Click the Upload button. If all goes well the firmware is uploading
#### Remote update
Find the latest Arduino build:
ls -altr /tmp/
drwxr-xr-x 5 chrono users 12288 Mar 3 21:41 build6072035599686630843.tmp
Copy the firmware to your printer host:
scp /tmp/build6072035599686630843.tmp/Marlin.cpp.hex a.b.c.d:/tmp/
Connect to your printer host via ssh, stop Octoprint or any other service that may block your USB device and make sure you have avrdude installed, then run:
avrdude -C/etc/avrdude.conf -v -v -v -patmega2560 -cwiring -P/dev/ttyUSB0 \
-b115200 -D -Uflash:w:/tmp/Marlin.cpp.hex:i
## Acknowledgements
Mashed together and tested on https://apollo.open-resource.org/mission:resources:picoprint based on collaborative teamwork of @andrewsil1 and @thinkyhead.
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
@@ -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.
@@ -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
@@ -1,20 +0,0 @@
# Example Configuration for Vellemann [K8200](http://www.k8200.eu/)
* Configuration files for **Vellemann K8200** (with [VM8201](http://www.vellemanprojects.eu/products/view/?id=416158) - LCD Option for K8200)
* K8200 is a 3Drag clone - configuration should work with 3Drag http://reprap.org/wiki/3drag, too. Please report.
* updated manually with parameters from genuine Vellemann Firmware "firmware_k8200_marlinv2" based on the recent development branch
* VM8201 uses "DISPLAY_CHARSET_HD44870 JAPANESE" and "ULTIMAKERCONTROLLER"
* german (de) translation with umlaut is supported now - thanks to @AnHardt for the great hardware based umlaut support
I [@CONSULitAS](https://github.com/CONSULitAS) tested the changes on my K8200 with 20x4-LCD and Arduino 1.6.12 for Mac (SD library added to IDE manually), 2016-11-18 - everything works well.
**Source for genuine [Vellemann Firmware](http://www.k8200.eu/support/downloads/)**
* V2.1.1 (for z axis upgrade, date branched: 2013-06-05): [firmware_k8200_v2.1.1.zip](http://www.k8200.eu/downloads/files/downloads/firmware_k8200_v2.1.1.zip)
* see also https://github.com/CONSULitAS/Marlin-K8200/tree/Vellemann_firmware_k8200_v2.1.1.zip
* V2 (with LCD/SD-Support, date branched: 2013-06-05): [firmware_k8200_marlinv2.zip](http://www.k8200.eu/downloads/files/downloads/firmware_k8200_marlinv2.zip)
* see also https://github.com/CONSULitAS/Marlin-K8200/tree/Vellemann_firmware_k8200_marlinv2.zip
* V1 (without LCD/SD-Support, date branched: 2012-10-02): [firmware_k8200_marlinv1.zip](http://www.k8200.eu/downloads/files/downloads/firmware_k8200_marlinv1.zip)
* see also https://github.com/CONSULitAS/Marlin-K8200/tree/Vellemann_firmware_k8200_marlinv1.zip
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,15 +0,0 @@
# Configuration for Velleman K8400 Vertex
http://www.k8400.eu/
Configuration files for the K8400, ported upstream from the official Velleman firmware.
Like it's predecessor, (K8200), the K8400 is a 3Drag clone. There are some minor differences, documented in pins_K8400.h.
Single and dual head configurations provided. Copy the correct Configuration.h and Configuration_adv.h to the /Marlin/ directory.
**NOTE: This configuration includes the community sourced feed rate fix. Use 100% feed rate in Repetier!**
For implementation and updated K8400 firmware, see https://github.com/birkett/Velleman-K8400-Firmware
### Original Sources
Credit to Velleman for the original 1.0.x based code:<br />
http://www.vertex3dprinter.eu/downloads/files/vertex/firmware/vertex-m1-v1.4-h2.zip
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
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
File diff suppressed because it is too large Load Diff

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