Compare commits

..

398 Commits

Author SHA1 Message Date
InsanityAutomation 4c12ce78e3 Merge branch 'bugfix-1.1.x' of https://github.com/InsanityAutomation/Marlin into bugfix-1.1.x 2019-04-13 17:16:22 -04:00
Scott Lahteine 14193022ca Reduce XY homing feedrate in Creality configs
Counterpart to #13595

Co-Authored-By: swilkens <stefanwilkens@gmail.com>
2019-04-06 19:53:33 -05:00
Damien Martin-Guillerez b1e3f4f42f Add support for the V3 of the BlTouch (#13596)
V3 of the BLTouch has an [Alarm Release & Touch mode](https://docs.wixstatic.com/ugd/f5a1c8_77037f55e5d542309d9fc178165c9f3f.pdf) to activate after the probe is deployed. If this mode isn't activated, the BLTouch keeps deploying, ends up detecting a collision and gets itself in error mode.

Tested on a Creality Ender-3.
2019-04-06 19:48:44 -05:00
Ludy 35775395d9 [1.1.x] Fix German language (#13438) 2019-03-20 16:38:43 -05:00
Ludy 1b5f1487c9 Fix missing quotation marks (#13424) 2019-03-18 16:32:03 -05:00
mbm60 7f75af5a37 Fix pin assignment to KILL_PIN in MKS_MINI_12864 (#13397) 2019-03-15 19:15:03 -05:00
Scott Lahteine cd6e36b83e German patch
Followup to #13136 by @Ludy87
2019-03-08 19:54:38 -06:00
Scott Lahteine 06d58c939c Remove dead code in get_pid_output, consolidate
See #12981
2019-03-03 05:37:15 -06:00
Kit Adams c935a6706a UBL G29 T current position fix (#12845) 2019-02-26 22:26:21 -06:00
FernandoVelcic 8a79623d01 Fix spanish translations (#13235) 2019-02-22 19:49:01 -06:00
AnHardt 7a316d7238 [1.1.x] Fix autotemp_factor menu setting (#13227) 2019-02-22 15:29:38 -06:00
Scott Lahteine 31c473eadb Fix PSU pin initialization 2019-02-20 05:33:32 -06:00
7eggert 369d756b74 Optional ADC_KEYPAD pin with ANET_10 (#13158) 2019-02-13 20:50:11 -06:00
7eggert 01674c5c8d Fix LCD button / newbutton issue (#13157) 2019-02-13 20:43:39 -06:00
Ludy cf70ce6ad2 [1.1.x] Update German language (#13149) 2019-02-13 20:31:34 -06:00
Ludy 3e17ac2529 [1.1.x] Update German language (#13136) 2019-02-12 12:54:11 -06:00
Giuliano Zaro da112b91c5 [1.1.x] Fix TEMP_STAT_LED startup init (#13121) 2019-02-11 17:10:56 -06:00
Scott Lahteine 3a216bb962 CR10mini E steps of 95
See https://www.patreon.com/posts/creality-cr10-24602624
2019-02-10 14:24:59 -06:00
David Souza fa0bc6af08 Fix language_pt-br warnings due to extra tokens at end of #else directive (#13084) 2019-02-05 22:56:53 -06:00
Roxy-3D aed7627f95 Fix probe location bug.... 2019-02-05 20:27:58 -07:00
Scott Lahteine 1f3ddd2c33 Apply lowercase to some common methods 2019-02-02 16:45:07 -06:00
Nathan 8fff2fad23 Fix the delta homing issue (#13001) 2019-01-23 19:43:26 -06:00
Ondřej Nový c0a6f013de [1.1.x] Level bed corners Z-hop height option (#12859) 2019-01-10 19:25:02 -06:00
swilkens feb2165feb [1.1.x] Correct Ender 3 bed size (#12768) 2018-12-30 10:42:06 -06:00
Roman Moravčík 986c4390f0 [1.1.x] Limit PID autotune target to maxtemp-15 (#12703) 2018-12-27 11:43:07 -06:00
Roman Moravčík ff1362c71d [1.1.x] Limit hotend / bed temperature to maxtemp-15. (#12702) 2018-12-27 11:40:34 -06:00
Ondřej Nový b49a58eb58 [1.1.x] Update Czech translation (#12684) 2018-12-20 15:32:24 -06:00
Ondřej Nový 2f42c8b32d [1.1.x] Set DEFAULT_NOMINAL_FILAMENT_DIA to 1.75 in Anet A6 config (#12663) 2018-12-18 13:35:35 -06:00
Ondřej Nový 0f34a3f0b2 [1.1.x] Enable PIDTEMPBED in Anet A8 example config (#12654) 2018-12-18 13:34:25 -06:00
Luc Van Daele 1f06f628c0 [1.1.x] G33 clean up (#12649)
Remove obsolete workarounds in G33 for the now fixed zprobe_zoffset bug
2018-12-18 12:44:17 -06:00
Scott Lahteine a0a21e5a2f Fix MBL error messages 2018-11-19 02:17:36 -06:00
Scott Lahteine 6f0fa90edb Fix kill with MSG_POWER_LOSS_RECOVERY 2018-11-18 18:06:14 -06:00
Scott Lahteine 7cb162ab3e Fix MBL XY parameter error messages 2018-11-05 03:42:24 -06:00
Scott Lahteine dcd01caab9 Rename to match case 2018-10-30 22:59:55 -05:00
I-am-me c788dfb91b Update French language (#12246) 2018-10-27 17:19:51 -05:00
Scott Lahteine 88fd73aabd Fix endstops.monitor_flag 2018-10-26 03:52:43 -05:00
tobbelobb cbc0a0a776 Init Hangprinter D-axis, count D-axis advance_dividend, delta_offsets (#12181) 2018-10-22 18:52:39 -05:00
Scott Lahteine 7446976881 One more IS_SD_PRINTING 2018-10-22 00:25:46 -05:00
Zach Welch 75298e654e Add M524 to abort SD printing (#11386) 2018-10-19 14:23:46 -05:00
Scott Lahteine 86ac4683dd Add parentheses to card macros 2018-10-19 14:20:33 -05:00
Paul d8caa7ddf0 Fix hole to hole rod length for Plus model (#12157) 2018-10-19 13:47:27 -05:00
Scott Lahteine 8698b6d95e Don't use ENABLED with *INVERTING 2018-10-16 17:15:24 -05:00
MrDiba 77d8befc6d Anycubic Kossel Z probe invert fix (#12101) 2018-10-16 01:56:36 -05:00
swilkens 82c5c85c0f [1.1.x] Reduce HOMING_FEEDRATE_XY for Ender 3 (#12104)
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:14 -05:00
Scott Lahteine 5e0dffd9a4 Fix lite status screen SD % 2018-10-12 17:04:47 -05:00
Scott Lahteine 1e57b13518 EINSY_RETRO uses same delays as EINSY_RAMBO
Co-Authored-By: marcio-ao <marcio@alephobjects.com>
2018-10-08 22:29:48 -05:00
Scott Lahteine b33463aa68 Safer delays for EINSY_RAMBO + RRDFGSC 2018-10-06 21:53:45 -05:00
Scott Lahteine 385c990d6f Fix Anycubic Kossel config 2018-10-04 20:26:07 -05:00
Scott Lahteine ae48080469 Fix lightweight UI hotends display 2018-10-04 14:36:19 -05:00
Scott Lahteine 0ad8646a6c Fix block->mix_steps
Fix #11484
2018-09-29 19:16:17 -05:00
Hannes Brandstätter-Müller bb6286f201 fix missing semicolon (#11961) 2018-09-29 14:46:08 -05:00
Scott Lahteine e6339a4aa6 Ensure M109 calls autotemp 2018-09-29 02:15:16 -05:00
Scott Lahteine 501b8374fd Fix garbled M119 output, honor NUM_RUNOUT_SENSORS 2018-09-28 19:19:45 -05:00
Scott Lahteine 8f89ce9b16 Workaround for Pronterface M29 2018-09-27 15:41:15 -05:00
Scott Lahteine ea29b71a3a Fix endstop reporting inverting logic 2018-09-22 03:22:55 -04:00
Scott Lahteine e85117a6cd Fix parking_extruder_tool_change
Fix #11872
2018-09-19 03:04:16 -05:00
Scott Lahteine 5b8dc39506 [1.1] Fix mixing extruder g-codes (#11864) 2018-09-18 00:44:34 -05:00
AnHardt f5dc9c822d 1_Fix normalize_mix() (#11855)
Mix factors needed to be updated consistent with the recent Stepper/Planner code refactor.
2018-09-17 16:38:35 -05:00
Scott Lahteine 1a89c3ceae Support more filament runout sensors in M119 (#11850) 2018-09-17 03:29:18 -05:00
Scott Lahteine c2ffb49c04 Fix a serial echo 2018-09-16 22:03:55 -05:00
dagorel a16405d608 Make some small corrections in fr_utf8 language file. (#11826) 2018-09-16 00:06:53 -05:00
Scott Lahteine 52dbd57dfd Merge pull request #11356 from grbd/bugfix-1.1.x 2018-09-16 00:05:19 -05:00
Scott Lahteine da5e69693d Update some config comments 2018-09-15 23:17:59 -05:00
Scott Lahteine 222014e78c AnyCubic Trigorilla 1.4 changes
Co-Authored-By: grbd <garlicbready@googlemail.com>
2018-09-15 23:17:59 -05:00
Scott Lahteine aeb959d4e4 AnyCubic LinearPlus delta configs
Co-Authored-By: grbd <garlicbready@googlemail.com>
2018-09-15 23:17:59 -05:00
Scott Lahteine 6afe5ab28b Set 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-15 20:25:05 -05:00
HenningJW 7f2139aa07 Fix non-sensical values for Zonestar themistor table (#11816)
Values taken from Zonestar firmware for P802QA with a Melzi board. Timestamps from the firmware package are from April 2016.
2018-09-12 15:35:43 -05:00
Scott Lahteine dad2f630c9 Fix raw_filwidth_value error 2018-09-12 04:32:35 -05:00
Scott Lahteine 5af3575c48 Fix SD autostart with no LCD 2018-09-12 03:48:27 -05:00
Scott Lahteine 39be096575 Fix MSG_FILAMENT_CHANGE_HEAT_1 for small LCD 2018-09-10 23:23:21 -05:00
Scott Lahteine d09794a153 Fix RigidBoard FAN_PIN collision 2018-09-10 05:27:56 -05:00
Scott Lahteine adc066a174 Fix print_2d_array plus some pointless changes 2018-09-10 02:44:17 -05:00
Scott Lahteine c28acb0ee1 Restore .travis.yml 2018-09-09 03:17:22 -05:00
Sebastianv650 ee692e7e24 Fix extruder stops extruding with LA (#11759) 2018-09-09 00:04:02 -05:00
tobbelobb 330c4bcbb9 [1.1.x] Hangprinter support (#9180) 2018-09-08 21:17:02 -05:00
Scott Lahteine 14bf319db8 Pass segment length in G2-G3 2018-09-06 01:46:38 -05:00
Scott Lahteine 792631fecb Pass segment length in prepare_kinematic_move_to (#11736) 2018-09-06 01:40:14 -05:00
Scott Lahteine 4b647a1025 Sanity-check NOZZLE_PARK_POINT 2018-09-05 06:18:59 -05:00
Scott Lahteine 8e8e1c0d2b Sanity tweak accommodating NO_LCD_MENUS
As mentioned in #11727
2018-09-05 05:55:09 -05:00
Scott Lahteine 191bce3217 Bring some configs up to date 2018-09-05 04:34:09 -05:00
AnHardt b34134ed3d [1.1.x] SECURITYFIX missing max temp error when PID is used (#11718) 2018-09-05 04:34:09 -05:00
Scott Lahteine ce092ed0b7 Fix some French strings
Co-Authored-By: pipersw <pipersw@users.noreply.github.com>
2018-09-05 04:34:09 -05:00
Scott Lahteine 5becb29ed9 Restore at90usb1286.json 2018-09-05 04:34:09 -05:00
Scott Lahteine 3256a67927 Delete at90USB1286.json 2018-09-05 04:34:09 -05:00
Giuliano Zaro 5e0cd14bde [1.1.x] Fix planner computation (#11709)
#11708 counterpart
2018-09-03 00:29:13 -05:00
Scott Lahteine 8193c61ac9 Fix compile error with NO_LCD_MENUS 2018-08-31 19:16:54 -05:00
Scott Lahteine dbd0979c36 Remove obsolete HAL_timer_restrain 2018-08-31 17:49:26 -05:00
Scott Lahteine ca87e4c0fd Sanity-check SERVO pin for servo probes 2018-08-30 18:33:37 -05:00
MaiTaiSui f58168a6f5 Support for Anet A2 Plus (#11660) 2018-08-29 16:05:23 -05:00
Scott Lahteine ba46edec2a Fix 5 mixing steppers, etc.
Co-Authored-By: neorex <neorex99@gmail.com>
2018-08-29 03:21:43 -05:00
srieche 99393550f2 [1.1.x] Silently drop M108, M112 and M410 with emergency parser enabled (#11666) 2018-08-28 20:48:31 -05:00
Scott Lahteine 4f0737cd2c Fix SD percent for Lite Status Screen
Co-Authored-By: Lê Hoàng <icy.lord.love.angel@gmail.com>
2018-08-26 17:13:58 -05:00
Scott Lahteine cf1b2af71a Update Ultimaker servo pin
As pointed out at https://github.com/MarlinFirmware/Marlin/issues/7981#issuecomment-407116642
2018-08-21 11:38:45 -05:00
Scott Lahteine 903ccb4b60 Always disable/restore leveling on tool-change
Counterpart to #11559 and its followup.

Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>
2018-08-21 09:13:36 -05:00
Scott Lahteine b303affbb0 Fix typo in .travis.yml 2018-08-21 07:55:00 -05:00
Scott Lahteine 3f75c5df7c Fix Homing/UBL
Co-Authored-By: smoki3 <kevinbayer8@gmail.com>
2018-08-21 07:49:13 -05:00
Scott Lahteine e5de565987 Fix up Max7219 orientations (#11597) 2018-08-20 20:31:40 -05:00
Scott Lahteine feb55517af [1.1.x] Max7219 cleanup, simplify, and extend (#11574) 2018-08-18 01:48:28 -05:00
Scott Lahteine 2f2f16c340 Marlin assumes signed chars 2018-08-16 21:18:20 -05:00
Roxy-3D 3ef6cf0bfb declare void Max7219_register_setup(); 2018-08-15 10:39:08 -05:00
Scott Lahteine 5f0798544e Update Czech language
Co-Authored-By: petrzjunior <junior@zahradnik.cz>
2018-08-14 18:47:24 -05:00
teemuatlut b4efefea8b [1.1.x] Fix TMC2208 SW serial communication (#11548)
* New TMC2208 constructor
* Update default driver configuration
2018-08-14 18:44:17 -05:00
Roxy-3D e518533a75 Change M7219 I to setup Max7219 registers, but not do initialization pattern 2018-08-13 17:48:17 -05:00
Roxy-3D 02381d6821 Make M7219 I more robust and nicer to look at 2018-08-13 17:05:13 -05:00
Roxy-3D 263beae3e9 Add I parameter to ignore pin protection on M42 2018-08-13 16:50:24 -05:00
Scott Lahteine cc6a31528d Improve AXIS_DRIVER_TYPE macros 2018-08-13 16:50:24 -05:00
Aaron Griffith 5482af38f0 Remove oversampled data from thermistor table 71 (#11504)
Data 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.
2018-08-13 02:52:48 -05:00
Scott Lahteine a9cb4834da Allow Einsy RAMBo FAN1_PIN override 2018-08-13 02:48:25 -05:00
Shen Yiming 7b0a8e85ba Fix pca9632_set_led_color lost i2c connection (#11530) 2018-08-12 18:05:00 -05:00
Scott Lahteine 77625654f4 Reduce max accel in Creality configs 2018-08-11 22:57:44 -05:00
Scott Lahteine bdb2dd27ad Allow G33 to compile with no LCD 2018-08-11 22:45:04 -05:00
Scott Lahteine f1467ddc0e UBL/planner patch tweaks 2018-08-11 22:45:04 -05:00
Thomas Moore 105d20c2e8 Account for UBL correction when setting the planner position (#11511) 2018-08-10 13:00:45 -05:00
Scott Lahteine 9e46e84a55 Treat TMC2660 like non-TMC (#11485) 2018-08-10 00:30:11 -05:00
Scott Lahteine 4f59ee8978 Minor spacing fixes 2018-08-07 14:00:48 -05:00
Scott Lahteine e741241721 No raise when homing after power-loss 2018-08-07 13:50:33 -05:00
Scott Lahteine 332a80cadb Restore bugfix README, etc. 2018-08-07 13:45:03 -05:00
lsellens 614a944504 auto power control without heated bed (#11467)
`AUTO_POWER_CONTROL` will not work if printer has no heated bed due to `degTargetBed()` not being defined
2018-08-06 23:18:13 -05:00
Giuliano 33364c17b9 [1.1.x] Better timing handling (#11462) 2018-08-06 23:14:11 -05:00
Scott Lahteine b8d4c4216f Easier to disable homing validation (#11457) 2018-08-06 23:11:28 -05:00
Scott Lahteine 86d9af1108 Fix drivers.h dependency, defer macro evaluation (#11449) 2018-08-03 21:48:57 -05:00
silentninja1 4c4fffc503 [1.1.x] Fix Dual X Carriage tool change crash (#11425) 2018-08-03 20:47:19 -05:00
Marcio Teixeira fae96a6a13 Fix jumping progress bar. (#11438)
- 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:16:14 -05:00
Roxy-3D 7d491aa015 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-08-02 18:43:36 -05:00
Scott Lahteine 888d319145 Align some config options 2018-08-02 18:42:20 -05:00
MikeLud a2ac7e1407 Add M915 to Prepare Menu (#11383) 2018-07-31 02:03:49 -05:00
Shen Yiming 8db91f0bd1 Clean up 12864 OLED code (#11388) 2018-07-30 23:02:12 -05:00
Scott Lahteine c4f4c255b4 Fix initial safe_speed in jerk code (#11396) 2018-07-30 22:49:20 -05:00
Roxy-3D 33c37d587d Revert "[1.1.x] idex and bl touch fix" (#11406)
* Revert "[1.1.x] bltouch home refinements (#11398)"

This reverts commit 30839a6ba6.

* Revert "[1.1.x] idex and bl touch fix (#11392)"

This reverts commit e1bef0ea79.
2018-07-28 23:14:41 -05:00
Giuliano 30839a6ba6 [1.1.x] bltouch home refinements (#11398)
Just create a better functions call logic flow
2018-07-28 19:29:26 -05:00
silentninja1 e1bef0ea79 [1.1.x] idex and bl touch fix (#11392)
* [1.1.x] IDEX and BLTouch Fixes

Fix bltouch not deploying during fast home, fix dual x carriage setting opposing side park position as destination on tool change

* Update Marlin_main.cpp

* Update Marlin_main.cpp

* Change brackets to be more in conformance with Marlin coding standards
2018-07-28 10:33:35 -05:00
Giuliano 7284488da3 [1.1.x] fix bltouch homing (#11380)
Partially revert. Seems to solve the issue, but one report says G29 still fails.
2018-07-27 18:29:26 -05:00
Scott Lahteine cab2e0877e Update DELAY_10US 2018-07-26 20:21:50 -05:00
bleughb b6f24992ee [1.1.x] Update fastio_1280.h pin mapping comments (#11374) 2018-07-26 05:19:05 -05:00
Scott Lahteine c30f636d22 Improve drivers.h macros (#11372) 2018-07-26 05:10:11 -05:00
Giuliano 2f76ec5c6a [1.1.x]-different-bltouch-init (#11358) 2018-07-26 05:03:39 -05:00
Scott Lahteine 56fbe3361b Ensure ADC conversion is complete before reading (#11370)
Co-Authored-By: gloomyandy <andy-git@gloomy-place.com>
2018-07-26 03:58:33 -05:00
vitekn b5ed4a1a8c Fix thermistor type in Anet A6 config (#11346)
I have Anet a6 and my thermistor is NTC 3950. If the default is 5 (ATC Semitec 104GT-2) it gives overheat upto 330 degrees (real) instead of 250 (displayed). I don't know for sure if all the A6 have such thermistor but I think it's safer to have underheat than overheat. And 3950 looks more spread among A6 searching on Internet. The same is true for the bed though it has small difference at the beginning of scale, actually +-2 degrees.
2018-07-26 02:03:30 -05:00
Scott Lahteine 5061c3a016 Merge pull request #11368 from thinkyhead/bf1_pwm_adjustments
[1.1.x] Tweak some SoftPWM code
2018-07-25 19:02:10 -05:00
Scott Lahteine 2af06b82b4 Specify some extra CR-10S pins 2018-07-25 18:18:33 -05:00
Scott Lahteine 637489ae17 Tweak some SoftPWM code 2018-07-25 18:16:33 -05:00
Scott Lahteine 349cf3ee5a Sync enqueue_and_echo_command with 2.0.x 2018-07-25 18:06:31 -05:00
Giuliano e5b928f574 [1.1.x] Typo fix (#11366)
Typo fix
2018-07-25 18:00:28 -05:00
Scott Lahteine 2b860ab8a2 Merge pull request #11361 from thinkyhead/bf1_define_drivers_th
[1.1.x] Configure stepper drivers per axis
2018-07-25 04:05:13 -05:00
Scott Lahteine 7bad507d70 Simplify stepper driver config 2018-07-25 03:02:12 -05:00
Scott Lahteine 6d6bdc6517 Add *_DRIVER_TYPE to example configs 2018-07-25 02:39:16 -05:00
silentninja1 57ce81f067 [1.1.x] Fix LCD axis move E index (#11328) 2018-07-25 02:21:05 -05:00
Scott Lahteine ed0e72bf44 Fix spelling in configs 2018-07-24 21:02:22 -05:00
silentninja1 060e7a3565 Silentninja1 idex crash fix (#11329)
* Move home all axis prototype to allow access from UBL.h

* Remove home all axis command as it exists in marlin.h now

* Reverse order of tool change and home

Race condition causes E0 carriage to move on E1 commands and crash into parked head if order is reversed. Needs more research into permanent fix, but this will prevent damage to machines in the meantime.
2018-07-24 14:44:50 -05:00
Scott Lahteine 3bbb121e7d Tweak some Max7219 code 2018-07-19 18:51:35 -05:00
Scott Lahteine d1590fec3e Merge pull request #11308 from thinkyhead/bf1_manual_probe_start_z
[1.1.x] Manual Z Start Height
2018-07-19 18:26:51 -05:00
Roxy-3D 6c62b0e263 Change Max7219_idle_task() to use columns if Y-Axis has 16 LED's (#11317) 2018-07-19 16:59:38 -05:00
Scott Lahteine 221e8bbb05 Add MANUAL_PROBE_START_Z to example configs 2018-07-18 21:50:18 -05:00
Scott Lahteine 888774cbc3 Add MANUAL_PROBE_START_Z for manual probing 2018-07-18 21:50:18 -05:00
Scott Lahteine db057eb453 Fix tool_change call in UBL G29
Fix #11279, #11252
2018-07-18 20:35:14 -05:00
Scott Lahteine 5ce312f158 Merge pull request #11305 from thinkyhead/bf1_power_loss_pin
[1.1.x] Add support for power loss detect pin
2018-07-18 20:13:47 -05:00
Scott Lahteine 389f2ac81f planner.synchronize at start of tool_change
See https://github.com/MarlinFirmware/Marlin/issues/10949#issuecomment-398540498
2018-07-18 20:09:39 -05:00
Scott Lahteine 7321f30ac0 Add POWER_LOSS_PIN support 2018-07-18 19:58:06 -05:00
Scott Lahteine 46b0e054b1 Add POWER_LOSS_PIN to example configs 2018-07-18 19:58:06 -05:00
Giuliano 9d0627d66c Make GCodeParser::debug static (#11294) 2018-07-17 23:38:39 -05:00
Scott Lahteine 76ec07301d Merge pull request #11297 from thinkyhead/bf1_malyan_lcd_update
[1.1.x] Better Malyan LCD Feedrate/Temp handling
2018-07-17 21:07:04 -05:00
Scott Lahteine 6024ffedd9 Improve Malyan progress / feedrate
Co-Authored-By: J.C. Nelson <xc0000005@users.noreply.github.com>
2018-07-17 19:33:57 -05:00
Scott Lahteine 7e648f3721 Add card.longest_filename, more lcd_strlen updates 2018-07-17 19:33:57 -05:00
Scott Lahteine 036f25e159 More lcd_strlen updates 2018-07-17 18:17:19 -05:00
Scott Lahteine 17e1eec21e Make sure linear units are initialized
Based on #11295

Co-Authored-By: Giuliano <gmagician@users.noreply.github.com>
2018-07-17 17:20:57 -05:00
Roxy-3D 58775cc694 Don't display M421 values for UBL at startup
It takes 20 seconds to display the mesh values at startup...   If we are going to display this information at startup, we should find a more terse way to do it.   Perhaps displaying an entire row of the mesh at a time makes sense?
2018-07-17 17:17:09 -05:00
Scott Lahteine fbc3fdb490 LCD strlen functions like 2.0.x 2018-07-17 15:25:58 -05:00
Scott Lahteine 756080fcca Followup to floats patch 2018-07-17 15:24:33 -05:00
Giuliano e6801ff84a [1.1.x] Fix change filament (#11268)
Prevent crash, on filament change, when printer is not homed
2018-07-16 21:48:45 -05:00
Roxy-3D bc961220b7 Change Max7219_idle_task() routines to use single line if X-Axis has 16 or more LED's
Change Max7219_idle_task() routines to use single line if X-Axis has 16 or more LED's

This gets bugfix_1.1.x at parity with https://github.com/MarlinFirmware/Marlin/pull/11285 when it gets merged.
2018-07-16 19:23:59 -05:00
kaimimue 256f76d35e Fix Vellemann K8400 Configuration (#11258)
The maximum movement is 180mm for Velleman K8400.
An offset of `Y_MIN_POS` violates an assertion in `SanityCheck.h`.

Code tested on Vellemann K8400 with Dual Extruder.
2018-07-13 23:15:00 -05:00
Giuliano 1067c43107 [1.1.x] fix kill printer (#11261)
This will fix kill message on dual printer with 0 alignment offset
2018-07-13 23:13:29 -05:00
Scott Lahteine d60b2e5ba8 Merge pull request #11233 from nightgryphon/multiprobe-z-up
[1.1.x] Shorter Z raise between multiple probes
2018-07-12 22:44:25 -05:00
Scott Lahteine cb0777dbeb Merge pull request #11248 from thinkyhead/bf1_tmc_unify_param_i
[1.1.x] Unify "I" parameter for M906,M912 etc.
2018-07-12 22:31:26 -05:00
Scott Lahteine 8f110190eb Add Z_CLEARANCE_MULTI_PROBE to example configs 2018-07-12 22:27:06 -05:00
nightgryphon 54adf6f52d Shorter Z up move between multiple probing attempts
For some probes like micro switches the full Z clearance raise between
probing attempts is not required while bigger Z clearance between probe
points is still needed to avoid clamps. The shorter Z raise within
multiprobing same point significantly increase probing speed and the whole
auto level process.
2018-07-12 22:27:06 -05:00
Clifford Roche 3b5c81b84a [1.1.x] Validate that X/Y_PROBE_OFFSET_FROM_EXTRUDER are integers (#11255) 2018-07-12 21:22:59 -05:00
Scott Lahteine d8331d97d6 Unify M91x parameter I meaning, simplify reports 2018-07-11 20:31:40 -05:00
Scott Lahteine 5cddfce0ee Endstops::report_state => event_handler 2018-07-11 19:47:25 -05:00
Aaron Griffith 5f587126b9 Loosen static assertion guarding overflow in SCAN_THERMISTOR_TABLE (#11240)
Bisect search merged in #10882 actually works fine for thermistor
tables with up to 255 entries with no overflow, due to C++ integer
promotion rules.

Closes issue #11220.
2018-07-11 16:42:23 -05:00
Roxy-3D 39b3e4c501 Support for multiple Max7219 units in a chain (#11226)
* Support for multiple Max7219 units in a chain

I'll move this support over to bugfix_2.0.0 in the next few days.   And
then look at updating the Max7219_idle() routine to make use of multiple
units in a chain.

* spelling correction
2018-07-08 17:35:58 -05:00
Roxy-3D fae2929b6b Resolve issue where user can't edit mesh 2018-07-08 14:39:08 -05:00
Scott Lahteine ccb225f43a Float maths updates for 2.0.x parity (#11213)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-07-06 21:44:33 -05:00
Scott Lahteine fc9f4ce2c0 Fix missing quote in language list
Co-Authored-By: p3p <p3p@p3psoft.co.uk>
2018-07-04 13:40:18 -05:00
Scott Lahteine a69cc6c5ba Fix Trigorilla include typo 2018-07-03 20:22:36 -05:00
Scott Lahteine 03a704600c No M914 or SGT set for non-sensorless axes (#11197) 2018-07-03 20:10:43 -05:00
Scott Lahteine e84341412c Merge pull request #11194 from Schullebernd/bugfix-1.1.x
[1.1.x] Tronxy X3A configurations and thermistor
2018-07-03 19:05:51 -05:00
Scott Lahteine fae20983eb Add configurations for Tronxy X3A 2018-07-03 18:14:46 -05:00
Scott Lahteine 559e935785 Bring default Configuration.h up to date 2018-07-03 18:10:55 -05:00
Marcel Schulz 432da42dba Add thermistor 501 (100K Zonestar) 2018-07-03 18:10:55 -05:00
Scott Lahteine 0702c78e62 Fix and improve POWER_LOSS_RECOVERY (#11186) 2018-07-02 23:21:18 -05:00
Scott Lahteine 84187dca5c Add "Marlin Dev Mode" option 2018-07-02 22:53:01 -05:00
Scott Lahteine b7c648db32 Minor patches for POWER_LOSS_RECOVERY 2018-07-02 17:25:15 -05:00
Scott Lahteine a83f7f1d25 Turn off DISABLE_INACTIVE_EXTRUDER with SWITCHING_NOZZLE
Fix #11183
2018-07-02 17:25:15 -05:00
Roman Moravčík 5700360adf [1.1.x] Slovak translation update (#11174) 2018-07-01 23:15:14 -05:00
Scott Lahteine defaa93121 Do a hard kill for failed homing moves (#11160) 2018-06-30 21:53:58 -05:00
Scott Lahteine c4fbbcaf46 Lose the old HOMEAXIS macro 2018-06-30 18:07:40 -05:00
Scott Lahteine ca6ddbc555 Detect endstop hits in any direction 2018-06-30 17:26:49 -05:00
Scott Lahteine 1caa01a9a2 Fix Trigorilla 1.4 pin defines
See #11097
2018-06-30 13:45:41 -05:00
Scott Lahteine a294ec3836 Add delta feedrate scaling (#11152) 2018-06-30 13:44:37 -05:00
Giuliano a789ab4005 [1.1.x] Git ignore for VS (#11156)
Add missing VS file
2018-06-30 02:51:20 -05:00
Scott Lahteine 718a22e836 Non-conflicting CS pins for MKS Gen L 2018-06-30 02:35:45 -05:00
Scott Lahteine be3e006fc8 Fix G33 compile warning 2018-06-29 23:20:59 -05:00
Scott Lahteine 654f0bed25 Remove JUNCTION_DEVIATION_INCLUDE_E option (#11146) 2018-06-29 22:41:56 -05:00
Scott Lahteine 609e7da3f3 Fix and tweak POWER_LOSS_RECOVERY (#11150) 2018-06-29 22:40:49 -05:00
Scott Lahteine 67475374ae Fix SKEW_CORRECTION compile error 2018-06-29 19:37:47 -05:00
Scott Lahteine 485d50ecb0 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:09:45 -05:00
Scott Lahteine 5788a393c0 Fix up microsteps conditionals 2018-06-28 00:07:03 -05:00
Scott Lahteine 5e03dede18 Eliminate stepper.* signed/unsigned warnings 2018-06-27 23:06:49 -05:00
Scott Lahteine b880028334 Fix stepper/planner block handling, race conditions (#11136)
- 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.

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-27 18:11:23 -05:00
Scott Lahteine cff2201629 Poll all endstops, even when stationary (#11125)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-27 04:19:05 -04:00
Scott Lahteine e352c1e52d Endstop patch followup 2018-06-27 00:12:42 -05:00
Scott Lahteine 04fc715c91 Add minimum step dir delay option, A4988 pulse note (#11122)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-26 22:28:46 -04:00
Scott Lahteine 4d5c655f8d Make max_e_jerk an array to save CPU (#11121)
Co-Authored-By: gloomyandy <andy-git@gloomy-place.com>
2018-06-26 22:09:38 -04:00
Giuliano 0a2d3ecfd4 [1.1.x] Fix advanced pause init values (#11096)
Fixed for cycle used to initialize default values
2018-06-26 14:38:08 -04:00
Scott Lahteine 8600cbb01b Clear Max7219 without test pattern 2018-06-25 11:54:14 -04:00
Scott Lahteine dd9c65d0be [1.1.x] Fix stepper/planner race condition, Stepper pulse timer (#11084)
* Fix planner/stepper race condition

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
Co-Authored-By: AnHardt <github@kitelab.de>

* Fix stepper pulse timing

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-22 10:53:46 -04:00
Scott Lahteine 53745446f9 Fix LIN_ADVANCE max_e_jerk_factor
According to https://github.com/MarlinFirmware/Marlin/issues/9917#issuecomment-399204568
2018-06-21 21:38:52 -04:00
Scott Lahteine 52f5efb78d Filter endstops state at all times (#11076) 2018-06-21 20:13:16 -05:00
Scott Lahteine 94787114f1 Merge pull request #11074 from thinkyhead/bf1_value_editing 2018-06-21 20:12:48 -05:00
Roxy-3D 7632df6820 add the move_z_after_probing() functionality to UBL's G29 J 2018-06-21 13:22:40 -05:00
Scott Lahteine bd10791b6d Edit Z fade as whole numbers 2018-06-21 11:53:29 -04:00
Scott Lahteine b05fcad7fe Fix value editing with callback 2018-06-21 11:48:27 -04:00
Scott Lahteine 3bb332b440 Use Tool 0 for Dual X Axis G29
See https://github.com/MarlinFirmware/Marlin/issues/5597#issuecomment-397683325
2018-06-19 22:54:30 -05:00
Scott Lahteine e0b4abd3eb Don't reset stepper timeout for all g-codes 2018-06-19 21:50:09 -05:00
Roxy-3D 3ca4f09680 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 18:21:19 -05:00
Giuliano 7cdaf69ab7 [1.1.x] Fix Italian msg len (#11057)
Fix message to long for 12864 display
2018-06-18 22:04:35 -05:00
Scott Lahteine dc087b1132 [1.1.x] Tweaks and additions for MAX7219 (#11033) 2018-06-18 22:03:53 -05:00
Scott Lahteine 35023b09ef Fix critical section start/end 2018-06-16 17:38:46 -05:00
Scott Lahteine a85f60adb9 Unsigned eeprom mesh addresses 2018-06-15 15:54:42 -05:00
Bob Kuhn c28d2e9638 Auto Build for Visual Studio Code (#11015) 2018-06-13 18:49:30 -05:00
Giuliano e601cfb836 [1.1.x] reset bltouch on home (#11010) 2018-06-13 14:08:47 -05:00
Scott Lahteine c0e4a7a928 Merge pull request #11012 from thinkyhead/bf1_ensure_endstop
[1.1.x] Extra insurance against endstop false positives
2018-06-13 01:21:41 -05:00
Scott Lahteine af1721b351 Extra insurance against endstop false positives 2018-06-13 00:36:47 -05:00
Scott Lahteine cc4e515480 Fix coolstep_min_speed / sensorless homing
Fix #8890
2018-06-12 22:53:17 -05:00
Scott Lahteine 91976e3ef4 Merge pull request #11011 from thinkyhead/bf1_honor_step_rate
[1.1.x] Ensure good min/max stepper timing
2018-06-12 21:52:48 -05:00
Scott Lahteine 9d91ea4e3e Fix stepper pulse duration 2018-06-12 21:35:03 -05:00
Scott Lahteine d3567592d7 Localize stepper-specific defines 2018-06-12 21:22:13 -05:00
Scott Lahteine 87eddf35e2 HAL_STEPPER_TIMER_RATE => STEPPER_TIMER_RATE 2018-06-12 16:55:57 -05:00
Scott Lahteine 1d048f5192 Optional homing/leveling with O parameter
Based on #10913

Co-Authored-By: dot-bob <gibben@gmail.com>
2018-06-11 23:13:18 -05:00
Scott Lahteine fe69cf8a5d Merge pull request #11002 from thinkyhead/bf1_junction_deviation_fix
[1.1.x] Updates for junction_deviation_mm
2018-06-11 22:03:59 -05:00
Scott Lahteine 8073f23672 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 21:49:26 -05:00
Scott Lahteine 4bc5e9341e Use bit flags for homed/known 2018-06-11 21:49:26 -05:00
Scott Lahteine 4ed92f838f Use stepper timer to count pulse duration 2018-06-11 21:46:31 -05:00
Scott Lahteine 47f7c4889d Fix include in lite status screen 2018-06-11 21:30:49 -05:00
Scott Lahteine cfd6437ea6 Update travis test for 2.0.x parity 2018-06-11 20:10:27 -05:00
Scott Lahteine 6a7e0a852b Minor stepper.cpp cleanup 2018-06-11 19:16:31 -05:00
Scott Lahteine eca91a8bd7 Tweak M122 report spacing 2018-06-10 20:34:18 -05:00
Scott Lahteine 8e987023e1 Replace ADC with HAL_READ_ADC 2018-06-10 20:09:44 -05:00
Scott Lahteine 53730be606 Fix MarlinSerial (#10992) 2018-06-10 20:04:52 -05:00
Scott Lahteine 38f73d57bc Clean trailing whitespace 2018-06-10 18:42:39 -05:00
Scott Lahteine 7175da3256 Multiplier edit large ranges 2018-06-10 18:18:22 -05:00
Scott Lahteine 4c3504c43f Limit Junction Deviation (0.01 to 0.3) 2018-06-10 18:18:22 -05:00
Scott Lahteine 327b9c389d Add Junction Deviation mm runtime setting (#10989) 2018-06-10 18:02:40 -05:00
Scott Lahteine f1ed08e369 Fix serial debug ouput 2018-06-10 17:55:56 -05:00
Scott Lahteine 8dac040c42 Protected pin err for M226 2018-06-10 17:40:00 -05:00
Scott Lahteine d70189abf6 Always stow BLTOUCH at start of G28 2018-06-10 16:24:12 -05:00
Scott Lahteine 6e49901104 Adaptive and max stepping followup 2018-06-10 16:00:38 -05:00
Scott Lahteine e0aec001f3 Merge pull request #10984 from thinkyhead/bf1_multiaxis_smoothing
[1.1.x] Adaptive multi-axis step smoothing
2018-06-10 15:12:54 -05:00
Scott Lahteine e9c8c5dbc9 Merge pull request #10982 from thinkyhead/bf1_xon_xoff_changes
[1.1.x] Serial handshaking fixes / debug
2018-06-10 04:33:23 -05:00
Scott Lahteine 9c083d8a9f Add sanity-check for MOTHERBOARD 2018-06-10 04:01:59 -05:00
Scott Lahteine b7ddfddf51 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.

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-10 01:56:00 -05:00
Scott Lahteine 1cdcc6adfa Adaptive multiaxis step smoothing
- Stepper bugs fixed
- Support MIXING_EXTRUDER with Linear Advance
- Miscellaneous cleanup

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-10 01:56:00 -05:00
Scott Lahteine aab9cb0bbe Update MINIMUM_STEPPER_PULSE description 2018-06-10 00:14:39 -05:00
Scott Lahteine 095cc75838 Add hidden Serial debug options
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-09 22:23:10 -05:00
Scott Lahteine 17a965de17 Fix serial XON/XOFF handshaking
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-09 22:23:10 -05:00
Scott Lahteine 63af814d4d Add HAL_timer_start to HAL.h
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-09 22:12:52 -05:00
Giuliano 1b1e15623a [1.1.x] Fix null check in lsDive (#10979) 2018-06-09 22:03:57 -05:00
Scott Lahteine 1132ec34c1 Increase BLOCK_DELAY_FOR_1ST_MOVE to 100
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-09 21:13:55 -05:00
Scott Lahteine 4c4fd9f32f Highlight 64128N and common ST7565 difference
Followup to #10919, addressing #10962
2018-06-09 15:08:46 -05:00
Scott Lahteine 60cd6892e2 Prevent MB false-positive on bad board name 2018-06-08 19:57:31 -05:00
Scott Lahteine 1dd4e63402 MarlinSerial.cpp formatting tweak 2018-06-08 19:53:39 -05:00
João Brázio 7aa7ecbd0e Update BQ Hephestos 2 config, NTC-70 table (#10902) 2018-06-07 21:23:43 -05:00
Scott Lahteine 582845fd72 Allow FAN_PIN override, pins cleanup (#10957) 2018-06-07 16:39:11 -05:00
Scott Lahteine 70d39ac185 Fix M503 ABL mesh report. (Zero-based IJ indices) 2018-06-07 16:25:35 -05:00
Scott Lahteine 30ee336c85 Merge pull request #10945 from thinkyhead/bf1_less_wordy_TMC_M503
[1.1.x] More concise M503 output for TMC commands
2018-06-06 20:57:28 -05:00
Scott Lahteine a7b86e3921 Script to do Travis CI test locally 2018-06-06 03:12:35 -05:00
Scott Lahteine cd73e8f825 More concise M503 output for M906, M913, M914 2018-06-06 03:12:35 -05:00
Scott Lahteine 827ba94e16 Fix a compile warning 2018-06-05 22:46:45 -05:00
Scott Lahteine 851149954a Tweak sanity formatting 2018-06-05 22:45:07 -05:00
Scott Lahteine 295f93caea Prevent Teensy2.0++ bootloader overwrite 2018-06-05 22:36:00 -05:00
Alex 3bc392f592 Prevent a buffer overflow in cardreader 2018-06-05 22:14:51 -05:00
Scott Lahteine 3be22fc1fc Merge pull request #10919 from thinkyhead/bf1_misc_cleanups_jun2
[1.1.x] Clean up ST7565, dual endstops homing
2018-06-03 03:35:55 -05:00
Scott Lahteine 7d39bcfcce LED menu item bool (like Case Lights) 2018-06-03 00:32:13 -05:00
Scott Lahteine 9641bae325 Cleanup for dual endstops homing 2018-06-03 00:32:13 -05:00
Scott Lahteine d32beafd21 Add macros for ST7565 commands 2018-06-02 20:31:26 -05:00
Scott Lahteine 3b06a8e917 [1.1.x] Assorted fixes and improvements (#10914)
Co-Authored-By: ejtagle
2018-06-01 19:00:59 -05:00
Scott Lahteine 67d9d1870c Merge pull request #10906 from Sebastianv650/fix_junction_dev 2018-06-01 00:12:12 -05:00
Scott Lahteine 08090d10b6 Drop JUNCTION_ACCELERATION from example configs 2018-05-31 20:06:37 -05:00
Sebastianv650 568b19e7d4 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:06:37 -05:00
Scott Lahteine c010b1f43f Clean up some trailing spaces 2018-05-31 19:37:22 -05:00
Scott Lahteine 2b49f8ee65 Fix the Z un-hop on G11
Co-Authored-By: zarthcode <anthony.clay@zarthcode.com>
2018-05-29 23:40:16 -05:00
Scott Lahteine 9c8594c2fb For SCARA probe Y offset is proximal/distal 2018-05-29 21:44:13 -05:00
Scott Lahteine a11717eed6 Improve probe logging 2018-05-29 21:44:13 -05:00
Scott Lahteine 43a55a9af4 Update Fan 2 and E0 Auto Fan pins for Trigorilla 2018-05-29 12:24:37 -05:00
Scott Lahteine 0460406154 Fix M914 value range (-64...+63)
Fix #10896
2018-05-29 12:03:01 -05:00
Scott Lahteine 7445f30cbf Set deltas to park on the left 2018-05-29 11:45:17 -05:00
Scott Lahteine 6f07699ed5 HOTENDS for Switching Extruder with Switching Nozzle 2018-05-29 11:09:29 -05:00
Scott Lahteine d6cd7d924c Modify E-stepping macros for use in LINEAR_ADVANCE (#10887) 2018-05-28 19:33:54 -05:00
Scott Lahteine 2c4d8761ec More concise commentary in planner.cpp 2018-05-28 19:27:55 -05:00
Scott Lahteine dfe90d552d Long temperature tables need special consideration 2018-05-28 06:27:10 -05:00
Scott Lahteine c45bfc1c21 Faster (bisect) search in thermistor tables (#10882) 2018-05-27 23:27:34 -05:00
Scott Lahteine fbeea12026 Correct HOTENDS for SWITCHING_EXTRUDER 2018-05-27 22:55:57 -05:00
Scott Lahteine 33b7488f68 Update stepper.cpp Bresenham for 2.0.x parity 2018-05-27 21:44:01 -05:00
Scott Lahteine 0d6ef67e48 Update board_f_cpu to board_build.f_cpu 2018-05-26 23:29:27 -05:00
Scott Lahteine 14f45448cb Fix switching extruder stepping with LA 2018-05-26 19:05:31 -05:00
Scott Lahteine e108713d7b Merge pull request #10857 from thinkyhead/bf1_rename_some_options
[1.1.x] Rename and document some configuration options
2018-05-26 18:42:22 -05:00
Scott Lahteine a7561df3d7 Tweak configuration spacing 2018-05-26 18:31:57 -05:00
Scott Lahteine 0bfb10ffb6 Rename Junction Deviation options 2018-05-26 18:31:57 -05:00
Scott Lahteine 949ee7afe9 BEZIER_JERK_CONTROL => S_CURVE_ACCELERATION 2018-05-26 18:31:57 -05:00
Scott Lahteine 9186123676 Fix manual moves for switching tools (#10867) 2018-05-26 18:30:29 -05:00
Bob Kuhn a07433f1cc [bugfix-1.1.x] Auto-build CDC support fix, error handling improvements (#10852) 2018-05-26 01:07:01 -05:00
Scott Lahteine 1615542ac3 Fix up stepper ISR with linear advance timing (#10854)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-26 01:00:02 -05:00
Sebastianv650 815c4e7b3f Add missing config line for JUNCTION_DEVIATION (#10855) 2018-05-26 00:57:00 -05:00
Eduardo José Tagle 63f7add00c [1.1.x] Buffer overflow and scroll fix, UTF8 cleanup (#10851) 2018-05-25 23:31:19 -05:00
Scott Lahteine 069bd19aec Fix warning with FASTER_GCODE_PARSER disabled 2018-05-25 06:46:28 -05:00
Scott Lahteine d1235033b2 Make sure FAN_ANIM_FRAMES is defined 2018-05-25 05:25:42 -05:00
Scott Lahteine b20d7129ab Fix reset of endstops and move state 2018-05-24 19:32:58 -05:00
Scott Lahteine 995702c924 Minor optimization of axis_did_move bits 2018-05-24 19:08:46 -05:00
Scott Lahteine 62d923a053 Fix K8400 Y min pos, M118 comment 2018-05-24 08:19:30 -05:00
Scott Lahteine a5ac80293e Merge pull request #10836 from thinkyhead/bf1_malyan_lcd_fix
[1.1.x] Malyan LCD compatibility
2018-05-24 06:26:30 -05:00
Scott Lahteine 181516f7cb Fix Malyan LCD, allow no SD Card 2018-05-24 06:14:32 -05:00
Scott Lahteine ebb839971d Conditionals match 2.0.x indentation 2018-05-24 05:51:14 -05:00
Scott Lahteine 27c5ede796 Add USE_MARLINSERIAL conditional 2018-05-24 05:51:14 -05:00
Scott Lahteine aa8fd920a4 Followup for core endstops 2018-05-24 03:01:24 -05:00
Scott Lahteine ac293bdf95 Clean up and consolidate SD-related code (#10832) 2018-05-24 01:19:12 -05:00
Scott Lahteine 766bcc6a70 Patches for core motion tests 2018-05-24 00:50:25 -05:00
Scott Lahteine 912fff0923 Drop #pragmas that don't help .c files 2018-05-23 23:44:53 -05:00
Scott Lahteine 773a550472 Fix fade value for power-loss recovery
Fix #10817

Co-Authored-By: cdedwards <cd.edwards@sasktel.net>
2018-05-23 16:55:14 -05:00
Scott Lahteine 76019c83b5 Default G30 to engage / disengage 2018-05-23 16:55:14 -05:00
Scott Lahteine 58a6eb656c Fix Endstops Core compatibility (#10822)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-23 03:45:12 -05:00
Scott Lahteine 25b3511241 Suppress U8glib warnings on build 2018-05-23 02:26:18 -05:00
Scott Lahteine 0a0f2a5857 Followup to LCD button tweak 2018-05-22 19:51:05 -05:00
Scott Lahteine c76a466ba9 Followup to endstops update 2018-05-22 14:52:24 -05:00
Bob Kuhn 12e8e0be22 [bugfix-1.1.x] Yet another auto build update & add Sublime menu support (#10808) 2018-05-22 02:07:58 -05:00
Scott Lahteine 01083dfca1 Restore lost Endstops::monitor 2018-05-22 01:58:20 -05:00
Scott Lahteine 07c35886e1 Tweak G38 formatting 2018-05-22 01:56:45 -05:00
Ante Vukorepa 4e67660c0f [1.1.x] Fix G1 behaviour after tool unpark (#10777) 2018-05-22 00:51:13 -05:00
Scott Lahteine f552557b0c Fix DEBUG_LEVELING_FEATURE with MBL 2018-05-22 00:48:14 -05:00
Scott Lahteine 083726b2ae Group button-related LCD code 2018-05-22 00:48:14 -05:00
Scott Lahteine cb6e58559c Cleanup in stepper_indirection.h 2018-05-22 00:32:17 -05:00
Scott Lahteine 5bb295ef6a Merge pull request #10811 from thinkyhead/bf1_endstop_noise_filter
[1.1.x] Add endstop noise filter
2018-05-21 15:51:19 -05:00
Scott Lahteine a971cacb06 Add Endstop Noise Filter
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-21 15:32:26 -05:00
Scott Lahteine e63113e6ad Add ENDSTOP_NOISE_FILTER to example configs
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-21 15:29:14 -05:00
Scott Lahteine e0ae9b8548 Stepper::set_position needed for some applications 2018-05-21 15:23:00 -05:00
Scott Lahteine f5a4cd76fb Merge pull request #10797 from thinkyhead/bf1_planner_overhaul_ejtagle
[1.1.x] Refactor Stepper / Planner
2018-05-21 13:08:21 -05:00
Scott Lahteine 3a4a229721 Fix interrupt-based endstop detection 2018-05-20 21:24:57 -05:00
Scott Lahteine d2f8971045 Fix planner block optimization 2018-05-20 21:24:57 -05:00
Scott Lahteine a4f2f2fe54 Planner block HOLD flag 2018-05-20 21:24:57 -05:00
Scott Lahteine 8f26c3a6d3 Refactor and optimize Stepper/Planner 2018-05-20 21:24:57 -05:00
Scott Lahteine 38e1823375 Add HAL.h for AVR for easier 2.0.x parity 2018-05-20 21:24:57 -05:00
Scott Lahteine ddc1a48844 Adjust formatting in stepper.cpp 2018-05-20 12:37:01 -05:00
Scott Lahteine bf61be8ede Simplify and fix z fade height editing
Fix #10761
2018-05-20 12:32:45 -05:00
Scott Lahteine ad49088173 Fix enter key spasm 2018-05-20 07:50:07 -05:00
Bob Kuhn c5c5506415 autobuild update & fix platformio.ini (#10791) 2018-05-20 07:30:36 -05:00
Scott Lahteine 8fd00ff0fb Fix LIN_ADVANCE + SWITCHING_EXTRUDER
Followup to #10657
2018-05-19 20:59:02 -05:00
Scott Lahteine 17aa0a7303 Update platformio.ini for parity with AVR in 2.0.x 2018-05-19 20:59:02 -05:00
Scott Lahteine 4e3793988a Ensure pulse delay in babystepping
Proposed alternative to #10778
2018-05-19 20:59:01 -05:00
Scott Lahteine 6f10d637ad Fix some compile warnings 2018-05-19 17:09:24 -05:00
Scott Lahteine af3a68f81f Add HAS_HOTEND_OFFSET_Z conditional 2018-05-19 17:09:24 -05:00
Scott Lahteine a847ea625e Don't define unused move_extruder_servo
For parity with #10772
2018-05-19 17:09:24 -05:00
Giuliano b360bb9ff9 [1.1.x] Temperature reading fix (#10775)
#10774 counterpart
2018-05-19 15:38:41 -05:00
Joshua J Young 85dfde4c09 PlatformIO build monitor_bad => monitor_speed 2018-05-18 21:28:27 -05:00
Scott Lahteine 8b35f2c846 Merge pull request #10759 from thinkyhead/bf1_fan_max_pwm
[1.1.x] Add FAN_MAX_PWM
2018-05-15 22:23:27 -05:00
Scott Lahteine c739943786 Darwin-compatible buildroot/src scripts (#10760) 2018-05-15 22:22:44 -05:00
Scott Lahteine 9d36dfceda Add FAN_MAX_PWM to example configs 2018-05-15 21:17:34 -05:00
Scott Lahteine 151201656f Add FAN_MAX_PWM for M106-controlled fans 2018-05-15 21:17:34 -05:00
Scott Lahteine 2ce8047adb Head off potential LCD-related compile issues 2018-05-15 00:07:31 -05:00
Scott Lahteine 99f7d3853b Modify UBL mesh_is_valid and use in leveling_is_valid (#10747) 2018-05-14 22:35:45 -05:00
Scott Lahteine 29080cefd9 Consistent heating status and status reset
Fix #10699
2018-05-13 17:23:26 -05:00
Scott Lahteine b7706ca8d0 Followup to _AXIS patch 2018-05-13 10:42:00 -05:00
Scott Lahteine 7c6dd087c9 Convert maths macros to inlines
For parity with #10728

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-13 10:36:37 -05:00
Scott Lahteine 431a81fc66 Don't go to babystep on long press unless printing
As pointed out in #10731
2018-05-13 08:14:57 -05:00
Scott Lahteine 095afadbf6 Merge pull request #10729 from thinkyhead/bf1_smarter_min_max_abs
[1.1.x] Smarter MIN, MAX, ABS macros
2018-05-13 07:19:46 -05:00
Scott Lahteine 3505d018db 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:51:33 -05:00
Scott Lahteine 03e8f6c1d9 Tweaks to heater / lcd conditions 2018-05-13 04:51:32 -05:00
Scott Lahteine bf0fcebfe6 Apply _AXIS macro 2018-05-13 04:51:32 -05:00
Scott Lahteine ea353c3df6 Move some Stepper methods to Planner (#10719) 2018-05-12 09:29:17 -05:00
Scott Lahteine 8c81e6341a Fix some compiler warnings 2018-05-12 07:54:14 -05:00
Scott Lahteine 039302bf4c Better handling of DELAY_NS and DELAY_US (#10717)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-12 04:22:55 -05:00
Scott Lahteine 0aa791d62b Fix Switching Extruder with Linear Advance 2018-05-12 02:27:40 -05:00
Scott Lahteine aff683c3f5 Move lpq_len to Temperature class (#10715) 2018-05-12 02:13:54 -05:00
InsanityAutomation a1a8d19a9d Revert "Merge branch 'TM_CR10' into bugfix-1.1.x"
This reverts commit 1cfe6d7478, reversing
changes made to a9b30acbe6.
2018-05-11 22:55:44 -04:00
InsanityAutomation e2ba0def50 Revert "Revert "Merge branch 'TM_CR10' into bugfix-1.1.x""
This reverts commit fd94570a0d.
2018-05-11 22:55:20 -04:00
Giuliano 02a79cc030 [1.1.x] EEPROM code cleanup (#10711) 2018-05-11 18:06:36 -05:00
ManuelMcLure ef9617fe44 [1.1.x] Use M_PI instead of PI (#10702) 2018-05-11 17:57:16 -05:00
Scott Lahteine a9cef45d45 Add L6470 library to platformio.ini 2018-05-11 02:23:01 -05:00
ManuelMcLure b7899610ac Use arc moves for G26 if enabled (#10695) 2018-05-11 01:53:15 -05:00
Scott Lahteine e5f4f1554b [1.1.x] Enable AD595 and AD8495 in concert (#10694)
* Allow both AD595 and AD8495 in concert
* General temperature code tweaks
2018-05-11 01:02:00 -05:00
ManuelMcLure bbd584bc14 Remove hidden dependency from plan_arc() and plan_cubic_move() (#10690) 2018-05-11 00:34:33 -05:00
Scott Lahteine 0b8af93d1e Patch up reverse_pass_kernel (and other planner code) (#10673) 2018-05-10 01:30:39 -05:00
Scott Lahteine 61ae84b53e Correction to Printrboard SDSS pin (#10676)
Co-Authored-By: Simon Swenson <simon-swenson-8351@users.noreply.github.com>
2018-05-10 01:28:44 -05:00
Kyle Spier-Swenson a04fc8c318 [1.1.x] Blink the value on non-homed axes (#10523) 2018-05-10 01:19:11 -05:00
Scott Lahteine c3a891f790 Trailing whitespace cleanup 2018-05-10 00:15:32 -05:00
Scott Lahteine 42de5b0310 More Trinamic cleanup 2018-05-10 00:10:08 -05:00
Scott Lahteine 8e818ade5e Drop extra RIGIDBOT_PANEL from D6 config 2018-05-09 18:03:31 -05:00
Scott Lahteine 2c01e9c6a7 Support all axes in M911 and M912 (#10669)
Co-Authored-By: Giuliano <gmagician@users.noreply.github.com>
2018-05-09 17:58:25 -05:00
Scott Lahteine 98bb97b515 Fix LIN_ADVANCE + SWITCHING_EXTRUDER stepper directions (#10657) 2018-05-09 14:36:27 -05:00
139 changed files with 51816 additions and 1796 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
<!--
Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/master/.github/code_of_conduct.md
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/1.1.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/.
@@ -28,4 +28,4 @@ Before filing an issue be sure to test the 1.1 and/or 2.0 "bugfix" branches to s
* 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.
* See [How Can I Contribute](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/.github/contributing.md#how-can-i-contribute) for additional guidelines.
+2 -1
View File
@@ -125,6 +125,7 @@ lib/readme.txt
#Visual Studio
*.sln
*.vcxproj
*.vcxproj.user
*.vcxproj.filters
Release/
Debug/
@@ -132,7 +133,7 @@ __vm/
.vs/
vc-fileutils.settings
#VScode
#Visual Studio Code
.vscode
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
+78 -62
View File
@@ -92,10 +92,10 @@ script:
- opt_set TEMP_SENSOR_BED 1
- opt_set POWER_SUPPLY 1
- opt_enable PIDTEMPBED FIX_MOUNTED_PROBE Z_SAFE_HOMING
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS PINS_DEBUGGING
- opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR
- opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
- opt_enable_adv ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS POWER_LOSS_RECOVERY
- opt_enable_adv ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE
- opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING
- opt_set GRID_MAX_POINTS_X 16
- opt_set_adv FANMUX0_PIN 53
@@ -111,14 +111,16 @@ script:
- opt_set TEMP_SENSOR_3 20
- opt_set TEMP_SENSOR_4 999
- opt_set TEMP_SENSOR_BED 1
- opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT EEPROM_SETTINGS EEPROM_CHITCHAT G3D_PANEL SKEW_CORRECTION
- opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC QUICK_HOME
- opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT SKEW_CORRECTION
- opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
- opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC QUICK_HOME JUNCTION_DEVIATION MAX7219_DEBUG
- opt_set_adv MAX7219_ROTATE 270
- build_marlin
#
# Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language
#
- opt_set LANGUAGE kana_utf8
- opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE BEZIER_JERK_CONTROL
- opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE S_CURVE_ACCELERATION
- opt_set LCD_LANGUAGE kana_utf8
- opt_disable SEGMENT_LEVELED_MOVES
- opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
- build_marlin
@@ -160,25 +162,13 @@ script:
- opt_set_adv I2C_SLAVE_ADDRESS 63
- 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
#
# Mixing Extruder with 5 steppers
# Mixing Extruder with 5 steppers, Cyrillic
#
- restore_configs
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
- opt_enable MIXING_EXTRUDER
- opt_enable MIXING_EXTRUDER CR10_STOCKDISPLAY
- opt_set MIXING_STEPPERS 5
- opt_set LCD_LANGUAGE ru
- build_marlin
#
# Test DUAL_X_CARRIAGE
@@ -193,11 +183,11 @@ script:
#
# 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
#- 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
#
@@ -206,15 +196,14 @@ script:
- 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
#
# Enable COREXY
#
- restore_configs
- opt_enable COREXY
- build_marlin
#- restore_configs
#- opt_enable COREXY
#- build_marlin
#
# Test many less common options
#
@@ -228,7 +217,7 @@ script:
- opt_enable_adv VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS ACTION_ON_KILL
- opt_enable_adv EXTRA_FAN_SPEED FWERETRACT Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS
- opt_enable_adv MENU_ADDAUTOSTART SDCARD_SORT_ALPHA
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT
- opt_enable FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR
- opt_enable ENDSTOP_INTERRUPTS_FEATURE FAN_SOFT_PWM SDSUPPORT
- opt_enable USE_XMAX_PLUG
@@ -238,15 +227,15 @@ script:
#
# ULTRA_LCD
#
- restore_configs
- opt_enable ULTRA_LCD
- build_marlin
#- restore_configs
#- opt_enable ULTRA_LCD
#- build_marlin
#
# DOGLCD
#
- restore_configs
- opt_enable DOGLCD
- build_marlin
#- restore_configs
#- opt_enable DOGLCD
#- build_marlin
#
# MAKRPANEL
# Needs to use Melzi and Sanguino hardware
@@ -257,15 +246,26 @@ script:
#
# REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, BABYSTEPPING, RIGIDBOARD_V2, and DAC_MOTOR_CURRENT_DEFAULT
#
- restore_configs
- opt_set MOTHERBOARD BOARD_RIGIDBOARD_V2
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT
- build_marlin
#
#- restore_configs
#- opt_set MOTHERBOARD BOARD_RIGIDBOARD_V2
#- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT
#- build_marlin
# #
# G3D_PANEL with SDCARD_SORT_ALPHA and STATUS_MESSAGE_SCROLLING
#
#- restore_configs
#- opt_enable G3D_PANEL SDSUPPORT
#- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES
#- 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 with LIGHTWEIGHT_UI
#
- restore_configs
- opt_enable G3D_PANEL SDSUPPORT
- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES LIGHTWEIGHT_UI
- opt_set_adv SDSORT_GCODE true
- opt_set_adv SDSORT_USES_RAM true
@@ -273,13 +273,6 @@ script:
- opt_set_adv SDSORT_CACHE_NAMES true
- build_marlin
#
# REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER with SDCARD_SORT_ALPHA and STATUS_MESSAGE_SCROLLING
#
- restore_configs
- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES
- build_marlin
#
# REPRAPWORLD_KEYPAD
#
# Cant find configuration details to get it to compile
@@ -289,9 +282,9 @@ script:
#
# RA_CONTROL_PANEL
#
- restore_configs
- opt_enable RA_CONTROL_PANEL PINS_DEBUGGING
- build_marlin
#- restore_configs
#- opt_enable RA_CONTROL_PANEL PINS_DEBUGGING
#- build_marlin
#
######## I2C LCD/PANELS ##############
#
@@ -319,9 +312,19 @@ script:
#
# LCM1602
#
- restore_configs
- opt_enable LCM1602
- build_marlin
#- restore_configs
#- opt_enable LCM1602
#- build_marlin
#
# Language files test with REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#
#- restore_configs
#- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
#- for lang in an bg ca zh_CN zh_TW cz da de el el-gr en es eu fi fr gl hr it jp-kana nl pl pt pt-br ru sk tr uk test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; build_marlin
#
#- restore_configs
#- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT
#- for lang in an bg ca zh_CN zh_TW cz da de el el-gr en es eu fi fr gl hr it jp-kana nl pl pt pt-br ru sk tr uk test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; build_marlin
#
#
######## Example Configurations ##############
@@ -339,8 +342,8 @@ script:
# 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 RESTORE_LEVELING_AFTER_G28 Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY
- opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT
- opt_enable OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY
- build_marlin
#
# Delta Config (FLSUN AC because it's complex)
@@ -353,12 +356,25 @@ script:
#- use_example_configs makibox
#- build_marlin
#
# SCARA with TMC2130 and TMC2208
# SCARA with TMC2130
#
- use_example_configs SCARA
- opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER SCARA_FEEDRATE_SCALING
- opt_enable_adv HAVE_TMC2130 HAVE_TMC2208 X_IS_TMC2130 Y_IS_TMC2130 Z_IS_TMC2208 E0_IS_TMC2208
- opt_enable_adv MONITOR_DRIVER_STATUS STEALTHCHOP HYBRID_THRESHOLD TMC_DEBUG SENSORLESS_HOMING TMC_Z_CALIBRATION
- opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
- opt_set X_DRIVER_TYPE TMC2130
- opt_set Y_DRIVER_TYPE TMC2130
- opt_set Z_DRIVER_TYPE TMC2130
- opt_set E0_DRIVER_TYPE TMC2130
- opt_enable_adv MONITOR_DRIVER_STATUS STEALTHCHOP HYBRID_THRESHOLD SENSORLESS_HOMING
- build_marlin
#
# TMC2208 Config
#
- restore_configs
- opt_set X_DRIVER_TYPE TMC2208
- opt_set Y_DRIVER_TYPE TMC2208
- opt_set Z_DRIVER_TYPE TMC2208
- opt_set E0_DRIVER_TYPE TMC2208
- opt_enable_adv MONITOR_DRIVER_STATUS STEALTHCHOP HYBRID_THRESHOLD TMC_DEBUG
- build_marlin
#
# tvrrug Config need to check board type for sanguino atmega644p
+1
View File
@@ -479,6 +479,7 @@
#define Z_SERVO_ANGLES { BLTOUCH_DEPLOY, BLTOUCH_STOW }
#define BLTOUCH_DEPLOY 10
#define BLTOUCH_ALARM 60
#define BLTOUCH_STOW 90
#define BLTOUCH_SELFTEST 120
#define BLTOUCH_RESET 160
+8 -2
View File
@@ -190,11 +190,17 @@
* Safe Homing Options
*/
#if ENABLED(Z_SAFE_HOMING)
#if ENABLED(AUTO_BED_LEVELING_UBL)
// Home close to center so grid points have z heights very close to 0
#define _SAFE_POINT(A) (((GRID_MAX_POINTS_##A) / 2) * (A##_BED_SIZE - 2 * (MESH_INSET)) / (GRID_MAX_POINTS_##A - 1) + MESH_INSET)
#else
#define _SAFE_POINT(A) A##_CENTER
#endif
#ifndef Z_SAFE_HOMING_X_POINT
#define Z_SAFE_HOMING_X_POINT X_CENTER
#define Z_SAFE_HOMING_X_POINT _SAFE_POINT(X)
#endif
#ifndef Z_SAFE_HOMING_Y_POINT
#define Z_SAFE_HOMING_Y_POINT Y_CENTER
#define Z_SAFE_HOMING_Y_POINT _SAFE_POINT(Y)
#endif
#define X_TILT_FULCRUM Z_SAFE_HOMING_X_POINT
#define Y_TILT_FULCRUM Z_SAFE_HOMING_Y_POINT
+103 -258
View File
@@ -1,55 +1,3 @@
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
/**
* Enable if you replace the stepper drivers with TMC 2208. Be sure to remove MS3 jumper
* underneath the stepper driver! Plug and Play will result in Stealth Chop 2 Mode enabled
* Stealthchop with 2208 on E will disabe inear Advance! Please enable stealthchop if
* you require Linear Advance with a TMC2208 on the extruder!
* If you have used a UART connection to program the driver to SpreadCycle mode, pease seect that as well
*/
//#define X_2208
//#define X_SpreadCycle
//#define Y_2208
//#define Y_SpreadCycle // Highly recommended as large prints with high mass can cause layer shifts with stealthchop at high speed
//#define Y_4988 // Some machines shipped with 4988 drivers across the board. Set this if you arent sure what you have and all the drivers look identical
//#define Z_2208 // NOT Recommended! Dual stepper current draw is above the recommended limit for this driver
//#define Z_SpreadCycle
#define Z_4988 // Some machines shipped with 4988 drivers across the board. Set this if you arent sure what you have and all the drivers look identical
//#define E_2208 // Not Recommended! Stealthchop mode faults with linear advance
//#define E_SpreadCycle
/**
* Enable if you install a KEENOVO AC BED with Solid State Relay
*/
//#define BED_AC
//#define HotendAllMetal
/**
* Enable if you install a filament runout sensor from www.formbotusa.com
*/
//#define RunoutSensor
//#define ledgeFilSensor //Modify filament sensor contact type for TM3D V2 sensors
/**
* Enable if you wish to change the auto level strategy to Unified Bed Leveling. Under CUSTOM COMMANDS, run Step 1 and 2 before setting Z Offset
*/
//#define UBL
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
@@ -133,7 +81,7 @@
// User-specified version info of this build to display in [Pronterface, etc] terminal window during
// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
// build by the user have been successfully uploaded into firmware.
#define STRING_CONFIG_H_AUTHOR "Tinymachines3D" // Who made the changes.
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
#define SHOW_BOOTSCREEN
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
#define STRING_SPLASH_LINE2 WEBSITE_URL // will be shown during bootup in line 2
@@ -150,10 +98,10 @@
*/
// Enable to show the bitmap in Marlin/_Bootscreen.h on startup.
#define SHOW_CUSTOM_BOOTSCREEN
//#define SHOW_CUSTOM_BOOTSCREEN
// Enable to show the bitmap in Marlin/_Statusscreen.h on the status screen.
#define CUSTOM_STATUS_SCREEN_IMAGE
//#define CUSTOM_STATUS_SCREEN_IMAGE
// @section machine
@@ -175,7 +123,7 @@
*
* :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
*/
#define BAUDRATE 115200
#define BAUDRATE 250000
// Enable the Bluetooth serial interface on AT90USB devices
//#define BLUETOOTH
@@ -183,12 +131,12 @@
// The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RUMBA
#define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif
// Optional custom name for your RepStrap or other custom machine
// Displayed in the LCD "Ready" message
#define CUSTOM_MACHINE_NAME "TM3D RaPtOr"
//#define CUSTOM_MACHINE_NAME "3D Printer"
// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
@@ -201,7 +149,7 @@
#define EXTRUDERS 1
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
// For Cyclops or any "multi-extruder" that shares a single nozzle.
//#define SINGLENOZZLE
@@ -367,11 +315,7 @@
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#if(ENABLED(BED_AC))
#define TEMP_SENSOR_BED 11
#else
#define TEMP_SENSOR_BED 1
#endif
#define TEMP_SENSOR_BED 0
#define TEMP_SENSOR_CHAMBER 0
// Dummy thermistor constant temperature readings, for use with 998 and 999
@@ -406,16 +350,12 @@
// When temperature exceeds max temp, your heater will be switched off.
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
// You should use MINTEMP for thermistor short/failure protection.
#define HEATER_0_MAXTEMP 290
#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275
#define HEATER_4_MAXTEMP 275
#if(ENABLED(BED_AC))
#define BED_MAXTEMP 150
#else
#define BED_MAXTEMP 100
#endif
#define BED_MAXTEMP 150
//===========================================================================
//============================= PID Settings ================================
@@ -428,7 +368,7 @@
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_K1 0.95 // Smoothing factor within any PID loop
#if ENABLED(PIDTEMP)
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -440,24 +380,19 @@
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// Ultimaker
#if(ENABLED(HotendAllMetal))
#define DEFAULT_Kp 21.9
#define DEFAULT_Ki 1.5
#define DEFAULT_Kd 79.88
#else
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
#endif
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
// MakerGear
//#define DEFAULT_Kp 7.0
//#define DEFAULT_Ki 0.1
//#define DEFAULT_Kd 12
//#define DEFAULT_Kp 7.0
//#define DEFAULT_Ki 0.1
//#define DEFAULT_Kd 12
// Mendel Parts V9 on 12V
//#define DEFAULT_Kp 63.0
//#define DEFAULT_Ki 2.25
//#define DEFAULT_Kd 440
//#define DEFAULT_Kp 63.0
//#define DEFAULT_Ki 2.25
//#define DEFAULT_Kd 440
#endif // PIDTEMP
@@ -478,7 +413,7 @@
* heater. If your configuration is significantly different than this and you don't understand
* the issues involved, don't use bed PID until someone else verifies that your hardware works.
*/
#define PIDTEMPBED
//#define PIDTEMPBED
//#define BED_LIMIT_SWITCHING
@@ -496,9 +431,9 @@
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 100.0
#define DEFAULT_bedKi 15.0
#define DEFAULT_bedKd 200.0
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune
@@ -573,10 +508,10 @@
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG
// Enable pullup for all endstops to prevent a floating state
@@ -593,12 +528,12 @@
#endif
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
/**
@@ -615,41 +550,17 @@
* TMC5130, TMC5130_STANDALONE
* :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
*/
#if ENABLED(X_2208)
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define X2_DRIVER_TYPE TMC2208_STANDALONE
#else
#define X_DRIVER_TYPE A4988
#define X2_DRIVER_TYPE A4988
#endif
#if ENABLED(Y_2208)
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#elif ENABLED(Y_4988)
#define Y_DRIVER_TYPE A4988
#else
#define Y_DRIVER_TYPE DRV8825
#endif
#if ENABLED(Z_2208)
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#elif ENABLED(Z_4988)
#define Z_DRIVER_TYPE A4988
#else
#define Z_DRIVER_TYPE DRV8825
#endif
//#define X_DRIVER_TYPE A4988
//#define Y_DRIVER_TYPE A4988
//#define Z_DRIVER_TYPE A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
#if ENABLED(E_2208)
#define E0_DRIVER_TYPE TMC2208_STANDALONE
#define E1_DRIVER_TYPE TMC2208_STANDALONE
#else
#define E0_DRIVER_TYPE DRV8825
#define E1_DRIVER_TYPE DRV8825
#endif
//#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
@@ -697,26 +608,14 @@
* Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#if(ENABLED(Y_2208) || ENABLED(Y_4988))
#define Y_STEPSMM 80
#else
#define Y_STEPSMM 160
#endif
#if(ENABLED(Z_2208) || ENABLED(Z_4988))
#define Z_STEPSMM 800
#else
#define Z_STEPSMM 1600
#endif
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80,Y_STEPSMM , Z_STEPSMM, 96 }
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 }
/**
* Default Max Feed Rate (mm/s)
* Override with M203
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_FEEDRATE { 250, 150, 5, 25 }
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
/**
* Default Max Acceleration (change/s) change = mm/s
@@ -724,26 +623,7 @@
* Override with M201
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#if(ENABLED(X_2208))
#if(ENABLED(X_SpreadCycle))
#define x_accel 1750
#else
#define x_accel 1000
#endif
#else
#define x_accel 1500
#endif
#if(ENABLED(Y_2208))
#if(ENABLED(Y_SpreadCycle))
#define y_accel 500
#else
#define y_accel 300
#endif
#else
#define y_accel 500
#endif
#define DEFAULT_MAX_ACCELERATION { x_accel, y_accel, 400, 4000 }
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 }
/**
* Default Acceleration (change/s) change = mm/s
@@ -765,18 +645,9 @@
* When changing speed and direction, if the difference is less than the
* value set here, it may happen instantaneously.
*/
#if(ENABLED(X_SpreadCycle) || !ENABLED(X_2208))
#define DEFAULT_XJERK 20.0
#else
#define DEFAULT_XJERK 10.0
#endif
#if(ENABLED(Y_SpreadCycle) || !ENABLED(Y_2208))
#define DEFAULT_YJERK 10.0
#else
#define DEFAULT_YJERK 5.0
#endif
#define DEFAULT_ZJERK 0.4
#define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0
#define DEFAULT_ZJERK 0.3
#define DEFAULT_EJERK 5.0
/**
@@ -856,9 +727,10 @@
/**
* The BLTouch probe uses a Hall effect sensor and emulates a servo.
*/
#define BLTOUCH
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -905,9 +777,11 @@
* O-- FRONT --+
* (0,0)
*/
#define X_PROBE_OFFSET_FROM_EXTRUDER -22 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.5 // Z offset: -below +above [the nozzle]
#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
// Certain types of probes need to stay away from edges
#define MIN_PROBE_EDGE 10
// X and Y axis travel speed (mm/m) between probes
@@ -922,7 +796,7 @@
// The number of probes to perform at each point.
// Set to 2 for a fast/slow probe, using the second probe result.
// Set to 3 or more for slow probes, averaging the results.
#define MULTIPLE_PROBING 2
//#define MULTIPLE_PROBING 2
/**
* Z probes require clearance when deploying, stowing, and moving between
@@ -938,7 +812,7 @@
* Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
* But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
*/
#define Z_CLEARANCE_DEPLOY_PROBE 5 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING 5 // Z position after probing is done
@@ -950,7 +824,7 @@
#define Z_PROBE_OFFSET_RANGE_MAX 20
// Enable the M48 repeatability test to test probe accuracy
#define Z_MIN_PROBE_REPEATABILITY_TEST
//#define Z_MIN_PROBE_REPEATABILITY_TEST
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
// :{ 0:'Low', 1:'High' }
@@ -975,32 +849,15 @@
// @section machine
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#if(ENABLED(X_2208))
#define INVERT_X_DIR true
#else
#define INVERT_X_DIR false
#endif
#if(ENABLED(Y_2208))
#define INVERT_Y_DIR true
#else
#define INVERT_Y_DIR false
#endif
#if(ENABLED(Z_2208))
#define INVERT_Z_DIR false
#else
#define INVERT_Z_DIR true
#endif
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
#if(ENABLED(E_2208))
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#else
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
#endif
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
@@ -1011,20 +868,20 @@
//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
// Be sure you have this distance over your Z_MAX_POS in case.
// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR 1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
// @section machine
// The size of the print bed
#define X_BED_SIZE 400
#define Y_BED_SIZE 400
#define X_BED_SIZE 200
#define Y_BED_SIZE 200
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
@@ -1032,7 +889,7 @@
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 500
#define Z_MAX_POS 200
/**
* Software Endstops
@@ -1060,7 +917,7 @@
#endif
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
//#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
#endif
/**
@@ -1071,17 +928,10 @@
* For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
* By default the firmware assumes HIGH=FILAMENT PRESENT.
*/
#if(ENABLED(RunoutSensor))
#define FILAMENT_RUNOUT_SENSOR
#endif
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_PIN 57
#if ENABLED(ledgeFilSensor)
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
#else
#define FIL_RUNOUT_INVERTING true // set to true to invert the logic of the sensor.
#endif
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#endif
@@ -1126,19 +976,15 @@
*/
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#if(ENABLED(UBL))
#define AUTO_BED_LEVELING_UBL
#else
#define AUTO_BED_LEVELING_BILINEAR
#endif
//#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING
/**
* Normally G28 leaves leveling disabled on completion. Enable
* this option to have G28 restore the prior leveling state.
*/
#define RESTORE_LEVELING_AFTER_G28
//#define RESTORE_LEVELING_AFTER_G28
/**
* Enable detailed logging of G28, G29, M48, etc.
@@ -1162,7 +1008,7 @@
/**
* Enable the G26 Mesh Validation Pattern tool.
*/
#define G26_MESH_VALIDATION
//#define G26_MESH_VALIDATION
#if ENABLED(G26_MESH_VALIDATION)
#define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle.
#define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool.
@@ -1175,17 +1021,14 @@
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
// Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 6
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 30
#define RIGHT_PROBE_BED_POSITION 365
#define FRONT_PROBE_BED_POSITION 30
#define BACK_PROBE_BED_POSITION 365
// The Z probe minimum outer margin (to validate G29 parameters).
#define MIN_PROBE_EDGE 10
//#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
//#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
//#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
//#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)
// Probe along the Y axis, advancing X after each column
//#define PROBE_Y_FIRST
@@ -1194,7 +1037,7 @@
// Beyond the probed grid, continue the implied tilt?
// Default is to maintain the height of the nearest edge.
#define EXTRAPOLATE_BEYOND_GRID
//#define EXTRAPOLATE_BEYOND_GRID
//
// Experimental Subdivision of the grid by Catmull-Rom method.
@@ -1216,14 +1059,14 @@
//#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh
#define MESH_INSET 35 // Set Mesh bounds as an inset region of the bed
#define MESH_INSET 1 // Set Mesh bounds as an inset region of the bed
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
#define UBL_Z_RAISE_WHEN_OFF_MESH 0.0 // When the nozzle is off the mesh, this value is used
//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used
// as the Z-Height correction value.
#elif ENABLED(MESH_BED_LEVELING)
@@ -1245,12 +1088,12 @@
* Override if the automatically selected points are inadequate.
*/
#if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL)
#define PROBE_PT_1_X 50
#define PROBE_PT_1_Y 350
#define PROBE_PT_2_X 50
#define PROBE_PT_2_Y 50
#define PROBE_PT_3_X 350
#define PROBE_PT_3_Y 50
//#define PROBE_PT_1_X 15
//#define PROBE_PT_1_Y 180
//#define PROBE_PT_2_X 15
//#define PROBE_PT_2_Y 20
//#define PROBE_PT_3_X 170
//#define PROBE_PT_3_Y 20
#endif
/**
@@ -1268,7 +1111,8 @@
//#define LEVEL_BED_CORNERS
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 20 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -1276,7 +1120,7 @@
* Commands to execute at the end of G29 probing.
* Useful to retract or move the Z probe out of the way.
*/
//#define Z_PROBE_END_SCRIPT "M280 P0 S90"
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
// @section homing
@@ -1298,11 +1142,12 @@
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
// - Prevent Z homing when the Z probe is outside bed area.
#define Z_SAFE_HOMING
//
//#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT 50 // X point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_Y_POINT 50 // Y point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // X point for Z homing when homing all axes (G28).
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28).
#endif
// Homing speeds (mm/m)
@@ -1380,7 +1225,7 @@
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
//
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
@@ -1412,12 +1257,12 @@
// @section temperature
// Preheat Constants
#define PREHEAT_1_TEMP_HOTEND 200
#define PREHEAT_1_TEMP_BED 60
#define PREHEAT_1_TEMP_HOTEND 180
#define PREHEAT_1_TEMP_BED 70
#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
#define PREHEAT_2_TEMP_HOTEND 220
#define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_TEMP_HOTEND 240
#define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
/**
@@ -1431,12 +1276,12 @@
* P1 Raise the nozzle always to Z-park height.
* P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
*/
#define NOZZLE_PARK_FEATURE
//#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z }
#define NOZZLE_PARK_POINT { 10, 10, 20}
#define NOZZLE_PARK_XY_FEEDRATE 70 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#define NOZZLE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define NOZZLE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#endif
@@ -1583,7 +1428,7 @@
* you must uncomment the following option or it won't work.
*
*/
#define SDSUPPORT
//#define SDSUPPORT
/**
* SD CARD: SPI SPEED
@@ -1655,7 +1500,7 @@
//
// Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu.
//
#define INDIVIDUAL_AXIS_HOMING_MENU
//#define INDIVIDUAL_AXIS_HOMING_MENU
//
// SPEAKER/BUZZER
@@ -1813,7 +1658,7 @@
// RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
//
// ReprapWorld Graphical LCD
+52 -56
View File
@@ -75,8 +75,8 @@
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 180 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 2 // Degrees Celsius
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104, M109, or M303 increases the target temperature, the
@@ -90,7 +90,7 @@
* and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
* below 2.
*/
#define WATCH_TEMP_PERIOD 180 // Seconds
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
@@ -98,7 +98,7 @@
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 300 // Seconds
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
@@ -134,7 +134,7 @@
#endif
// Show extra position information in M114
#define M114_DETAIL
//#define M114_DETAIL
// Show Temperature ADC value
// Enable for M105 to include ADC values read from temperature sensors.
@@ -206,7 +206,7 @@
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
#define FAN_KICKSTART_TIME 100
//#define FAN_KICKSTART_TIME 100
/**
* PWM Fan Scaling
@@ -260,13 +260,13 @@
/**
* M355 Case Light on-off / brightness
*/
#define CASE_LIGHT_ENABLE
//#define CASE_LIGHT_ENABLE
#if ENABLED(CASE_LIGHT_ENABLE)
#define CASE_LIGHT_PIN 5 // Override the default pin if needed
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 255 // Set default power-up brightness (0-255, requires PWM pin)
#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
//#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED.
#if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
#define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White }
@@ -386,7 +386,7 @@
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate)
#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially
//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
@@ -524,19 +524,19 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
#define LCD_INFO_MENU
//#define LCD_INFO_MENU
// Scroll a longer status message into view
#define STATUS_MESSAGE_SCROLLING
//#define STATUS_MESSAGE_SCROLLING
// On the Info Screen, display XY with one decimal place when possible
#define LCD_DECIMAL_SMALL_XY
//#define LCD_DECIMAL_SMALL_XY
// The timeout (in ms) to return to the status screen from sub-menus
#define LCD_TIMEOUT_TO_STATUS 15000
//#define LCD_TIMEOUT_TO_STATUS 15000
// Add an 'M73' G-code to set the current percentage
#define LCD_SET_PROGRESS_MANUALLY
//#define LCD_SET_PROGRESS_MANUALLY
#if ENABLED(SDSUPPORT) || ENABLED(LCD_SET_PROGRESS_MANUALLY)
//#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing
@@ -638,10 +638,10 @@
#endif
// This allows hosts to request long names for files and folders with M33
#define LONG_FILENAME_HOST_SUPPORT
//#define LONG_FILENAME_HOST_SUPPORT
// Enable this option to scroll long filenames in the SD card menu
#define SCROLL_LONG_FILENAMES
//#define SCROLL_LONG_FILENAMES
/**
* This option allows you to abort SD printing when any endstop is triggered.
@@ -660,7 +660,7 @@
/**
* Auto-report SdCard status with M27 S<seconds>
*/
#define AUTO_REPORT_SD_STATUS
//#define AUTO_REPORT_SD_STATUS
#endif // SDSUPPORT
@@ -678,7 +678,7 @@
*/
#if ENABLED(DOGLCD)
// Show SD percentage next to the progress bar
#define DOGM_SD_PERCENT
//#define DOGM_SD_PERCENT
// Enable to save many cycles by drawing a hollow frame on the Info Screen
#define XYZ_HOLLOW_FRAME
@@ -688,7 +688,7 @@
// A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
// A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
@@ -744,16 +744,16 @@
*
* Warning: Does not respect endstops!
*/
#define BABYSTEPPING
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
#define BABYSTEP_MULTIPLICATOR 25 // Babysteps are very small. Increase for faster motion.
#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
//#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
//#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
// Note: Extra time may be added to mitigate controller latency.
#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
//#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
#endif
// @section extruder
@@ -774,9 +774,7 @@
* See http://marlinfw.org/docs/features/lin_advance.html for full instructions.
* Mention @Sebastianv650 on GitHub to alert the author of any issues.
*/
#if(ENABLED(E_2208) && !ENABLED(E_SpreadCycle))
#define LIN_ADVANCE
#endif
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
@@ -806,7 +804,7 @@
#endif
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
#define BEZIER_CURVE_SUPPORT
//#define BEZIER_CURVE_SUPPORT
// G38.2 and G38.3 Probe Target
// Set MULTIPLE_PROBING if you want G38 to double touch
@@ -919,7 +917,7 @@
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
#define EMERGENCY_PARSER
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
@@ -928,7 +926,7 @@
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
#define ADVANCED_OK
//#define ADVANCED_OK
// @section extras
@@ -947,7 +945,7 @@
* Note that M207 / M208 / M209 settings are saved to EEPROM.
*
*/
#define FWRETRACT // ONLY PARTIALLY TESTED
//#define FWRETRACT // ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_AUTORETRACT 0.1 // When auto-retract is on, convert E moves of this length and over
#define MAX_AUTORETRACT 10.0 // Upper limit for auto-retract conversion
@@ -980,7 +978,7 @@
* Requires NOZZLE_PARK_FEATURE.
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
*/
#define ADVANCED_PAUSE_FEATURE
//#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract.
@@ -1012,11 +1010,11 @@
#define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged.
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety.
#define FILAMENT_CHANGE_ALERT_BEEPS 2 // Number of alert beeps to play when a response is needed.
#define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed.
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
//#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
//#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
//#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
@@ -1432,7 +1430,7 @@
/**
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
*/
#define PINS_DEBUGGING
//#define PINS_DEBUGGING
/**
* Auto-report temperatures with M155 S<seconds>
@@ -1486,28 +1484,26 @@
/**
* User-defined menu items that execute custom GCode
*/
#if(ENABLED(UBL))
#define CUSTOM_USER_MENUS
#endif
//#define CUSTOM_USER_MENUS
#if ENABLED(CUSTOM_USER_MENUS)
//#define USER_SCRIPT_DONE "M117 User Script Done"
#define USER_SCRIPT_DONE "M117 User Script Done"
#define USER_SCRIPT_AUDIBLE_FEEDBACK
#define USER_SCRIPT_RETURN // Return to status screen after a script
//#define USER_SCRIPT_RETURN // Return to status screen after a script
#define USER_DESC_1 "UBL Commission Step 1"
#define USER_GCODE_1 "M502 \n M500 \n M501 \n M190 S75 \n G28 \n G29 P1 \n G29 S1 \n M117 Run Step 2 \n"
#define USER_DESC_2 "UBL Commission Step 2"
#define USER_GCODE_2 "G29 S1 \n G29 S0 \n G29 F 10.0 \n G29 A \n M500 \n G28 \n G29 L1 \n M109 S225 \n G1 X150 Y 150 \n G1 Z0 \n M117 Set Z Offset \n"
#define USER_DESC_1 "Home & UBL Info"
#define USER_GCODE_1 "G28\nG29 W"
#define USER_DESC_3 "Prep for Z Adjust"
#define USER_GCODE_3 "M190 75 \n M104 235 \n G28 \n G29 L1 \n G1 X150 Y 150 \n G1 Z0 \n"
#define USER_DESC_2 "Preheat for PLA"
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
#define USER_DESC_4 "Fill Mesh Points"
#define USER_GCODE_4 "G29 P3 \n G29 P3 \n G29 P3 \n G29 T \n"
#define USER_DESC_3 "Preheat for ABS"
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
#define USER_DESC_5 "Run Mesh Validation"
#define USER_GCODE_5 "G26 \n"
#define USER_DESC_4 "Heat Bed/Home/Level"
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
#define USER_DESC_5 "Home & Info"
#define USER_GCODE_5 "G28\nM503"
#endif
/**
@@ -1522,8 +1518,8 @@
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
#define ACTION_ON_PAUSE "pause"
#define ACTION_ON_RESUME "resume"
//#define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume"
//===========================================================================
//====================== I2C Position Encoder Settings ======================
+49 -84
View File
@@ -601,13 +601,7 @@ uint8_t target_extruder;
#endif
#if HAS_POWER_SWITCH
bool powersupply_on = (
#if ENABLED(PS_DEFAULT_OFF)
false
#else
true
#endif
);
bool powersupply_on;
#if ENABLED(AUTO_POWER_CONTROL)
#define PSU_ON() powerManager.power_on()
#define PSU_OFF() powerManager.power_off()
@@ -943,9 +937,9 @@ void setup_powerhold() {
#endif
#if HAS_POWER_SWITCH
#if ENABLED(PS_DEFAULT_OFF)
PSU_OFF();
powersupply_on = true; PSU_OFF();
#else
PSU_ON();
powersupply_on = false; PSU_ON();
#endif
#endif
}
@@ -1383,7 +1377,11 @@ bool get_target_extruder_from_command(const uint16_t code) {
}
#elif ENABLED(DELTA)
soft_endstop_min[axis] = base_min_pos(axis);
soft_endstop_max[axis] = axis == Z_AXIS ? delta_height : base_max_pos(axis);
soft_endstop_max[axis] = axis == Z_AXIS ? delta_height
#if HAS_BED_PROBE
- zprobe_zoffset
#endif
: base_max_pos(axis);
#else
soft_endstop_min[axis] = base_min_pos(axis);
soft_endstop_max[axis] = base_max_pos(axis);
@@ -1512,13 +1510,14 @@ static void set_axis_is_at_home(const AxisEnum axis) {
}
else
#elif ENABLED(DELTA)
if (axis == Z_AXIS)
current_position[axis] = delta_height;
else
#endif
{
current_position[axis] = (axis == Z_AXIS ? delta_height
#if HAS_BED_PROBE
- zprobe_zoffset
#endif
: base_home_pos(axis));
#else
current_position[axis] = base_home_pos(axis);
}
#endif
/**
* Z Probe Z Homing? Account for the probe's Z offset.
@@ -2094,6 +2093,11 @@ void clean_up_after_endstop_or_probe_move() {
}
bltouch_command(deploy ? BLTOUCH_DEPLOY : BLTOUCH_STOW);
#if ENABLED(BLTOUCH_V3)
// The version 3 of BlTouch needs to switch to Alarm & Test mode after deploy
// or it keeps on pushing the probes out and ends up in error mode (collision).
if (deploy) bltouch_command(BLTOUCH_ALARM);
#endif
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) {
@@ -4062,7 +4066,11 @@ inline void gcode_G4() {
#endif
// Move all carriages together linearly until an endstop is hit.
current_position[X_AXIS] = current_position[Y_AXIS] = current_position[Z_AXIS] = (delta_height + 10);
current_position[X_AXIS] = current_position[Y_AXIS] = current_position[Z_AXIS] = (delta_height + 10
#if HAS_BED_PROBE
- zprobe_zoffset
#endif
);
feedrate_mm_s = homing_feedrate(X_AXIS);
buffer_line_to_current_position();
planner.synchronize();
@@ -4591,7 +4599,7 @@ void home_all_axes() { gcode_G28(true); }
if (parser.seenval('X')) {
px = parser.value_int() - 1;
if (!WITHIN(px, 0, GRID_MAX_POINTS_X - 1)) {
SERIAL_PROTOCOLPAIR("X out of range (0-", int(GRID_MAX_POINTS_X));
SERIAL_PROTOCOLPAIR("X out of range (1-", int(GRID_MAX_POINTS_X));
SERIAL_PROTOCOLLNPGM(")");
return;
}
@@ -4604,7 +4612,7 @@ void home_all_axes() { gcode_G28(true); }
if (parser.seenval('Y')) {
py = parser.value_int() - 1;
if (!WITHIN(py, 0, GRID_MAX_POINTS_Y - 1)) {
SERIAL_PROTOCOLPAIR("Y out of range (0-", int(GRID_MAX_POINTS_Y));
SERIAL_PROTOCOLPAIR("Y out of range (1-", int(GRID_MAX_POINTS_Y));
SERIAL_PROTOCOLLNPGM(")");
return;
}
@@ -5750,12 +5758,6 @@ void home_all_axes() { gcode_G28(true); }
if ((!end_stops && tower_angles) || (end_stops && !tower_angles)) { // XOR
SERIAL_PROTOCOLPAIR(" Radius:", delta_radius);
}
#if HAS_BED_PROBE
if (!end_stops && !tower_angles) {
SERIAL_PROTOCOL_SP(30);
print_signed_float(PSTR("Offset"), zprobe_zoffset);
}
#endif
SERIAL_EOL();
}
@@ -5804,30 +5806,19 @@ void home_all_axes() { gcode_G28(true); }
/**
* - Probe a point
*/
static float calibration_probe(const float &nx, const float &ny, const bool stow, const bool set_up) {
static float calibration_probe(const float &nx, const float &ny, const bool stow) {
#if HAS_BED_PROBE
return probe_pt(nx, ny, set_up ? PROBE_PT_BIG_RAISE : stow ? PROBE_PT_STOW : PROBE_PT_RAISE, 0, false);
return probe_pt(nx, ny, stow ? PROBE_PT_STOW : PROBE_PT_RAISE, 0, false);
#else
UNUSED(stow);
UNUSED(set_up);
return lcd_probe_pt(nx, ny);
#endif
}
#if HAS_BED_PROBE && ENABLED(ULTIPANEL)
static float probe_z_shift(const float center) {
STOW_PROBE();
endstops.enable_z_probe(false);
float z_shift = lcd_probe_pt(0, 0) - center;
endstops.enable_z_probe(true);
return z_shift;
}
#endif
/**
* - Probe a grid
*/
static bool probe_calibration_points(float z_pt[NPP + 1], const int8_t probe_points, const bool towers_set, const bool stow_after_each, const bool set_up) {
static bool probe_calibration_points(float z_pt[NPP + 1], const int8_t probe_points, const bool towers_set, const bool stow_after_each) {
const bool _0p_calibration = probe_points == 0,
_1p_calibration = probe_points == 1 || probe_points == -1,
_4p_calibration = probe_points == 2,
@@ -5850,7 +5841,7 @@ void home_all_axes() { gcode_G28(true); }
if (!_0p_calibration) {
if (!_7p_no_intermediates && !_7p_4_intermediates && !_7p_11_intermediates) { // probe the center
z_pt[CEN] += calibration_probe(0, 0, stow_after_each, set_up);
z_pt[CEN] += calibration_probe(0, 0, stow_after_each);
if (isnan(z_pt[CEN])) return false;
}
@@ -5860,7 +5851,7 @@ void home_all_axes() { gcode_G28(true); }
I_LOOP_CAL_PT(rad, start, steps) {
const float a = RADIANS(210 + (360 / NPP) * (rad - 1)),
r = delta_calibration_radius * 0.1;
z_pt[CEN] += calibration_probe(cos(a) * r, sin(a) * r, stow_after_each, set_up);
z_pt[CEN] += calibration_probe(cos(a) * r, sin(a) * r, stow_after_each);
if (isnan(z_pt[CEN])) return false;
}
z_pt[CEN] /= float(_7p_2_intermediates ? 7 : probe_points);
@@ -5884,7 +5875,7 @@ void home_all_axes() { gcode_G28(true); }
const float a = RADIANS(210 + (360 / NPP) * (rad - 1)),
r = delta_calibration_radius * (1 - 0.1 * (zig_zag ? offset - circle : circle)),
interpol = fmod(rad, 1);
const float z_temp = calibration_probe(cos(a) * r, sin(a) * r, stow_after_each, set_up);
const float z_temp = calibration_probe(cos(a) * r, sin(a) * r, stow_after_each);
if (isnan(z_temp)) return false;
// split probe point to neighbouring calibration points
z_pt[uint8_t(LROUND(rad - interpol + NPP - 1)) % NPP + 1] += z_temp * sq(cos(RADIANS(interpol * 90)));
@@ -6013,10 +6004,7 @@ void home_all_axes() { gcode_G28(true); }
*
* Parameters:
*
* S Setup mode; disables probe protection
*
* Pn Number of probe points:
* P-1 Checks the z_offset with a center probe and paper test.
* P0 Normalizes calibration.
* P1 Calibrates height only with center probe.
* P2 Probe center and towers. Calibrate height, endstops and delta radius.
@@ -6039,22 +6027,15 @@ void home_all_axes() { gcode_G28(true); }
*/
inline void gcode_G33() {
const bool set_up =
#if HAS_BED_PROBE
parser.seen('S');
#else
false;
#endif
const int8_t probe_points = set_up ? 2 : parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS);
if (!WITHIN(probe_points, -1, 10)) {
SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (-1 - 10).");
const int8_t probe_points = parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS);
if (!WITHIN(probe_points, 0, 10)) {
SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (0-10).");
return;
}
const bool towers_set = !parser.seen('T');
const float calibration_precision = set_up ? Z_CLEARANCE_BETWEEN_PROBES / 5.0 : parser.floatval('C', 0.0);
const float calibration_precision = parser.floatval('C', 0.0);
if (calibration_precision < 0) {
SERIAL_PROTOCOLLNPGM("?(C)alibration precision is implausible (>=0).");
return;
@@ -6062,26 +6043,18 @@ void home_all_axes() { gcode_G28(true); }
const int8_t force_iterations = parser.intval('F', 0);
if (!WITHIN(force_iterations, 0, 30)) {
SERIAL_PROTOCOLLNPGM("?(F)orce iteration is implausible (0 - 30).");
SERIAL_PROTOCOLLNPGM("?(F)orce iteration is implausible (0-30).");
return;
}
const int8_t verbose_level = parser.byteval('V', 1);
if (!WITHIN(verbose_level, 0, 3)) {
SERIAL_PROTOCOLLNPGM("?(V)erbose level is implausible (0 - 3).");
SERIAL_PROTOCOLLNPGM("?(V)erbose level is implausible (0-3).");
return;
}
const bool stow_after_each = parser.seen('E');
if (set_up) {
delta_height = 999.99;
delta_radius = DELTA_PRINTABLE_RADIUS;
ZERO(delta_endstop_adj);
ZERO(delta_tower_angle_trim);
recalc_delta_settings();
}
const bool _0p_calibration = probe_points == 0,
_1p_calibration = probe_points == 1 || probe_points == -1,
_4p_calibration = probe_points == 2,
@@ -6130,7 +6103,6 @@ void home_all_axes() { gcode_G28(true); }
const char *checkingac = PSTR("Checking... AC");
serialprintPGM(checkingac);
if (verbose_level == 0) SERIAL_PROTOCOLPGM(" (DRY-RUN)");
if (set_up) SERIAL_PROTOCOLPGM(" (SET-UP)");
SERIAL_EOL();
lcd_setstatusPGM(checkingac);
@@ -6149,7 +6121,7 @@ void home_all_axes() { gcode_G28(true); }
// Probe the points
zero_std_dev_old = zero_std_dev;
if (!probe_calibration_points(z_at_pt, probe_points, towers_set, stow_after_each, set_up)) {
if (!probe_calibration_points(z_at_pt, probe_points, towers_set, stow_after_each)) {
SERIAL_PROTOCOLLNPGM("Correct delta settings with M665 and M666");
return AC_CLEANUP();
}
@@ -6197,11 +6169,6 @@ void home_all_axes() { gcode_G28(true); }
delta_calibration_radius = cr_old;
switch (probe_points) {
case -1:
#if HAS_BED_PROBE && ENABLED(ULTIPANEL)
zprobe_zoffset += probe_z_shift(z_at_pt[CEN]);
#endif
case 0:
test_precision = 0.00; // forced end
break;
@@ -10105,7 +10072,7 @@ inline void gcode_M226() {
NOLESS(thermalManager.lpq_len, 0);
#endif
thermalManager.updatePID();
thermalManager.update_pid();
SERIAL_ECHO_START();
#if ENABLED(PID_PARAMS_PER_HOTEND)
SERIAL_ECHOPAIR(" e:", e); // specify extruder in serial output
@@ -10251,7 +10218,7 @@ inline void gcode_M303() {
KEEPALIVE_STATE(NOT_BUSY);
#endif
thermalManager.PID_autotune(temp, e, c, u);
thermalManager.pid_autotune(temp, e, c, u);
#if DISABLED(BUSY_WHILE_HEATING)
KEEPALIVE_STATE(IN_HANDLER);
@@ -14638,7 +14605,7 @@ void prepare_move_to_destination() {
#if ENABLED(TEMP_STAT_LEDS)
static bool red_led = false;
static uint8_t red_led = -1; // Invalid value to force leds initializzation on startup
static millis_t next_status_led_update_ms = 0;
void handle_status_leds(void) {
@@ -14646,20 +14613,18 @@ void prepare_move_to_destination() {
next_status_led_update_ms += 500; // Update every 0.5s
float max_temp = 0.0;
#if HAS_HEATED_BED
max_temp = MAX3(max_temp, thermalManager.degTargetBed(), thermalManager.degBed());
max_temp = MAX(thermalManager.degTargetBed(), thermalManager.degBed());
#endif
HOTEND_LOOP()
max_temp = MAX3(max_temp, thermalManager.degHotend(e), thermalManager.degTargetHotend(e));
const bool new_led = (max_temp > 55.0) ? true : (max_temp < 54.0) ? false : red_led;
const uint8_t new_led = (max_temp > 55.0) ? HIGH : (max_temp < 54.0 || red_led == -1) ? LOW : red_led;
if (new_led != red_led) {
red_led = new_led;
#if PIN_EXISTS(STAT_LED_RED)
WRITE(STAT_LED_RED_PIN, new_led ? HIGH : LOW);
#if PIN_EXISTS(STAT_LED_BLUE)
WRITE(STAT_LED_BLUE_PIN, new_led ? LOW : HIGH);
#endif
#else
WRITE(STAT_LED_BLUE_PIN, new_led ? HIGH : LOW);
WRITE(STAT_LED_RED_PIN, new_led);
#endif
#if PIN_EXISTS(STAT_LED_BLUE)
WRITE(STAT_LED_BLUE_PIN, !new_led);
#endif
}
}
+4 -4
View File
@@ -35,7 +35,7 @@
/**
* Marlin release version identifier
*/
#define SHORT_BUILD_VERSION "1.1.9-R4"
#define SHORT_BUILD_VERSION "bugfix-1.1.x"
/**
* Verbose version identifier which should contain a reference to the location
@@ -48,7 +48,7 @@
* here we define this default string as the date where the latest release
* version was tagged.
*/
#define STRING_DISTRIBUTION_DATE "2019-01-10"
#define STRING_DISTRIBUTION_DATE "2018-07-31"
/**
* Required minimum Configuration.h and Configuration_adv.h file versions.
@@ -70,7 +70,7 @@
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
*/
#define MACHINE_NAME "TM3D Raptor"
#define MACHINE_NAME "3D Printer"
/**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source
@@ -89,6 +89,6 @@
* 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"
#define WEBSITE_URL "http://marlinfw.org"
#endif // USE_AUTOMATIC_VERSIONING
-106
View File
@@ -1,106 +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 128
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
const unsigned char custom_start_bmp[] PROGMEM = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFD, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x14, 0x10, 0x05, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF,
0xFE, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF,
0xFC, 0x60, 0x04, 0x06, 0x14, 0x10, 0x05, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x50, 0x04, 0x04, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F,
0xFC, 0x60, 0x04, 0x06, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xFE, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x06, 0x14, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
0xFC, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x04, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x3F,
0xFE, 0x14, 0x10, 0x54, 0x60, 0x04, 0x06, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x00, 0x02, 0x08, 0x1F,
0xFC, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x06, 0x14, 0x10, 0x00, 0x05, 0x04, 0x3F,
0xFE, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x04, 0x28, 0x08, 0x00, 0x0A, 0x02, 0x1F,
0xFC, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x54, 0x60, 0x04, 0x06, 0x54, 0x04, 0x00, 0x15, 0x01, 0x3F,
0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x00, 0x18, 0x01, 0x1F,
0xFC, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x00, 0x14, 0x01, 0x3F,
0xFE, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x54, 0x60, 0x04, 0x00, 0x18, 0x01, 0x1F,
0xFC, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x15, 0x01, 0x3F,
0xFE, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2A, 0x0A, 0x02, 0x1F,
0xFC, 0x84, 0x10, 0x46, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x51, 0x05, 0x04, 0x3F,
0xFE, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x61, 0x02, 0x88, 0x1F,
0xFC, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x51, 0x01, 0xF0, 0x3F,
0xFE, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x1F,
0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F,
0xFE, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
0xFC, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x55, 0x55, 0x55, 0xBF,
0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x44, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x41, 0x04, 0x11, 0xBF,
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x44, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x41, 0x04, 0x11, 0xBF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x55, 0x55, 0x55, 0xBF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xE0, 0x2E, 0xFB, 0x7D, 0xFB, 0xFB, 0xCF, 0xC1, 0xDF, 0xBB, 0x3E, 0xC0, 0xE1, 0xFE, 0x3C, 0x1F,
0xFD, 0xEE, 0x7B, 0x39, 0xF9, 0xF3, 0xCF, 0x9E, 0xDF, 0xBB, 0x3E, 0xDF, 0xDE, 0xFC, 0xDD, 0xE7,
0xFD, 0xEE, 0x3B, 0xBB, 0xF9, 0xEB, 0xD7, 0xBF, 0x5F, 0xBB, 0x5E, 0xDF, 0xDE, 0xFD, 0xED, 0xF7,
0xFD, 0xEE, 0xBB, 0xD3, 0xFA, 0xEB, 0xB7, 0x3F, 0xDF, 0xBB, 0x4E, 0xDF, 0xDF, 0xFF, 0xCD, 0xF3,
0xFD, 0xEE, 0xDB, 0xC7, 0xFA, 0xEB, 0xBB, 0x7F, 0xC0, 0x3B, 0x6E, 0xC0, 0xE3, 0xFF, 0x1D, 0xF3,
0xFD, 0xEE, 0xCB, 0xEF, 0xFA, 0xDB, 0xBB, 0x7F, 0xDF, 0xBB, 0x66, 0xDF, 0xF8, 0xFF, 0xCD, 0xF3,
0xFD, 0xEE, 0xEB, 0xEF, 0xFB, 0x5B, 0x03, 0x3F, 0x5F, 0xBB, 0x76, 0xDF, 0xFE, 0x7F, 0xED, 0xF3,
0xFD, 0xEE, 0xF3, 0xEF, 0xFB, 0x5B, 0x79, 0xBE, 0xDF, 0xBB, 0x7A, 0xDF, 0xDE, 0x7D, 0xED, 0xF7,
0xFD, 0xEE, 0xF3, 0xEF, 0xFB, 0xBA, 0xFD, 0x9E, 0xDF, 0xBB, 0x7C, 0xDF, 0xDE, 0xFD, 0xCD, 0xE7,
0xFD, 0xEE, 0xFB, 0xEF, 0xFB, 0xBA, 0xFD, 0xC1, 0xDF, 0xBB, 0x7E, 0xC0, 0xE0, 0xFE, 0x1C, 0x1F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
-460
View File
@@ -1,460 +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 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
*/
#include "MarlinConfig.h"
//============================================
#define STATUS_SCREENWIDTH 128
#define STATUS_SCREEN_HOTEND_TEXT_X(E) (41 + (E) * 20)
#define STATUS_SCREEN_BED_TEXT_X (HOTENDS > 1 ? 81 : 73)
#define FAN_ANIM_FRAMES 3
#define STATUS_SCREEN_FAN_TEXT_X (FAN_ANIM_FRAMES == 3 ? 103 : 105)
#define STATUS_SCREEN_FAN_TEXT_Y (FAN_ANIM_FRAMES > 2 ? 28 : 27)
//============================================
#if HOTENDS < 2
#if FAN_ANIM_FRAMES <= 2
const unsigned char status_screen0_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
#elif FAN_ANIM_FRAMES == 3
const unsigned char status_screen0_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111100,B00001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11011100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100111,B11101111,B11001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01110111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100000,B01111111,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B11110011,B11101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100001,B11110001,B11101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110011,B11110000,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B11110000,B01011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
#elif FAN_ANIM_FRAMES == 4
const unsigned char status_screen0_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111100,B00001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11011100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100111,B11101111,B11001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01110111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100000,B01111111,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B11110011,B11101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100001,B11110001,B11101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110011,B11110000,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B11110000,B01011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen3_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11110000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100001,B11100001,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11110011,B11101000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01111111,B11101000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01110111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101000,B11101110,B00101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11011100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00101111,B11111100,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B10011110,B00001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B00001111,B00001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B00001111,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B00001111,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00011111,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
#endif
#else // HOTENDS >= 2
#if FAN_ANIM_FRAMES <= 2
const unsigned char status_screen0_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11110000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B11111100,B00110000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11111100,B00010000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B01111000,B00010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B00110000,B00010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00000000,B11010000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101110,B00110001,B11010000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B01111011,B11010000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101111,B01111011,B11010000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101110,B00110001,B11010000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101100,B00000000,B11010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B00110000,B00010000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100000,B01111000,B00010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00100000,B11111100,B00010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B11111100,B00110000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11110000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11110000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110011,B10000111,B00110000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B10000111,B10010000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10000111,B11010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10000111,B11010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00000011,B11010000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100000,B00110000,B00010000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01111000,B00010000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100000,B01111000,B00010000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B00110000,B00010000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101111,B00000011,B11010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00101111,B10000111,B11010000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B10000111,B11010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00100111,B10000111,B10010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110011,B10000111,B00110000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11110000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000
};
#elif FAN_ANIM_FRAMES == 3
const unsigned char status_screen0_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000000,B00011111,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00100000,B00100111,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B11110000,B01111011,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B11110000,B01111011,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11111000,B11111101,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B11111000,B11111001,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000100,B00111111,B11100001,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B10000001,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B10000001,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000100,B00001111,B10000001,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000100,B00111111,B11100001,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000100,B11111000,B11111001,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000101,B11111000,B11111101,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B11110000,B01111011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B11110000,B01111011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00100000,B00100111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000000,B00011111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000110,B00011111,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00111110,B00000111,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00111110,B00000011,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00011110,B00000011,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00011110,B00001101,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00000110,B00111101,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000100,B00000111,B00111101,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B11111111,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B11111111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000111,B11111111,B10000001,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000101,B11100111,B00000001,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000101,B11000011,B00000001,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000101,B10000011,B11000001,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B00000011,B11000011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B00000011,B11100011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00000011,B11100111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000011,B00011111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000011,B00011111,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00000011,B11100111,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00000011,B11110011,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B10000011,B11100011,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11000011,B11000001,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11100011,B10000001,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000101,B11110111,B00000001,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B10000001,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B11111111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000100,B00001111,B11111111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000100,B00000111,B01111101,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000100,B00001110,B00111101,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000100,B00011110,B00011101,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B00111110,B00001011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B01111110,B00000011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00111110,B00000111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000110,B00011111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
};
#elif FAN_ANIM_FRAMES == 4
const unsigned char status_screen0_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101111,B00111001,B11001000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B11111111,B11101000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101111,B11000111,B11101000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101111,B11111111,B11101000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100111,B00111001,B11101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B00111000,B01101000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100000,B01111100,B00101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110000,B01111100,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B11111100,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101111,B11111100,B00001000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B11011100,B00001000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100111,B11101111,B11001000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B01110111,B11101000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100000,B01111111,B11101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B11110011,B11101000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100001,B11110001,B11101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110011,B11110000,B11011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110111,B11110000,B01011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100001,B11111111,B10001000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01101100,B00001000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100000,B01101100,B00001000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B01101100,B00001000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100011,B11111111,B00001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00111111,B11000111,B10001000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B11000111,B11001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110111,B10000111,B11011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110111,B00000011,B11011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000010,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen3_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11110000,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100001,B11100001,B11101000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11110011,B11101000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100000,B01111111,B11101000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01110111,B11101000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101000,B11101110,B00101000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101111,B11011100,B00001000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101111,B11111100,B00001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00101111,B10011110,B00001000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B00001111,B00001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110000,B00001111,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B00001111,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00011111,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
#endif
#endif // HOTENDS >= 2
+1 -1
View File
@@ -308,7 +308,7 @@ void MarlinSettings::postprocess() {
#endif
#if ENABLED(PIDTEMP)
thermalManager.updatePID();
thermalManager.update_pid();
#endif
#if DISABLED(NO_VOLUMETRICS)
@@ -743,6 +743,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1124,6 +1125,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -762,6 +762,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1179,6 +1180,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -141,8 +141,8 @@
// :[1, 2, 3, 4, 5]
#define EXTRUDERS 1
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
// The Anet A6 original extruder is designed for 1.75mm
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
// For Cyclops or any "multi-extruder" that shares a single nozzle.
//#define SINGLENOZZLE
@@ -771,6 +771,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1243,6 +1244,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -413,9 +413,9 @@
* heater. If your configuration is significantly different than this and you don't understand
* the issues involved, don't use bed PID until someone else verifies that your hardware works.
*/
//#define PIDTEMPBED
#define PIDTEMPBED
#define BED_LIMIT_SWITCHING
//#define BED_LIMIT_SWITCHING
/**
* Max Bed Power
@@ -431,9 +431,9 @@
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4
//#define DEFAULT_bedKp 10.00
//#define DEFAULT_bedKi .023
//#define DEFAULT_bedKd 305.4
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune
@@ -441,6 +441,12 @@
//#define DEFAULT_bedKi 1.41
//#define DEFAULT_bedKd 1675.16
// ANET A8
// original Bed + 0.3mm Heat conducting into 4mm borosilicate (PID-Autotune: M303 E-1 S60 C5):
#define DEFAULT_bedKp 295.00
#define DEFAULT_bedKi 35.65
#define DEFAULT_bedKd 610.21
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED
@@ -730,6 +736,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1111,6 +1118,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -711,6 +711,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1092,6 +1093,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -724,6 +724,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1102,6 +1103,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -711,6 +711,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1092,6 +1093,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -722,6 +722,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1103,6 +1104,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -733,6 +733,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1114,6 +1115,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -1152,7 +1154,7 @@
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_XY (20*60)
#define HOMING_FEEDRATE_Z (4*60)
// @section calibrate
View File
View File
@@ -727,6 +727,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1109,6 +1110,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -1147,7 +1149,7 @@
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_XY (20*60)
#define HOMING_FEEDRATE_Z (4*60)
// @section calibrate
@@ -620,7 +620,7 @@
* Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 79.60, 80, 400, 229.4 }
#define DEFAULT_AXIS_STEPS_PER_UNIT { 79.60, 80, 400, 95 }
/**
* Default Max Feed Rate (mm/s)
@@ -742,6 +742,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1123,6 +1124,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -1161,7 +1163,7 @@
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_XY (20*60)
#define HOMING_FEEDRATE_Z (4*60)
// @section calibrate
@@ -733,6 +733,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1114,6 +1115,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -1152,7 +1154,7 @@
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_XY (20*60)
#define HOMING_FEEDRATE_Z (4*60)
// @section calibrate
@@ -727,6 +727,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1108,6 +1109,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -1146,7 +1148,7 @@
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_XY (20*60)
#define HOMING_FEEDRATE_Z (4*60)
// @section calibrate
@@ -727,6 +727,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -876,8 +877,8 @@
// @section machine
// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
#define X_BED_SIZE 235
#define Y_BED_SIZE 235
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
@@ -1108,6 +1109,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -733,6 +733,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1114,6 +1115,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -1152,7 +1154,7 @@
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_XY (20*60)
#define HOMING_FEEDRATE_Z (4*60)
// @section calibrate
@@ -705,6 +705,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1086,6 +1087,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -705,6 +705,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1086,6 +1087,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -729,6 +729,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1110,6 +1111,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -738,6 +738,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1119,6 +1120,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -739,6 +739,7 @@
#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1120,6 +1121,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -738,6 +738,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1119,6 +1120,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -727,6 +727,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1108,6 +1109,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -735,6 +735,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1115,6 +1116,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -743,6 +743,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1132,6 +1133,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -727,6 +727,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1108,6 +1109,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -727,6 +727,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1108,6 +1109,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -763,6 +763,7 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1153,6 +1154,7 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -721,6 +721,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1102,6 +1103,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -736,6 +736,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1117,6 +1118,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -754,6 +754,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1135,6 +1136,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -774,6 +774,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1163,6 +1164,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1108,6 +1109,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -734,6 +734,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1115,6 +1116,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -752,6 +752,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1134,6 +1135,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -733,6 +733,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1114,6 +1115,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -723,6 +723,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1104,6 +1105,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -862,6 +862,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1302,6 +1303,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -26,10 +26,10 @@ The Kossel comes in 3 versions:
* Pulley
* Linear
* Linear Plus
Pulley and Linear use the same configuration, the Linear Plus is bigger and uses slightly different configurations.
Typically the probes for the Anycubic Delta Kossel printers come in two different versions.
Typically the probes for the Anycubic Delta Kossel printers come in two different versions.
* Version 1: Z Probe Offset of -19.0mm
@@ -808,6 +808,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1240,6 +1241,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -808,6 +808,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1239,6 +1240,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -808,6 +808,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1239,6 +1240,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -813,6 +813,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1242,6 +1243,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -798,6 +798,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1227,6 +1228,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -798,6 +798,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1229,6 +1230,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -791,6 +791,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1230,6 +1231,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -801,6 +801,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1230,6 +1231,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -736,6 +736,7 @@
#define BLTOUCH
#if ENABLED(BLTOUCH)
#define BLTOUCH_DELAY 500 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1118,6 +1119,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -861,6 +861,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1275,6 +1276,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -726,6 +726,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1107,6 +1108,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -718,6 +718,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1099,6 +1100,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
@@ -728,6 +728,7 @@
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif
/**
@@ -1109,6 +1110,7 @@
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif
+58 -37
View File
@@ -41,11 +41,16 @@
#define MSG_SD_INSERTED _UxGT("Karta vlozena")
#define MSG_SD_REMOVED _UxGT("Karta vyjmuta")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopy") // max 8 znaku
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Endstopy")
#define MSG_MAIN _UxGT("Hlavni nabidka")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
#define MSG_DEBUG_MENU _UxGT("Nabidka ladeni")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk.prubehu")
#if LCD_WIDTH >= 20
#define MSG_PROGRESS_BAR_TEST _UxGT("Test ukaz. prubehu")
#else
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. prubehu")
#endif
#define MSG_AUTO_HOME _UxGT("Domovska pozice")
#define MSG_AUTO_HOME_X _UxGT("Domu osa X")
#define MSG_AUTO_HOME_Y _UxGT("Domu osa Y")
@@ -91,7 +96,7 @@
#define MSG_UBL_BC_INSERT _UxGT("Vlozte kartu, zmerte")
#define MSG_UBL_BC_INSERT2 _UxGT("Zmerte")
#define MSG_UBL_BC_REMOVE _UxGT("Odstrante a zmerte")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Presoun na dalsi")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Presun na dalsi")
#define MSG_UBL_ACTIVATE_MESH _UxGT("Aktivovat UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deaktivovat UBL")
#define MSG_UBL_SET_BED_TEMP _UxGT("Teplota podlozky")
@@ -125,7 +130,7 @@
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Exportovat do CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Zaloha do PC")
#define MSG_UBL_INFO_UBL _UxGT("Info o UBL do PC")
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Upravit sit dobu")
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Upravit sit bodu")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Hustota mrizky")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Rucni hustota")
#define MSG_UBL_SMART_FILLIN _UxGT("Chytra hustota")
@@ -139,14 +144,14 @@
#define MSG_UBL_LOAD_MESH _UxGT("Nacist sit bodu")
#define MSG_UBL_SAVE_MESH _UxGT("Ulozit sit bodu")
#define MSG_MESH_LOADED _UxGT("Sit %i nactena")
#define MSG_NO_STORAGE _UxGT("Nedostatek mista")
#define MSG_MESH_SAVED _UxGT("Sit %i ulozena")
#define MSG_UBL_SAVE_ERROR _UxGT("Err: Ulozit UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: Obnovit UBL")
#define MSG_NO_STORAGE _UxGT("Nedostatek mista")
#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Ulozit UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupne")
#define MSG_LED_CONTROL _UxGT("LED Nastaveni")
#define MSG_LED_CONTROL _UxGT("Nastaveni LED")
#define MSG_LEDS _UxGT("Svetla")
#define MSG_LED_PRESETS _UxGT("Svetla Predvolby")
#define MSG_SET_LEDS_RED _UxGT("Cervena")
@@ -206,6 +211,7 @@
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_JUNCTION_DEVIATION _UxGT("Odchylka spoje")
#define MSG_VELOCITY _UxGT("Rychlost")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@@ -250,11 +256,13 @@
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
#define MSG_STOP_PRINT _UxGT("Zastavit tisk")
#define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova vypadku")
#define MSG_CARD_MENU _UxGT("Tisknout z SD")
#define MSG_NO_CARD _UxGT("Zadna SD karta")
#define MSG_DWELL _UxGT("Uspano...")
#define MSG_USERWAIT _UxGT("Cekani na uziv...")
#define MSG_PRINT_PAUSED _UxGT("Tisk pozastaven")
#define MSG_PRINTING _UxGT("Tisknu...")
#define MSG_PRINT_ABORTED _UxGT("Tisk zrusen")
#define MSG_NO_MOVE _UxGT("Zadny pohyb.")
#define MSG_KILLED _UxGT("PRERUSENO. ")
@@ -290,8 +298,10 @@
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahrivani")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahr.podl.")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNI SKOK")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNI UNIK")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPL. UNIK PODL.")
#define MSG_ERR_MAXTEMP _UxGT("VYSOKA TEPLOTA")
#define MSG_ERR_MINTEMP _UxGT("NIZKA TEPLOTA")
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
@@ -303,7 +313,17 @@
#define MSG_SHORT_HOUR _UxGT("h")
#define MSG_SHORT_MINUTE _UxGT("m")
#define MSG_HEATING _UxGT("Zahrivani...")
#define MSG_BED_HEATING _UxGT("Zahrivani podl...")
#define MSG_COOLING _UxGT("Chlazeni...")
#if LCD_WIDTH >= 20
#define MSG_BED_HEATING _UxGT("Zahrivani podlozky")
#else
#define MSG_BED_HEATING _UxGT("Zahrivani podl.")
#endif
#if LCD_WIDTH >= 20
#define MSG_BED_COOLING _UxGT("Chlazeni podlozky")
#else
#define MSG_BED_COOLING _UxGT("Chlazeni podl.")
#endif
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
@@ -312,6 +332,7 @@
#define MSG_DELTA_SETTINGS _UxGT("Delta nastaveni")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autokalibrace")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Nast.vysku delty")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Nast. Z-ofset")
#define MSG_DELTA_DIAG_ROD _UxGT("Diag rameno")
#define MSG_DELTA_HEIGHT _UxGT("Vyska")
#define MSG_DELTA_RADIUS _UxGT("Polomer")
@@ -364,36 +385,36 @@
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahajeni")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("vymeny filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stisknete")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlacitko...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknete pro")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahrati trysky")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahrati tr.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyckejte na")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlaceni")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahajeni")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("vymeny filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stisknete")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlacitko...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknete pro")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahrati trysky")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahrati tr.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyckejte na")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlaceni")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvani...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlacovani...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvani...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlacovani...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...")
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_CZ_H
+57 -44
View File
@@ -49,7 +49,11 @@
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
#define MSG_DEBUG_MENU _UxGT("Nabídka ladění")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. průběhu")
#if LCD_WIDTH >= 20
#define MSG_PROGRESS_BAR_TEST _UxGT("Test ukaz. průběhu")
#else
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. průběhu")
#endif
#define MSG_AUTO_HOME _UxGT("Domovská pozice")
#define MSG_AUTO_HOME_X _UxGT("Domů osa X")
#define MSG_AUTO_HOME_Y _UxGT("Domů osa Y")
@@ -108,8 +112,8 @@
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Konec úprav sítě")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Vlastní síť")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Vytvořit síť")
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Síť bodu PLA")
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Síť bodu ABS")
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Síť bodů PLA")
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Síť bodů ABS")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Studená síť bodů")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Upravit výšku sítě")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Výška")
@@ -119,8 +123,8 @@
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Kontrola vlast. sítě")
#define MSG_UBL_CONTINUE_MESH _UxGT("Pokračovat v síťi")
#define MSG_UBL_MESH_LEVELING _UxGT("Síťové rovnání")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodove rovnání")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mrizkove rovnání")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodové rovnání")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mřížkové rovnání")
#define MSG_UBL_MESH_LEVEL _UxGT("Srovnat podložku")
#define MSG_UBL_SIDE_POINTS _UxGT("Postranní body")
#define MSG_UBL_MAP_TYPE _UxGT("Typ sítě bodu")
@@ -145,12 +149,12 @@
#define MSG_MESH_LOADED _UxGT("Síť %i načtena")
#define MSG_MESH_SAVED _UxGT("Síť %i uložena")
#define MSG_NO_STORAGE _UxGT("Nedostatek místa")
#define MSG_UBL_SAVE_ERROR _UxGT("Err: Uložit UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: Obnovit UBL")
#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Uložit UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupně")
#define MSG_LED_CONTROL _UxGT("LED Nastavení")
#define MSG_LED_CONTROL _UxGT("Nastavení LED")
#define MSG_LEDS _UxGT("Světla")
#define MSG_LED_PRESETS _UxGT("Světla Předvolby")
#define MSG_SET_LEDS_RED _UxGT("Červená")
@@ -170,7 +174,7 @@
#define MSG_LED_BRIGHTNESS _UxGT("Jas")
#define MSG_USER_MENU _UxGT("Vlastní příkazy")
#define MSG_MOVING _UxGT("Posouvani...")
#define MSG_MOVING _UxGT("Posouvání...")
#define MSG_FREE_XY _UxGT("Uvolnit XY")
#define MSG_MOVE_X _UxGT("Posunout X")
#define MSG_MOVE_Y _UxGT("Posunout Y")
@@ -210,6 +214,7 @@
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_JUNCTION_DEVIATION _UxGT("Odchylka spoje")
#define MSG_VELOCITY _UxGT("Rychlost")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@@ -254,7 +259,7 @@
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
#define MSG_STOP_PRINT _UxGT("Zastavit tisk")
#define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova vypadku")
#define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova výpadku")
#define MSG_CARD_MENU _UxGT("Tisknout z SD")
#define MSG_NO_CARD _UxGT("Žádná SD karta")
#define MSG_DWELL _UxGT("Uspáno...")
@@ -296,10 +301,10 @@
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahřívání")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahř. podl.")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahř.podl.")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÍ SKOK")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("PODL. TEPL. SKOK")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÍ ÚNIK")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPL. ÚNIK PODL.")
#define MSG_ERR_MAXTEMP _UxGT("VYSOKÁ TEPLOTA")
#define MSG_ERR_MINTEMP _UxGT("NÍZKA TEPLOTA")
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
@@ -311,9 +316,17 @@
#define MSG_SHORT_HOUR _UxGT("h")
#define MSG_SHORT_MINUTE _UxGT("m")
#define MSG_HEATING _UxGT("Zahřívání...")
#define MSG_COOLING _UxGT("Chlazení")
#define MSG_BED_HEATING _UxGT("Zahřívání podl...")
#define MSG_BED_COOLING _UxGT("Chlazení podl...")
#define MSG_COOLING _UxGT("Chlazení...")
#if LCD_WIDTH >= 20
#define MSG_BED_HEATING _UxGT("Zahřívání podložky")
#else
#define MSG_BED_HEATING _UxGT("Zahřívání podl.")
#endif
#if LCD_WIDTH >= 20
#define MSG_BED_COOLING _UxGT("Chlazení podložky")
#else
#define MSG_BED_COOLING _UxGT("Chlazení podl.")
#endif
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
@@ -375,36 +388,36 @@
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahájení")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výměny filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stiskněte")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlačítko...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí trysky")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahřátí tr.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahájení")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výměny filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stiskněte")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlačítko...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí trysky")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahřátí tr.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahřívání...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádění...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačování...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahřívání...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádění...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačování...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...")
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_CZ_UTF_H
+188 -176
View File
@@ -41,33 +41,34 @@
#define MSG_SD_INSERTED _UxGT("SD-Karte erkannt")
#define MSG_SD_REMOVED _UxGT("SD-Karte entfernt")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopp") // Max length 8 characters
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft-Endstopp")
#define MSG_MAIN _UxGT("Hauptmenü")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Motoren deaktivieren") // M84
#define MSG_DEBUG_MENU _UxGT("Debug Menü")
#define MSG_PROGRESS_BAR_TEST _UxGT("Fortschrittsb. Test")
#define MSG_AUTO_HOME _UxGT("Home") // G28
#define MSG_DEBUG_MENU _UxGT("Debug-Menü")
#define MSG_PROGRESS_BAR_TEST _UxGT("Statusbalken-Test")
#define MSG_AUTO_HOME _UxGT("Home XYZ") // G28
#define MSG_AUTO_HOME_X _UxGT("Home X")
#define MSG_AUTO_HOME_Y _UxGT("Home Y")
#define MSG_AUTO_HOME_Z _UxGT("Home Z")
#define MSG_TMC_Z_CALIBRATION _UxGT("Kalibriere Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Home XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Klick für Start")
#define MSG_LEVEL_BED_WAITING _UxGT("Klick zum Starten")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Nächste Koordinate")
#define MSG_LEVEL_BED_DONE _UxGT("Fertig")
#define MSG_LEVEL_BED_DONE _UxGT("Nivellieren fertig!")
#define MSG_Z_FADE_HEIGHT _UxGT("Ausblendhöhe")
#define MSG_SET_HOME_OFFSETS _UxGT("Setze Homeversatz")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Homeversatz aktiv")
#define MSG_SET_ORIGIN _UxGT("Setze Nullpunkt") //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
#define MSG_SET_ORIGIN _UxGT("Setze Nullpunkte") //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
#define MSG_PREHEAT_1 _UxGT("Vorwärmen PLA")
#define MSG_PREHEAT_1_N _UxGT("Vorwärmen PLA ")
#define MSG_PREHEAT_1_ALL _UxGT("Vorw. PLA Alle")
#define MSG_PREHEAT_1_ALL _UxGT("Vorw. PLA Alles")
#define MSG_PREHEAT_1_END _UxGT("Vorw. PLA Extr.")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Vorw. PLA Bett")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Vorw. PLA Einst.")
#define MSG_PREHEAT_2 _UxGT("Vorwärmen ABS")
#define MSG_PREHEAT_2_N _UxGT("Vorwärmen ABS ")
#define MSG_PREHEAT_2_ALL _UxGT("Vorw. ABS Alle")
#define MSG_PREHEAT_2_ALL _UxGT("Vorw. ABS Alles")
#define MSG_PREHEAT_2_END _UxGT("Vorw. ABS Extr.")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Vorw. ABS Bett")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Vorw. ABS Einst.")
@@ -75,20 +76,102 @@
#define MSG_SWITCH_PS_ON _UxGT("Netzteil ein")
#define MSG_SWITCH_PS_OFF _UxGT("Netzteil aus")
#define MSG_EXTRUDE _UxGT("Extrudieren")
#define MSG_RETRACT _UxGT("Retract")
#define MSG_MOVE_AXIS _UxGT("Bewegen")
#define MSG_BED_LEVELING _UxGT("Bett Nivellierung")
#define MSG_RETRACT _UxGT("Rückzug")
#define MSG_MOVE_AXIS _UxGT("Achse Bewegen")
#define MSG_BED_LEVELING _UxGT("Bett-Nivellierung")
#define MSG_LEVEL_BED _UxGT("Bett nivellieren")
#define MSG_LEVEL_CORNERS _UxGT("Ecken nivellieren")
#define MSG_NEXT_CORNER _UxGT("Nächste Ecke")
#define MSG_EDITING_STOPPED _UxGT("Netzbearb. angeh.")
#define MSG_USER_MENU _UxGT("Benutzer Menü")
#define MSG_USER_MENU _UxGT("Benutzer-Menü")
#define MSG_UBL_DOING_G29 _UxGT("G29 ausführen")
#define MSG_UBL_UNHOMED _UxGT("Home XYZ zuerst")
#define MSG_UBL_TOOLS _UxGT("UBL-Werkzeuge")
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#define MSG_UBL_MANUAL_MESH _UxGT("Netz manuell erst.")
#define MSG_UBL_BC_INSERT _UxGT("Unterlegen & messen")
#define MSG_UBL_BC_INSERT2 _UxGT("Messen")
#define MSG_UBL_BC_REMOVE _UxGT("Entfernen & messen")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Nächster Punkt...")
#define MSG_UBL_ACTIVATE_MESH _UxGT("UBL aktivieren")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("UBL deaktivieren")
#define MSG_UBL_SET_BED_TEMP _UxGT("Betttemperatur")
#define MSG_UBL_CUSTOM_BED_TEMP MSG_UBL_SET_BED_TEMP
#define MSG_UBL_SET_HOTEND_TEMP _UxGT("Hotend-Temp.")
#define MSG_UBL_CUSTOM_HOTEND_TEMP MSG_UBL_SET_HOTEND_TEMP
#define MSG_UBL_MESH_EDIT _UxGT("Netz bearbeiten")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Eigenes Netz bearb.")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Feineinstellung...")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Bearbeitung beendet")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Eigenes Netz erst.")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Netz erstellen")
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Netz erstellen PLA")
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Netz erstellen ABS")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Netz erstellen kalt")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Netzhöhe einst.")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Höhe")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Netz validieren")
#define MSG_UBL_VALIDATE_PLA_MESH _UxGT("Netz validieren PLA")
#define MSG_UBL_VALIDATE_ABS_MESH _UxGT("Netz validieren ABS")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Eig. Netz validieren")
#define MSG_UBL_CONTINUE_MESH _UxGT("Netzerst. forts.")
#define MSG_UBL_MESH_LEVELING _UxGT("Netz-Nivellierung")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Punkt-Nivell.")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Gitternetz-Nivell.")
#define MSG_UBL_MESH_LEVEL _UxGT("Netz nivellieren")
#define MSG_UBL_SIDE_POINTS _UxGT("Eckpunkte")
#define MSG_UBL_MAP_TYPE _UxGT("Kartentyp")
#define MSG_UBL_OUTPUT_MAP _UxGT("Karte ausgeben")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Ausgabe für Host")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Ausgabe für CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Externe Sicherung")
#define MSG_UBL_INFO_UBL _UxGT("UBL-Info ausgeben")
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Netz bearbeiten")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Menge an Füllung")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Manuelles Füllung")
#define MSG_UBL_SMART_FILLIN _UxGT("Cleveres Füllen")
#define MSG_UBL_FILLIN_MESH _UxGT("Netz Füllen")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Alles annullieren")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Nächstlieg. ann.")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Feineinst. Alles")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Feineinst. Nächstl.")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Netz-Speicherplatz")
#define MSG_UBL_STORAGE_SLOT _UxGT("Speicherort")
#define MSG_UBL_LOAD_MESH _UxGT("Bettnetz laden")
#define MSG_UBL_SAVE_MESH _UxGT("Bettnetz speichern")
#define MSG_MESH_LOADED _UxGT("Netz %i geladen")
#define MSG_MESH_SAVED _UxGT("Netz %i gespeichert")
#define MSG_NO_STORAGE _UxGT("Kein Speicher")
#define MSG_UBL_SAVE_ERROR _UxGT("ERR:UBL speichern")
#define MSG_UBL_RESTORE_ERROR _UxGT("ERR:UBL wiederherst.")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Versatz angehalten")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Schrittweises UBL")
#define MSG_LED_CONTROL _UxGT("LED-Steuerung")
#define MSG_LEDS _UxGT("Licht")
#define MSG_LED_PRESETS _UxGT("Licht-Einstellungen")
#define MSG_SET_LEDS_RED _UxGT("Rot")
#define MSG_SET_LEDS_ORANGE _UxGT("Orange")
#define MSG_SET_LEDS_YELLOW _UxGT("Gelb")
#define MSG_SET_LEDS_GREEN _UxGT("Grün")
#define MSG_SET_LEDS_BLUE _UxGT("Blau")
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo")
#define MSG_SET_LEDS_VIOLET _UxGT("Violett")
#define MSG_SET_LEDS_WHITE _UxGT("Weiß")
#define MSG_SET_LEDS_DEFAULT _UxGT("Standard")
#define MSG_CUSTOM_LEDS _UxGT("Benutzerdef.")
#define MSG_INTENSITY_R _UxGT("Intensität Rot")
#define MSG_INTENSITY_G _UxGT("Intensität Grün")
#define MSG_INTENSITY_B _UxGT("Intensität Blau")
#define MSG_INTENSITY_W _UxGT("Intensität Weiß")
#define MSG_LED_BRIGHTNESS _UxGT("Helligkeit")
#define MSG_MOVING _UxGT("In Bewegung...")
#define MSG_FREE_XY _UxGT("Abstand XY")
#define MSG_MOVE_X _UxGT("X")
#define MSG_MOVE_Y _UxGT("Y")
#define MSG_MOVE_Z _UxGT("Z")
#define MSG_MOVE_E _UxGT("Extruder ")
#define MSG_MOVE_X _UxGT("Bewege X")
#define MSG_MOVE_Y _UxGT("Bewege Y")
#define MSG_MOVE_Z _UxGT("Bewege Z")
#define MSG_MOVE_E _UxGT("Bewege Extruder")
#define MSG_MOVE_01MM _UxGT(" 0,1 mm")
#define MSG_MOVE_1MM _UxGT(" 1,0 mm")
#define MSG_MOVE_10MM _UxGT("10,0 mm")
@@ -97,13 +180,13 @@
#define MSG_NOZZLE _UxGT("Düse")
#define MSG_BED _UxGT("Bett")
#define MSG_FAN_SPEED _UxGT("Lüfter")
#define MSG_EXTRA_FAN_SPEED _UxGT("Extra Lüfter")
#define MSG_EXTRA_FAN_SPEED _UxGT("Geschw. Extralüfter")
#define MSG_FLOW _UxGT("Flussrate")
#define MSG_CONTROL _UxGT("Einstellungen")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Faktor")
#define MSG_AUTOTEMP _UxGT("AutoTemp")
#define MSG_AUTOTEMP _UxGT("Auto Temperatur")
#define MSG_ON _UxGT("Ein")
#define MSG_OFF _UxGT("Aus")
#define MSG_PID_P _UxGT("PID P")
@@ -111,7 +194,7 @@
#define MSG_PID_D _UxGT("PID D")
#define MSG_PID_C _UxGT("PID C")
#define MSG_SELECT _UxGT("Auswählen")
#define MSG_ACC _UxGT("A")
#define MSG_ACC _UxGT("Beschleunigung")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("V A Jerk")
@@ -123,13 +206,14 @@
#define MSG_VC_JERK _UxGT("V Z Jerk")
#endif
#define MSG_VE_JERK _UxGT("V E Jerk")
#define MSG_JUNCTION_DEVIATION _UxGT("Junction Dev")
#define MSG_VELOCITY _UxGT("Geschwindigkeit")
#define MSG_VMAX _UxGT("V max ") // space by purpose
#define MSG_VMAX _UxGT("V max ") // space intentional
#define MSG_VMIN _UxGT("V min")
#define MSG_VTRAV_MIN _UxGT("V min Leerfahrt")
#define MSG_ACCELERATION _UxGT("Beschleunigung")
#define MSG_AMAX _UxGT("A max ") // space by purpose
#define MSG_A_RETRACT _UxGT("A Retract")
#define MSG_AMAX _UxGT("A max ") // space intentional
#define MSG_A_RETRACT _UxGT("A Rückzug")
#define MSG_A_TRAVEL _UxGT("A Leerfahrt")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#if IS_KINEMATIC
@@ -151,11 +235,11 @@
#define MSG_MOTION _UxGT("Bewegung")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³")
#define MSG_FILAMENT_DIAM _UxGT("D Fil.")
#define MSG_FILAMENT_DIAM _UxGT("Durchm. Filament")
#define MSG_FILAMENT_UNLOAD _UxGT("Entladen mm")
#define MSG_FILAMENT_LOAD _UxGT("Laden mm")
#define MSG_ADVANCE_K _UxGT("Advance Faktor")
#define MSG_CONTRAST _UxGT("LCD Kontrast")
#define MSG_ADVANCE_K _UxGT("Vorschubfaktor")
#define MSG_CONTRAST _UxGT("LCD-Kontrast")
#define MSG_STORE_EEPROM _UxGT("Konfig. speichern")
#define MSG_LOAD_EEPROM _UxGT("Konfig. laden")
#define MSG_RESTORE_FAILSAFE _UxGT("Standardwerte laden")
@@ -164,49 +248,52 @@
#define MSG_WATCH _UxGT("Info")
#define MSG_PREPARE _UxGT("Vorbereitung")
#define MSG_TUNE _UxGT("Justierung")
#define MSG_PAUSE_PRINT _UxGT("SD-Druck Pause")
#define MSG_RESUME_PRINT _UxGT("SD-Druck Fortsetzung")
#define MSG_STOP_PRINT _UxGT("SD-Druck Abbruch")
#define MSG_CARD_MENU _UxGT("SD-Karte")
#define MSG_PAUSE_PRINT _UxGT("SD-Druck pausieren")
#define MSG_RESUME_PRINT _UxGT("SD-Druck fortsetzen")
#define MSG_STOP_PRINT _UxGT("SD-Druck abbrechen")
#define MSG_POWER_LOSS_RECOVERY _UxGT("Wiederh. n. Stroma.")
#define MSG_CARD_MENU _UxGT("Druck v. SD-Karte")
#define MSG_NO_CARD _UxGT("Keine SD-Karte")
#define MSG_DWELL _UxGT("Warten...")
#define MSG_USERWAIT _UxGT("Warte auf Nutzer")
#define MSG_PRINT_PAUSED _UxGT("Druck pausiert")
#define MSG_USERWAIT _UxGT("Klick zum Fortsetzen")
#define MSG_PRINT_PAUSED _UxGT("Druck pausiert...")
#define MSG_PRINTING _UxGT("Druckt...")
#define MSG_PRINT_ABORTED _UxGT("Druck abgebrochen")
#define MSG_NO_MOVE _UxGT("Motoren eingeschaltet")
#define MSG_NO_MOVE _UxGT("Motoren angeschaltet")
#define MSG_KILLED _UxGT("ABGEBROCHEN")
#define MSG_STOPPED _UxGT("ANGEHALTEN")
#define MSG_CONTROL_RETRACT _UxGT("Retract mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Wechs. Retract mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retract V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Z-Hop mm")
#define MSG_CONTROL_RETRACT _UxGT("Rückzug mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Wechs. Rückzug mm")
#define MSG_CONTROL_RETRACTF _UxGT("Rückzug V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Z-Sprung mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Wechs. UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#define MSG_AUTORETRACT _UxGT("Autom. Retract")
#define MSG_AUTORETRACT _UxGT("Autom. Rückzug")
#define MSG_FILAMENTCHANGE _UxGT("Filament wechseln")
#define MSG_FILAMENTLOAD _UxGT("Filament laden")
#define MSG_FILAMENTUNLOAD _UxGT("Filament entladen")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Alles entladen")
#define MSG_INIT_SDCARD _UxGT("SD-Karte erkennen") // Manually initialize the SD-card via user interface
#define MSG_INIT_SDCARD _UxGT("SD-Karte initialisi.") // Manually initialize the SD-card via user interface
#define MSG_CNG_SDCARD _UxGT("SD-Karte getauscht") // SD-card changed by user. For machines with no autocarddetect. Both send "M21"
#define MSG_ZPROBE_OUT _UxGT("Sensor ausserhalb")
#define MSG_SKEW_FACTOR _UxGT("Skew Faktor")
#define MSG_ZPROBE_OUT _UxGT("Z-Sonde außerhalb")
#define MSG_SKEW_FACTOR _UxGT("Korrekturfaktor")
#define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Test")
#define MSG_BLTOUCH_RESET _UxGT("BLTouch Reset")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Selbsttest")
#define MSG_BLTOUCH_RESET _UxGT("BLTouch zurücks.")
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch ausfahren")
#define MSG_BLTOUCH_STOW _UxGT("BLTouch einfahren")
#define MSG_HOME _UxGT("Vorher") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_HOME _UxGT("Vorher") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("homen")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Versatz")
#define MSG_ZPROBE_ZOFFSET _UxGT("Sondenversatz Z")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstopp-Abbr.")
#define MSG_HEATING_FAILED_LCD _UxGT("HEIZEN FEHLGESCHLAGEN")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEMPERATURABWEICHUNG")
#define MSG_ENDSTOP_ABORT _UxGT("Endstopp Abbr.")
#define MSG_HEATING_FAILED_LCD _UxGT("HEIZEN ERFOLGLOS")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Bett heizen fehlge.")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEMP-ABWEI.")
#define MSG_THERMAL_RUNAWAY LCD_STR_THERMOMETER _UxGT(" NICHT ERREICHT")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("BETT") MSG_THERMAL_RUNAWAY
#define MSG_ERR_MAXTEMP LCD_STR_THERMOMETER _UxGT(" ÜBERSCHRITTEN")
@@ -215,12 +302,14 @@
#define MSG_ERR_MINTEMP_BED _UxGT("BETT ") LCD_STR_THERMOMETER _UxGT(" UNTERSCHRITTEN")
#define MSG_ERR_Z_HOMING MSG_HOME _UxGT(" ") MSG_X MSG_Y _UxGT(" ") MSG_FIRST
#define MSG_HALTED _UxGT("DRUCKER STOPP")
#define MSG_PLEASE_RESET _UxGT("Bitte Resetten")
#define MSG_PLEASE_RESET _UxGT("Bitte neustarten")
#define MSG_SHORT_DAY _UxGT("t") // One character only
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Extr. heizt...")
#define MSG_COOLING _UxGT("Extr. kühlt...")
#define MSG_BED_HEATING _UxGT("Bett heizt...")
#define MSG_BED_COOLING _UxGT("Bett kühlt...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta kalibrieren")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibriere X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibriere Y")
@@ -229,171 +318,94 @@
#define MSG_DELTA_SETTINGS _UxGT("Delta Einst. anzeig.")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autom. Kalibrierung")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Delta Höhe setzen")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Sondenversatz Z")
#define MSG_DELTA_DIAG_ROD _UxGT("Diag Rod")
#define MSG_DELTA_HEIGHT _UxGT("Höhe")
#define MSG_DELTA_RADIUS _UxGT("Radius")
#define MSG_INFO_MENU _UxGT("Über den Drucker")
#define MSG_INFO_PRINTER_MENU _UxGT("Drucker Info")
#define MSG_3POINT_LEVELING _UxGT("3-Punkt Nivellierung")
#define MSG_INFO_PRINTER_MENU _UxGT("Drucker-Info")
#define MSG_3POINT_LEVELING _UxGT("3-Punkt-Nivellierung")
#define MSG_LINEAR_LEVELING _UxGT("Lineare Nivellierung")
#define MSG_BILINEAR_LEVELING _UxGT("Bilineare Nivell.")
#define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling")
#define MSG_MESH_LEVELING _UxGT("Netz Nivellierung")
#define MSG_INFO_STATS_MENU _UxGT("Drucker Statistik")
#define MSG_INFO_BOARD_MENU _UxGT("Board Info")
#define MSG_MESH_LEVELING _UxGT("Netz-Nivellierung")
#define MSG_INFO_STATS_MENU _UxGT("Drucker-Statistik")
#define MSG_INFO_BOARD_MENU _UxGT("Board-Info")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistoren")
#define MSG_INFO_EXTRUDERS _UxGT("Extruder")
#define MSG_INFO_BAUDRATE _UxGT("Baud")
#define MSG_INFO_BAUDRATE _UxGT("Baudrate")
#define MSG_INFO_PROTOCOL _UxGT("Protokoll")
#define MSG_CASE_LIGHT _UxGT("Beleuchtung")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Helligkeit")
#define MSG_UBL_DOING_G29 _UxGT("G29 UBL läuft!")
#define MSG_UBL_UNHOMED _UxGT("Erst XYZ homen")
#define MSG_UBL_TOOLS _UxGT("UBL Werkzeuge")
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#define MSG_UBL_MANUAL_MESH _UxGT("Netz manuell erst.")
#define MSG_UBL_BC_INSERT _UxGT("Unterlegen & messen")
#define MSG_UBL_BC_INSERT2 _UxGT("Messen")
#define MSG_UBL_BC_REMOVE _UxGT("Entfernen & messen")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Nächster Punkt...")
#define MSG_UBL_ACTIVATE_MESH _UxGT("UBL aktivieren")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("UBL deaktivieren")
#define MSG_UBL_SET_BED_TEMP _UxGT("Bett Temp.")
#define MSG_UBL_CUSTOM_BED_TEMP MSG_UBL_SET_BED_TEMP
#define MSG_UBL_SET_HOTEND_TEMP _UxGT("Hotend Temp.")
#define MSG_UBL_CUSTOM_HOTEND_TEMP MSG_UBL_SET_HOTEND_TEMP
#define MSG_UBL_MESH_EDIT _UxGT("Netz bearbeiten")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Eigenes Netz bearb.")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Feineinstellung...")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Bearbeitung beendet")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Eigenes Netz erst.")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Netz erstellen")
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Netz erstellen PLA")
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Netz erstellen ABS")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Netz erstellen kalt")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Netz Höhe einst.")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Höhe")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Netz validieren")
#define MSG_UBL_VALIDATE_PLA_MESH _UxGT("Netz validieren PLA")
#define MSG_UBL_VALIDATE_ABS_MESH _UxGT("Netz validieren ABS")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Eig. Netz validieren")
#define MSG_UBL_CONTINUE_MESH _UxGT("Netzerst. forts.")
#define MSG_UBL_MESH_LEVELING _UxGT("Netz Nivellierung")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Punkt Nivellierung")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Gitternetz Nivell.")
#define MSG_UBL_MESH_LEVEL _UxGT("Netz nivellieren")
#define MSG_UBL_SIDE_POINTS _UxGT("Eckpunkte")
#define MSG_UBL_MAP_TYPE _UxGT("Kartentyp")
#define MSG_UBL_OUTPUT_MAP _UxGT("Karte ausgeben")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Ausgabe für Host")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Ausgabe für CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Externe Sicherung")
#define MSG_UBL_INFO_UBL _UxGT("UBL Info ausgeben")
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Netz bearbeiten")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Menge an Fill-in")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Manuelles Fill-in")
#define MSG_UBL_SMART_FILLIN _UxGT("Kluges Fill-in")
#define MSG_UBL_FILLIN_MESH _UxGT("Fill-in Netz")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Alles annullieren")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Nächstlieg. ann.")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Feineinstellung Alle")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Feineinst. Nächstl.")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Netz Speicherplatz")
#define MSG_UBL_STORAGE_SLOT _UxGT("Memory Slot")
#define MSG_UBL_LOAD_MESH _UxGT("Bett Netz laden")
#define MSG_UBL_SAVE_MESH _UxGT("Bett Netz speichern")
#define MSG_MESH_LOADED _UxGT("Netz %i geladen")
#define MSG_MESH_SAVED _UxGT("Netz %i gespeichert")
#define MSG_NO_STORAGE _UxGT("Kein Speicher")
#define MSG_UBL_SAVE_ERROR _UxGT("ERR:UBL speichern")
#define MSG_UBL_RESTORE_ERROR _UxGT("ERR:UBL wiederherst.")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Versatz angehalten")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Schrittweises UBL")
#define MSG_LED_CONTROL _UxGT("LED Kontrolle")
#define MSG_LEDS _UxGT("Licht")
#define MSG_LED_PRESETS _UxGT("Licht Einstellungen")
#define MSG_SET_LEDS_RED _UxGT("Rot")
#define MSG_SET_LEDS_ORANGE _UxGT("Orange")
#define MSG_SET_LEDS_YELLOW _UxGT("Gelb")
#define MSG_SET_LEDS_GREEN _UxGT("Grün")
#define MSG_SET_LEDS_BLUE _UxGT("Blau")
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo")
#define MSG_SET_LEDS_VIOLET _UxGT("Violett")
#define MSG_SET_LEDS_WHITE _UxGT("Weiß")
#define MSG_SET_LEDS_DEFAULT _UxGT("Standard")
#define MSG_CUSTOM_LEDS _UxGT("Benutzerdef.")
#define MSG_INTENSITY_R _UxGT("Intensität Rot")
#define MSG_INTENSITY_G _UxGT("Intensität Grün")
#define MSG_INTENSITY_B _UxGT("Intensität Blau")
#define MSG_INTENSITY_W _UxGT("Intensität Weiß")
#define MSG_LED_BRIGHTNESS _UxGT("Helligkeit")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Gesamte Drucke")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Beendete Drucke")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplette Drucke")
#define MSG_INFO_PRINT_TIME _UxGT("Gesamte Druckzeit")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längster Druckjob")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längste Druckzeit")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Gesamt Extrudiert")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Drucke")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplett")
#define MSG_INFO_PRINT_TIME _UxGT("Gesamt ")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längster")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplette")
#define MSG_INFO_PRINT_TIME _UxGT("Gesamte")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längste")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrud.")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp")
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
#define MSG_INFO_PSU _UxGT("Netzteil")
#define MSG_DRIVE_STRENGTH _UxGT("Motorströme")
#define MSG_DRIVE_STRENGTH _UxGT("Motorleistung")
#define MSG_DAC_PERCENT _UxGT("Treiber %")
#define MSG_DAC_EEPROM_WRITE _UxGT("Werte speichern")
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("DRUCK PAUSIERT")
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("FILAMENT LADEN")
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("FILAMENT ENTLADEN")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("FORTS. OPTIONEN:")
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Mehr entleeren")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Drucke weiter")
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Mehr entladen")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Druck weiter")
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Düse: ")
#define MSG_ERR_HOMING_FAILED _UxGT("Homing gescheitert")
#define MSG_ERR_PROBING_FAILED _UxGT("Probing gescheitert")
#define MSG_M600_TOO_COLD _UxGT("M600: Zu kalt")
#define MSG_M600_TOO_COLD _UxGT("M600: zu kalt")
//
// Die Filament-Change-Bildschirme können bis zu 3 Zeilen auf einem 4-Zeilen-Display anzeigen
// ...oder 2 Zeilen auf einem 3-Zeilen-Display.
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Warte auf den")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("Start des")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("Filamentwechsels")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("Herausnahme")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("des Filaments...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filament einlegen")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("und Knopf")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("drücken...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Knopf drücken um")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Düse aufzuheizen.")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Düse heizt auf...")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Bitte warten...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Laden des")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("Filaments")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("Entleeren des")
#define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("Filaments")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("Fortsetzung des")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("Druckes...")
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Warte auf den")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("Start des")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("Filamentwechsels...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filament einlegen")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("und Knopf drücken")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("um fortzusetzen")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Knopf drücken um")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Düse aufzuheizen")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Düse heizt auf")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("bitte warten...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("Herausnahme")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("des Filaments...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Laden des")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("Filaments...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("Entladen des")
#define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("Filaments...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("Fortsetzen des")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("Drucks...")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Bitte warten...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Auswerfen...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laden und Klick")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heizen...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Laden...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Entleeren...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsetzen...")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Bitte warten...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laden und Klick")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klick zum Heizen")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heizen...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Entladen...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Laden...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Entladen...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsetzen...")
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_DE_H
+9 -10
View File
@@ -251,26 +251,25 @@
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Boquilla: ")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando iniciar")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando para")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte filamento")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte el filamento")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("y presione el boton")
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("cambiar")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar cambio")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filamento")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("para continuar...")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("del fil. cambiar")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte filamento")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar cambio fil.")
#endif // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperado por")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filamento expulsado")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperado por")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Cargar filamento")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperando para")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("expulsar filamento")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperado para")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("cargar el filamento")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando imp.")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("para resumir")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Oprima boton para")
+1 -1
View File
@@ -369,7 +369,7 @@
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando impressao")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("continuar")
#else LCD_HEIGHT < 4
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Aguarde...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejetando...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insira e Clique")
+22 -21
View File
@@ -154,31 +154,32 @@
*/
#if ENABLED(ULTRA_LCD)
#define LCD_SDSS 28
#define LCD_SDSS 28
#if ENABLED(ADC_KEYPAD)
#define SERVO0_PIN 27 // free for BLTouch/3D-Touch
#define LCD_PINS_RS 28
#define LCD_PINS_ENABLE 29
#define LCD_PINS_D4 10
#define LCD_PINS_D5 11
#define LCD_PINS_D6 16
#define LCD_PINS_D7 17
#define BTN_EN1 -1
#define BTN_EN2 -1
#define BTN_ENC -1
#define ADC_KEYPAD_PIN 1
#define SERVO0_PIN 27 // free for BLTouch/3D-Touch
#ifndef LCD_I2C_TYPE_PCF8575
#define LCD_PINS_RS 28
#define LCD_PINS_ENABLE 29
#define LCD_PINS_D4 10
#define LCD_PINS_D5 11
#define LCD_PINS_D6 16
#define LCD_PINS_D7 17
#endif
#ifndef ADC_KEYPAD_PIN
#define ADC_KEYPAD_PIN 1 // Analog Input
#endif
#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(ANET_FULL_GRAPHICS_LCD)
// Pin definitions for the Anet A6 Full Graphics display and the RepRapDiscount Full Graphics
// display using an adapter board // https://go.aisler.net/benlye/anet-lcd-adapter/pcb
// See below for alternative pin definitions for use with https://www.thingiverse.com/thing:2103748
#define SERVO0_PIN 29 // free for BLTouch/3D-Touch
#define BEEPER_PIN 17
#define LCD_PINS_RS 27
#define LCD_PINS_ENABLE 28
#define LCD_PINS_D4 30
#define BTN_EN1 11
#define BTN_EN2 10
#define BTN_ENC 16
#define SERVO0_PIN 29 // free for BLTouch/3D-Touch
#define BEEPER_PIN 17
#define LCD_PINS_RS 27
#define LCD_PINS_ENABLE 28
#define LCD_PINS_D4 30
#define BTN_EN1 11
#define BTN_EN2 10
#define BTN_ENC 16
#ifndef ST7920_DELAY_1
#define ST7920_DELAY_1 DELAY_NS(0)
#endif
@@ -192,7 +193,7 @@
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
#endif
#else
#define SERVO0_PIN 27
#define SERVO0_PIN 27
#endif
/**
+1 -1
View File
@@ -509,7 +509,7 @@
#define BTN_ENC 35
#define SD_DETECT_PIN 49
#define KILL_PIN 64
#define KILL_PIN 41
#elif ENABLED(MINIPANEL)
+94 -239
View File
@@ -28,39 +28,27 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#if E_STEPPERS > 3 || HOTENDS > 3
#error "RUMBA supports up to 3 hotends / E-steppers. Comment this line to keep going."
#if HOTENDS > 3 || E_STEPPERS > 3
#error "RUMBA supports up to 3 hotends / E-steppers. Comment out this line to continue."
#endif
#define DEFAULT_MACHINE_NAME "Rumba"
#define BOARD_NAME "Rumba"
//#endif
#define LARGE_FLASH true
//
// Servos
//
#ifdef IS_RAMPS_13
#define SERVO0_PIN 7 // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI
#else
#define SERVO0_PIN 11
#endif
#define SERVO1_PIN 6
#define SERVO2_PIN 5
#define SERVO3_PIN -1
#define SERVO0_PIN 5
//
// Limit Switches
//
#define X_MIN_PIN 3
#ifndef X_MAX_PIN
#define X_MAX_PIN 2
#endif
#define Y_MIN_PIN 14
#define Y_MAX_PIN 15
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19
#define X_MIN_PIN 37
#define X_MAX_PIN 36
#define Y_MIN_PIN 35
#define Y_MAX_PIN 34
#define Z_MIN_PIN 33
#define Z_MAX_PIN 32
//
// Z Probe (when not Z_MIN_PIN)
@@ -69,255 +57,122 @@
#define Z_MIN_PROBE_PIN 32
#endif
#define SLED_PIN -1
//
// Steppers
//
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define X_CS_PIN 53
#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#define Y_CS_PIN 49
#define X_STEP_PIN 17
#define X_DIR_PIN 16
#define X_ENABLE_PIN 48
#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Y_STEP_PIN 54
#define Y_DIR_PIN 47
#define Y_ENABLE_PIN 55
#define Z_STEP_PIN 57
#define Z_DIR_PIN 56
#define Z_ENABLE_PIN 62
#define Z_CS_PIN 40
#define E0_STEP_PIN 26
#define E0_DIR_PIN 28
#define E0_STEP_PIN 23
#define E0_DIR_PIN 22
#define E0_ENABLE_PIN 24
#define E0_CS_PIN 42
#define E1_STEP_PIN 36
#define E1_DIR_PIN 34
#define E1_ENABLE_PIN 30
#define E1_CS_PIN 44
#define E1_STEP_PIN 26
#define E1_DIR_PIN 25
#define E1_ENABLE_PIN 27
#define E2_STEP_PIN 42
#define E2_DIR_PIN 43
#define E2_ENABLE_PIN 44
#define E2_STEP_PIN 29
#define E2_DIR_PIN 28
#define E2_ENABLE_PIN 39
//
// Temperature Sensors
//
#define TEMP_0_PIN 13 // Analog Input
#define TEMP_1_PIN 15 // Analog Input
#define TEMP_BED_PIN 14 // Analog Input
// SPI for Max6675 or Max31855 Thermocouple
#if DISABLED(SDSUPPORT)
#define MAX6675_SS 66 // Do not use pin 53 if there is even the remote possibility of using Display/SD card
#if TEMP_SENSOR_0 == -1
#define TEMP_0_PIN 6 // Analog Input (connector *K1* on RUMBA thermocouple ADD ON is used)
#else
#define MAX6675_SS 66 // Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
#define TEMP_0_PIN 15 // Analog Input (default connector for thermistor *T0* on rumba board is used)
#endif
//
// Augmentation for auto-assigning RAMPS plugs
//
#if DISABLED(IS_RAMPS_EEB) && DISABLED(IS_RAMPS_EEF) && DISABLED(IS_RAMPS_EFB) && DISABLED(IS_RAMPS_EFF) && DISABLED(IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
#if HOTENDS > 1
#if TEMP_SENSOR_BED
#define IS_RAMPS_EEB
#else
#define IS_RAMPS_EEF
#endif
#elif TEMP_SENSOR_BED
#define IS_RAMPS_EFB
#else
#define IS_RAMPS_EFF
#endif
#if TEMP_SENSOR_1 == -1
#define TEMP_1_PIN 5 // Analog Input (connector *K2* on RUMBA thermocouple ADD ON is used)
#else
#define TEMP_1_PIN 14 // Analog Input (default connector for thermistor *T1* on rumba board is used)
#endif
#if TEMP_SENSOR_2 == -1
#define TEMP_2_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_BED is defined as thermocouple)
#else
#define TEMP_2_PIN 13 // Analog Input (default connector for thermistor *T2* on rumba board is used)
#endif
// optional for extruder 4 or chamber:
//#define TEMP_X_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
//#define TEMP_CHAMBER_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
#if TEMP_SENSOR_BED == -1
#define TEMP_BED_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_2 is defined as thermocouple)
#else
#define TEMP_BED_PIN 11 // Analog Input (default connector for thermistor *THB* on rumba board is used)
#endif
//
// Heaters / Fans
//
#define HEATER_0_PIN 10
#define HEATER_1_PIN 58
//#define HEATER_2_PIN 6
//#define HEATER_3_PIN 8
#define HEATER_BED_PIN 8
#define HEATER_0_PIN 2
#define HEATER_1_PIN 3
#define HEATER_2_PIN 6
#define HEATER_3_PIN 8
#define HEATER_BED_PIN 9
#define LED4_PIN 5
#define LASER_PIN -1
#define FAN_PIN 9
#define FAN1_PIN -1
#ifndef FAN_PIN
#define FAN_PIN 7
#endif
#define FAN1_PIN 8
//
// Misc. Functions
//
#define SDSS 53
#define LED_PIN 13
#define PS_ON_PIN 45
#define KILL_PIN 46
#define CASE_LIGHT_PIN 45
// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
#define FILWIDTH_PIN 5 // Analog Input
// define digital pin 4 for the filament runout sensor. Use the RAMPS 1.4 digital input 4 on the servos connector
//#define FIL_RUNOUT_PIN 4
#define PS_ON_PIN 12
//
// M3/M4/M5 - Spindle/Laser Control
//
#ifndef SPINDLE_LASER_PWM_PIN
#define SPINDLE_LASER_PWM_PIN 4 // MUST BE HARDWARE PWM. Pin 4 interrupts OC0* and OC1* always in use?
#endif
#ifndef SPINDLE_LASER_ENABLE_PIN
#define SPINDLE_LASER_ENABLE_PIN 14 // Pin should have a pullup!
#endif
#ifndef SPINDLE_DIR_PIN
#define SPINDLE_DIR_PIN 15
#endif
//
// LCD / Controller
//
#if ENABLED(ULTRA_LCD)
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define LCD_PINS_RS 49 // CS chip select /SS chip slave select
#define LCD_PINS_ENABLE 51 // SID (MOSI)
#define LCD_PINS_D4 52 // SCK (CLK) clock
#elif ENABLED(NEWPANEL) && ENABLED(PANEL_ONE)
#define LCD_PINS_RS 40
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 65
#define LCD_PINS_D5 66
#define LCD_PINS_D6 44
#define LCD_PINS_D7 64
#else
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#define LCD_PINS_D7 29
#if DISABLED(NEWPANEL)
#define BEEPER_PIN 33
// Buttons are attached to a shift register
// Not wired yet
//#define SHIFT_CLK 38
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17
#endif
#endif
#if ENABLED(NEWPANEL)
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define BEEPER_PIN 37
#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define LCD_BACKLIGHT_PIN 39
#endif
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define BTN_EN1 64
#define BTN_EN2 59
#define BTN_ENC 63
#define SD_DETECT_PIN 42
#elif ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 47 // reverse if the encoder turns the wrong way.
#define BTN_EN2 43
#define BTN_ENC 32
#define LCD_SDSS 53
#define SD_DETECT_PIN -1
#define KILL_PIN 41
#elif ENABLED(LCD_I2C_VIKI)
#define BTN_EN1 22 // reverse if the encoder turns the wrong way.
#define BTN_EN2 7 // http://files.panucatt.com/datasheets/viki_wiring_diagram.pdf
// tells about 40/42.
// 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
#define BTN_ENC -1
#define LCD_SDSS 53
#define SD_DETECT_PIN 49
#elif ENABLED(VIKI2) || ENABLED(miniVIKI)
#define BEEPER_PIN 33
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44
#define DOGLCD_CS 45
#define LCD_SCREEN_ROT_180
#define BTN_EN1 22
#define BTN_EN2 7
#define BTN_ENC 39
#define SDSS 53
#define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
#define KILL_PIN 31
#define STAT_LED_RED_PIN 32
#define STAT_LED_BLUE_PIN 35
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define BTN_EN1 35 // reverse if the encoder turns the wrong way.
#define BTN_EN2 37
#define BTN_ENC 31
#define SD_DETECT_PIN 49
#define LCD_SDSS 53
#define KILL_PIN 41
#define BEEPER_PIN 23
#define DOGLCD_CS 29
#define DOGLCD_A0 27
#define LCD_BACKLIGHT_PIN 33
#elif ENABLED(MINIPANEL)
#define BEEPER_PIN 42
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44
#define DOGLCD_CS 66
#define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
#define SDSS 53
#define KILL_PIN 64
// GLCD features
//#define LCD_CONTRAST 190
// Uncomment screen orientation
//#define LCD_SCREEN_ROT_90
//#define LCD_SCREEN_ROT_180
//#define LCD_SCREEN_ROT_270
// The encoder and click button
#define BTN_EN1 40
#define BTN_EN2 63
#define BTN_ENC 59
// not connected to a pin
#define SD_DETECT_PIN 49
#else
// Beeper on AUX-4
#define BEEPER_PIN 33
// buttons are directly attached using AUX-2
#if ENABLED(REPRAPWORLD_KEYPAD)
#define BTN_EN1 64 // encoder
#define BTN_EN2 59 // encoder
#define BTN_ENC 63 // enter button
#define SHIFT_OUT 40 // shift register
#define SHIFT_CLK 44 // shift register
#define SHIFT_LD 42 // shift register
#elif ENABLED(PANEL_ONE)
#define BTN_EN1 59 // AUX2 PIN 3
#define BTN_EN2 63 // AUX2 PIN 4
#define BTN_ENC 49 // AUX3 PIN 7
#else
#define BTN_EN1 37
#define BTN_EN2 35
#define BTN_ENC 31 // the click
#endif
#if ENABLED(G3D_PANEL)
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#else
//#define SD_DETECT_PIN -1 // Ramps doesn't use this
#endif
#endif
#endif // NEWPANEL
#endif // ULTRA_LCD
#define SD_DETECT_PIN 49
#define BEEPER_PIN 44
#define LCD_PINS_D7 40
#define BTN_EN1 11
#define BTN_EN2 12
#define BTN_ENC 43
#if ENABLED(MKS_12864OLED) || ENABLED(MKS_12864OLED_SSD1306)
#define LCD_PINS_DC 38 // Set as output on init
#define LCD_PINS_RS 41 // Pull low for 1s to init
// DOGM SPI LCD Support
#define DOGLCD_CS 19
#define DOGLCD_MOSI 42
#define DOGLCD_SCK 18
#define DOGLCD_A0 LCD_PINS_DC
#else
#define LCD_PINS_RS 19
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 18
#define LCD_PINS_D5 38
#define LCD_PINS_D6 41
#endif
+1 -1
View File
@@ -276,7 +276,7 @@ void save_job_recovery_info() {
// If power-loss pin was triggered, write just once then kill
#if PIN_EXISTS(POWER_LOSS)
if (READ(POWER_LOSS_PIN) == POWER_LOSS_STATE) kill(MSG_POWER_LOSS_RECOVERY);
if (READ(POWER_LOSS_PIN) == POWER_LOSS_STATE) kill(PSTR(MSG_POWER_LOSS_RECOVERY));
#endif
}
}
+34 -34
View File
@@ -247,7 +247,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
* Alternately heat and cool the nozzle, observing its behavior to
* determine the best PID values to achieve a stable temperature.
*/
void Temperature::PID_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result/*=false*/) {
void Temperature::pid_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result/*=false*/) {
float current = 0.0;
int cycles = 0;
bool heating = true;
@@ -308,6 +308,11 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
return;
}
if (target > GHV(BED_MAXTEMP, maxttemp[hotend]) - 15) {
SERIAL_ECHOLNPGM(MSG_PID_TEMP_TOO_HIGH);
return;
}
SERIAL_ECHOLNPGM(MSG_PID_AUTOTUNE_START);
disable_all_heaters(); // switch off all heaters.
@@ -322,7 +327,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
const millis_t ms = millis();
if (temp_meas_ready) { // temp sample ready
updateTemperaturesFromRawValues();
calculate_celsius_temperatures();
// Get the current temperature and constrain it
current = GHV(current_temperature_bed, current_temperature[hotend]);
@@ -331,7 +336,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
#if HAS_AUTO_FAN
if (ELAPSED(ms, next_auto_fan_check_ms)) {
checkExtruderAutoFans();
check_extruder_auto_fans();
next_auto_fan_check_ms = ms + 2500UL;
}
#endif
@@ -478,7 +483,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
PID_PARAM(Kp, hotend) = workKp; \
PID_PARAM(Ki, hotend) = scalePID_i(workKi); \
PID_PARAM(Kd, hotend) = scalePID_d(workKd); \
updatePID(); }while(0)
update_pid(); }while(0)
// Use the result? (As with "M303 U1")
if (set_result) {
@@ -519,7 +524,7 @@ int Temperature::getHeaterPower(const int heater) {
#if HAS_AUTO_FAN
void Temperature::checkExtruderAutoFans() {
void Temperature::check_extruder_auto_fans() {
static const pin_t fanPin[] PROGMEM = { E0_AUTO_FAN_PIN, E1_AUTO_FAN_PIN, E2_AUTO_FAN_PIN, E3_AUTO_FAN_PIN, E4_AUTO_FAN_PIN, CHAMBER_AUTO_FAN_PIN };
static const uint8_t fanBit[] PROGMEM = {
0,
@@ -608,25 +613,20 @@ float Temperature::get_pid_output(const int8_t e) {
pid_error[HOTEND_INDEX] = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX];
dTerm[HOTEND_INDEX] = PID_K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + float(PID_K1) * dTerm[HOTEND_INDEX];
temp_dState[HOTEND_INDEX] = current_temperature[HOTEND_INDEX];
#if HEATER_IDLE_HANDLER
if (heater_idle_timeout_exceeded[HOTEND_INDEX]) {
pid_output = 0;
pid_reset[HOTEND_INDEX] = true;
}
else
#endif
if (pid_error[HOTEND_INDEX] > PID_FUNCTIONAL_RANGE) {
pid_output = BANG_MAX;
pid_reset[HOTEND_INDEX] = true;
}
else if (pid_error[HOTEND_INDEX] < -(PID_FUNCTIONAL_RANGE) || target_temperature[HOTEND_INDEX] == 0
if (target_temperature[HOTEND_INDEX] == 0
|| pid_error[HOTEND_INDEX] < -(PID_FUNCTIONAL_RANGE)
#if HEATER_IDLE_HANDLER
|| heater_idle_timeout_exceeded[HOTEND_INDEX]
#endif
) {
) {
pid_output = 0;
pid_reset[HOTEND_INDEX] = true;
}
else if (pid_error[HOTEND_INDEX] > PID_FUNCTIONAL_RANGE) {
pid_output = BANG_MAX;
pid_reset[HOTEND_INDEX] = true;
}
else {
if (pid_reset[HOTEND_INDEX]) {
temp_iState[HOTEND_INDEX] = 0.0;
@@ -759,7 +759,7 @@ void Temperature::manage_heater() {
if (!temp_meas_ready) return;
updateTemperaturesFromRawValues(); // also resets the watchdog
calculate_celsius_temperatures(); // also resets the watchdog
#if ENABLED(HEATER_0_USES_MAX6675)
if (current_temperature[0] > MIN(HEATER_0_MAXTEMP, MAX6675_TMAX - 1.0)) max_temp_error(0);
@@ -804,7 +804,7 @@ void Temperature::manage_heater() {
#if HAS_AUTO_FAN
if (ELAPSED(ms, next_auto_fan_check_ms)) { // only need to check fan state very infrequently
checkExtruderAutoFans();
check_extruder_auto_fans();
next_auto_fan_check_ms = ms + 2500UL;
}
#endif
@@ -914,7 +914,7 @@ void Temperature::manage_heater() {
// Derived from RepRap FiveD extruder::getTemperature()
// For hot end temperature measurement.
float Temperature::analog2temp(const int raw, const uint8_t e) {
float Temperature::analog_to_celsius_hotend(const int raw, const uint8_t e) {
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
if (e > HOTENDS)
#else
@@ -986,7 +986,7 @@ float Temperature::analog2temp(const int raw, const uint8_t e) {
#if HAS_HEATED_BED
// Derived from RepRap FiveD extruder::getTemperature()
// For bed temperature measurement.
float Temperature::analog2tempBed(const int raw) {
float Temperature::analog_to_celsius_bed(const int raw) {
#if ENABLED(HEATER_BED_USES_THERMISTOR)
SCAN_THERMISTOR_TABLE(BEDTEMPTABLE, BEDTEMPTABLE_LEN);
#elif ENABLED(HEATER_BED_USES_AD595)
@@ -1002,7 +1002,7 @@ float Temperature::analog2temp(const int raw, const uint8_t e) {
#if HAS_TEMP_CHAMBER
// Derived from RepRap FiveD extruder::getTemperature()
// For chamber temperature measurement.
float Temperature::analog2tempChamber(const int raw) {
float Temperature::analog_to_celsius_chamber(const int raw) {
#if ENABLED(HEATER_CHAMBER_USES_THERMISTOR)
SCAN_THERMISTOR_TABLE(CHAMBERTEMPTABLE, CHAMBERTEMPTABLE_LEN);
#elif ENABLED(HEATER_CHAMBER_USES_AD595)
@@ -1021,22 +1021,22 @@ float Temperature::analog2temp(const int raw, const uint8_t e) {
* and this function is called from normal context
* as it would block the stepper routine.
*/
void Temperature::updateTemperaturesFromRawValues() {
void Temperature::calculate_celsius_temperatures() {
#if ENABLED(HEATER_0_USES_MAX6675)
current_temperature_raw[0] = read_max6675();
#endif
HOTEND_LOOP() current_temperature[e] = Temperature::analog2temp(current_temperature_raw[e], e);
HOTEND_LOOP() current_temperature[e] = analog_to_celsius_hotend(current_temperature_raw[e], e);
#if HAS_HEATED_BED
current_temperature_bed = Temperature::analog2tempBed(current_temperature_bed_raw);
current_temperature_bed = analog_to_celsius_bed(current_temperature_bed_raw);
#endif
#if HAS_TEMP_CHAMBER
current_temperature_chamber = Temperature::analog2tempChamber(current_temperature_chamber_raw);
current_temperature_chamber = analog_to_celsius_chamber(current_temperature_chamber_raw);
#endif
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
redundant_temperature = Temperature::analog2temp(redundant_temperature_raw, 1);
redundant_temperature = analog_to_celsius_hotend(redundant_temperature_raw, 1);
#endif
#if ENABLED(FILAMENT_WIDTH_SENSOR)
filament_width_meas = analog2widthFil();
filament_width_meas = analog_to_mm_fil_width();
#endif
#if ENABLED(USE_WATCHDOG)
@@ -1051,7 +1051,7 @@ void Temperature::updateTemperaturesFromRawValues() {
#if ENABLED(FILAMENT_WIDTH_SENSOR)
// Convert raw Filament Width to millimeters
float Temperature::analog2widthFil() {
float Temperature::analog_to_mm_fil_width() {
return current_raw_filwidth * 5.0f * (1.0f / 16383.0);
}
@@ -1251,7 +1251,7 @@ void Temperature::init() {
#define TEMP_MIN_ROUTINE(NR) \
minttemp[NR] = HEATER_ ##NR## _MINTEMP; \
while (analog2temp(minttemp_raw[NR], NR) < HEATER_ ##NR## _MINTEMP) { \
while (analog_to_celsius_hotend(minttemp_raw[NR], NR) < HEATER_ ##NR## _MINTEMP) { \
if (HEATER_ ##NR## _RAW_LO_TEMP < HEATER_ ##NR## _RAW_HI_TEMP) \
minttemp_raw[NR] += OVERSAMPLENR; \
else \
@@ -1259,7 +1259,7 @@ void Temperature::init() {
}
#define TEMP_MAX_ROUTINE(NR) \
maxttemp[NR] = HEATER_ ##NR## _MAXTEMP; \
while (analog2temp(maxttemp_raw[NR], NR) > HEATER_ ##NR## _MAXTEMP) { \
while (analog_to_celsius_hotend(maxttemp_raw[NR], NR) > HEATER_ ##NR## _MAXTEMP) { \
if (HEATER_ ##NR## _RAW_LO_TEMP < HEATER_ ##NR## _RAW_HI_TEMP) \
maxttemp_raw[NR] -= OVERSAMPLENR; \
else \
@@ -1307,7 +1307,7 @@ void Temperature::init() {
#if HAS_HEATED_BED
#ifdef BED_MINTEMP
while (analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) {
while (analog_to_celsius_bed(bed_minttemp_raw) < BED_MINTEMP) {
#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP
bed_minttemp_raw += OVERSAMPLENR;
#else
@@ -1316,7 +1316,7 @@ void Temperature::init() {
}
#endif // BED_MINTEMP
#ifdef BED_MAXTEMP
while (analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) {
while (analog_to_celsius_bed(bed_maxttemp_raw) > BED_MAXTEMP) {
#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP
bed_maxttemp_raw -= OVERSAMPLENR;
#else
+10 -10
View File
@@ -318,13 +318,13 @@ class Temperature {
/**
* Static (class) methods
*/
static float analog2temp(const int raw, const uint8_t e);
static float analog_to_celsius_hotend(const int raw, const uint8_t e);
#if HAS_HEATED_BED
static float analog2tempBed(const int raw);
static float analog_to_celsius_bed(const int raw);
#endif
#if HAS_TEMP_CHAMBER
static float analog2tempChamber(const int raw);
static float analog_to_celsius_chamber(const int raw);
#endif
/**
@@ -365,7 +365,7 @@ class Temperature {
#endif
#if ENABLED(FILAMENT_WIDTH_SENSOR)
static float analog2widthFil(); // Convert raw Filament Width to millimeters
static float analog_to_mm_fil_width(); // Convert raw Filament Width to millimeters
static int8_t widthFil_to_size_ratio(); // Convert Filament Width (mm) to an extrusion ratio
#endif
@@ -414,7 +414,7 @@ class Temperature {
#if ENABLED(AUTO_POWER_CONTROL)
powerManager.power_on();
#endif
target_temperature[HOTEND_INDEX] = celsius;
target_temperature[HOTEND_INDEX] = MIN(celsius, maxttemp[HOTEND_INDEX] - 15);
#if WATCH_HOTENDS
start_watching_heater(HOTEND_INDEX);
#endif
@@ -449,7 +449,7 @@ class Temperature {
#endif
target_temperature_bed =
#ifdef BED_MAXTEMP
MIN(celsius, BED_MAXTEMP)
MIN(celsius, BED_MAXTEMP - 15)
#else
celsius
#endif
@@ -489,13 +489,13 @@ class Temperature {
* Perform auto-tuning for hotend or bed in response to M303
*/
#if HAS_PID_HEATING
static void PID_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result=false);
static void pid_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result=false);
/**
* Update the temp manager when PID values change
*/
#if ENABLED(PIDTEMP)
FORCE_INLINE static void updatePID() {
FORCE_INLINE static void update_pid() {
#if ENABLED(PID_EXTRUSION_SCALING)
last_e_position = 0;
#endif
@@ -612,13 +612,13 @@ class Temperature {
static void set_current_temp_raw();
static void updateTemperaturesFromRawValues();
static void calculate_celsius_temperatures();
#if ENABLED(HEATER_0_USES_MAX6675)
static int read_max6675();
#endif
static void checkExtruderAutoFans();
static void check_extruder_auto_fans();
static float get_pid_output(const int8_t e);
+5 -2
View File
@@ -210,8 +210,11 @@
serialprintPGM(csv ? PSTR("CSV:\n") : PSTR("LCD:\n"));
}
const float current_xi = get_cell_index_x(current_position[X_AXIS] + (MESH_X_DIST) / 2.0),
current_yi = get_cell_index_y(current_position[Y_AXIS] + (MESH_Y_DIST) / 2.0);
// Add XY_PROBE_OFFSET_FROM_EXTRUDER because probe_pt() subtracts these when
// moving to the xy position to be measured. This ensures better agreement between
// the current Z position after G28 and the mesh values.
const float current_xi = find_closest_x_index(current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER),
current_yi = find_closest_y_index(current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER);
if (!lcd) SERIAL_EOL();
for (int8_t j = GRID_MAX_POINTS_Y - 1; j >= 0; j--) {
+2 -2
View File
@@ -1287,8 +1287,8 @@
out_mesh.distance = -99999.9f;
// Get our reference position. Either the nozzle or probe location.
const float px = rx - (probe_as_reference == USE_PROBE_AS_REFERENCE ? X_PROBE_OFFSET_FROM_EXTRUDER : 0),
py = ry - (probe_as_reference == USE_PROBE_AS_REFERENCE ? Y_PROBE_OFFSET_FROM_EXTRUDER : 0);
const float px = rx + (probe_as_reference == USE_PROBE_AS_REFERENCE ? X_PROBE_OFFSET_FROM_EXTRUDER : 0),
py = ry + (probe_as_reference == USE_PROBE_AS_REFERENCE ? Y_PROBE_OFFSET_FROM_EXTRUDER : 0);
float best_so_far = 99999.99f;
+12 -9
View File
@@ -1824,12 +1824,18 @@ void lcd_quick_feedback(const bool clear_buttons) {
#if ENABLED(LEVEL_BED_CORNERS)
#ifndef LEVEL_CORNERS_Z_HOP
#define LEVEL_CORNERS_Z_HOP 4.0
#endif
static_assert(LEVEL_CORNERS_Z_HOP >= 0, "LEVEL_CORNERS_Z_HOP must be >= 0. Please update your configuration.");
/**
* Level corners, starting in the front-left corner.
*/
static int8_t bed_corner;
void _lcd_goto_next_corner() {
line_to_z(4.0);
line_to_z(LEVEL_CORNERS_Z_HOP);
switch (bed_corner) {
case 0:
current_position[X_AXIS] = X_MIN_BED + LEVEL_CORNERS_INSET;
@@ -2885,8 +2891,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
MENU_BACK(MSG_MAIN);
#if ENABLED(DELTA_AUTO_CALIBRATION)
MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33"));
MENU_ITEM(gcode, MSG_DELTA_HEIGHT_CALIBRATE, PSTR("G33 P1"));
MENU_ITEM(gcode, MSG_DELTA_Z_OFFSET_CALIBRATE, PSTR("G33 P-1"));
#if ENABLED(EEPROM_SETTINGS)
MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
@@ -3410,14 +3414,14 @@ void lcd_quick_feedback(const bool clear_buttons) {
UNUSED(e);
#endif
PID_PARAM(Ki, e) = scalePID_i(raw_Ki);
thermalManager.updatePID();
thermalManager.update_pid();
}
void copy_and_scalePID_d(int16_t e) {
#if DISABLED(PID_PARAMS_PER_HOTEND) || HOTENDS == 1
UNUSED(e);
#endif
PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
thermalManager.updatePID();
thermalManager.update_pid();
}
#define _DEFINE_PIDTEMP_BASE_FUNCS(N) \
void copy_and_scalePID_i_E ## N() { copy_and_scalePID_i(N); } \
@@ -3520,7 +3524,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15);
MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15);
MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 1);
MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 10);
#endif
//
@@ -5602,15 +5606,14 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
#endif // LCD_HAS_DIRECTIONAL_BUTTONS
buttons = newbutton;
#if ENABLED(LCD_HAS_SLOW_BUTTONS)
buttons |= slow_buttons;
newbutton |= slow_buttons;
#endif
buttons = newbutton;
#if ENABLED(ADC_KEYPAD)
uint8_t newbutton_reprapworld_keypad = 0;
buttons = 0;
if (buttons_reprapworld_keypad == 0) {
newbutton_reprapworld_keypad = get_ADC_keyValue();
if (WITHIN(newbutton_reprapworld_keypad, 1, 8))
+3 -1
View File
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "sed -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration.h"
eval "${SED} -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration.h"
done
+3 -1
View File
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "sed -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration_adv.h"
eval "${SED} -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration_adv.h"
done
+3 -1
View File
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "sed -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration.h"
eval "${SED} -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration.h"
done
+3 -1
View File
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "sed -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration_adv.h"
eval "${SED} -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration_adv.h"
done
+3 -1
View File
@@ -1,3 +1,5 @@
#!/usr/bin/env bash
eval "sed -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration.h"
SED=$(which gsed || which sed)
eval "${SED} -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration.h"
+3 -1
View File
@@ -1,3 +1,5 @@
#!/usr/bin/env bash
eval "sed -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration_adv.h"
SED=$(which gsed || which sed)
eval "${SED} -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration_adv.h"
+3 -1
View File
@@ -1,3 +1,5 @@
#!/usr/bin/env bash
eval "sed -i 's/\(#define \b${2}\b\).*$/\1 ${3}/g' Marlin/pins_${1}.h"
SED=$(which gsed || which sed)
eval "${SED} -i 's/\(#define \b${2}\b\).*$/\1 ${3}/g' Marlin/src/pins/pins_${1}.h"
+47
View File
@@ -0,0 +1,47 @@
#!/usr/bin/env bash
#
# travis_at_home
#
# Run all Travis test builds at home to save time finding typos
# Make sure to have 'arduino' somewhere in your PATH
#
LOG="travis-out.txt"
cd `dirname "$0"`/../..
TRAVIS_BUILD_DIR=`pwd`
echo $'Tests for '$TRAVIS_BUILD_DIR$' ...\n' >"$LOG"
# Add a temporary execution PATH
export PATH="./buildroot/bin:$PATH"
# Scan .travis.yml and run config/build commands only
X=1
while read P; do
# Command lines start with a hyphen
if [[ $P =~ ^-\ (([^ ]+)(\ .*)?)$ ]]; then
WORD="${BASH_REMATCH[2]}" ; # The first word
CMD="${BASH_REMATCH[1]}" ; # The whole command
RUN=1 ; BUILD=0
case "$WORD" in
cp|opt_*|pins_*|use_*|restore_*|gen*) ;;
build_*) BUILD=1 ;;
*) RUN=0 ;;
esac
# Runnable command
if [[ $RUN == 1 ]]; then
echo "$CMD" >>"$LOG"
RESULT=$( eval "$CMD >>\"$LOG\" 2>&1" )
if [[ $BUILD == 1 ]]; then
echo "--- Build $X done."
echo >>"$LOG"
X=$((X+1))
fi
fi
fi
done <.travis.yml
cd - >/dev/null
@@ -0,0 +1,20 @@
{
"build": {
"core": "teensy",
"extra_flags": "-DTEENSY2PP",
"f_cpu": "16000000L",
"mcu": "at90usb1286"
},
"frameworks": [
"arduino"
],
"name": "at90usb1286.json",
"upload": {
"maximum_ram_size": 8192,
"maximum_size": 122880,
"require_upload_port": true,
"protocol": ""
},
"url": "https://github.com/MarlinFirmware/Marlin",
"vendor": "various"
}
+601 -81
View File
@@ -23,6 +23,8 @@
#######################################
#
# Revision: 2.0.1
#
# Description: script to automate PlatformIO builds
# CLI: python auto_build.py build_option
# build_option (required)
@@ -69,6 +71,13 @@
import sys
import os
pwd = os.getcwd() # make sure we're executing from the correct directory level
pwd = pwd.replace('\\', '/')
if 0 <= pwd.find('buildroot/share/atom'):
pwd = pwd[ : pwd.find('buildroot/share/atom')]
os.chdir(pwd)
print 'pwd: ', pwd
num_args = len(sys.argv)
if num_args > 1:
build_type = str(sys.argv[1])
@@ -89,6 +98,14 @@ else:
print "This script only runs under python 2"
exit()
import platform
current_OS = platform.system()
#globals
target_env = ''
board_name = ''
#########
# Python 2 error messages:
# Can't find a usable init.tcl in the following directories ...
@@ -101,11 +118,17 @@ else:
# reboot
#########
#globals
target_env = ''
board_name = ''
#
# data/definitions used by memory check routine to determine if need to
# insert % memory used
#
mem_check_environments = ('at90USB1286_CDC', 'at90USB1286_DFU')
mem_check_builds = ('upload', 'program')
FLASH_MAX = 128 * 1024 - 4 * 1024 # DFU & CDC bootloaders start at word address F800
RAM_MAX = 8 * 1024
FLASH_PERCENT_WARN = 0.90
RAM_SYSTEM = 1024 # assume that 1K bytes is enough for stack, heap. ...
RAM_WARN = RAM_SYSTEM * 1.5
##########################################################################################
#
@@ -191,28 +214,212 @@ def get_answer(board_name, cpu_label_txt, cpu_a_txt, cpu_b_txt):
# end - get answer
#
# move custom board definitions from project folder to PlatformIO
#
def resolve_path(path):
import os
def env_name_check(argument):
name_check = {
'teensy35' : True,
'teensy20' : True,
'STM32F4' : True,
'STM32F1' : True,
'sanguino_atmega644p' : True,
'sanguino_atmega1284p' : True,
'rambo' : True,
'melzi_optiboot' : True,
'melzi' : True,
'megaatmega2560' : True,
'megaatmega1280' : True,
'malyanm200' : True,
'LPC1768' : True,
'DUE_debug' : True,
'DUE_USB' : True,
'DUE' : True
}
# turn the selection into a partial path
return name_check.get(argument, False)
if 0 <= path.find('"'):
path = path[ path.find('"') : ]
if 0 <= path.find(', line '):
path = path.replace(', line ', ':')
path = path.replace('"', '')
#get line and column numbers
line_num = 1
column_num = 1
line_start = path.find(':', 2) # use 2 here so don't eat Windows full path
column_start = path.find(':', line_start + 1)
if column_start == -1:
column_start = len(path)
column_end = path.find(':', column_start + 1)
if column_end == -1:
column_end = len(path)
if 0 <= line_start:
line_num = path[ line_start + 1 : column_start]
if line_num == '':
line_num = 1
if not(column_start == column_end):
column_num = path[ column_start + 1 : column_end]
if column_num == '':
column_num = 0
index_end = path.find(',')
if 0 <= index_end:
path = path[ : index_end] # delete comma and anything after
index_end = path.find(':', 2)
if 0 <= index_end:
path = path[ : path.find(':', 2)] # delete the line number and anything after
path = path.replace('\\','/')
if 1 == path.find(':') and current_OS == 'Windows':
return path, line_num, column_num # found a full path - no need for further processing
elif 0 == path.find('/') and (current_OS == 'Linux' or current_OS == 'Darwin'):
return path, line_num, column_num # found a full path - no need for further processing
else:
# resolve as many '../' as we can
while 0 <= path.find('../'):
end = path.find('../') - 1
start = path.find('/')
while 0 <= path.find('/',start) and end > path.find('/',start):
start = path.find('/',start) + 1
path = path[0:start] + path[end + 4: ]
# this is an alternative to the above - it just deletes the '../' section
# start_temp = path.find('../')
# while 0 <= path.find('../',start_temp):
# start = path.find('../',start_temp)
# start_temp = start + 1
# if 0 <= start:
# path = path[start + 2 : ]
start = path.find('/')
if not(0 == start): # make sure path starts with '/'
while 0 == path.find(' '): # eat any spaces at the beginning
path = path[ 1 : ]
path = '/' + path
if current_OS == 'Windows':
search_path = path.replace('/', '\\') # os.walk uses '\' in Windows
else:
search_path = path
start_path = os.path.abspath('')
# search project directory for the selection
found = False
full_path = ''
for root, directories, filenames in os.walk(start_path):
for filename in filenames:
if 0 <= root.find('.git'): # don't bother looking in this directory
break
full_path = os.path.join(root,filename)
if 0 <= full_path.find(search_path):
found = True
break
if found:
break
return full_path, line_num, column_num
# end - resolve_path
#
# Opens the file in the preferred editor at the line & column number
# If the preferred editor isn't already running then it tries the next.
# If none are open then the system default is used.
#
# Editor order:
# 1. Notepad++ (Windows only)
# 2. Sublime Text
# 3. Atom
# 4. System default (opens at line 1, column 1 only)
#
def open_file(path):
import subprocess
file_path, line_num, column_num = resolve_path(path)
if file_path == '' :
return
if current_OS == 'Windows':
editor_note = subprocess.check_output('wmic process where "name=' + "'notepad++.exe'" + '" get ExecutablePath')
editor_sublime = subprocess.check_output('wmic process where "name=' + "'sublime_text.exe'" + '" get ExecutablePath')
editor_atom = subprocess.check_output('wmic process where "name=' + "'atom.exe'" + '" get ExecutablePath')
if 0 <= editor_note.find('notepad++.exe'):
start = editor_note.find('\n') + 1
end = editor_note.find('\n',start + 5) -4
editor_note = editor_note[ start : end]
command = file_path , ' -n' + str(line_num) , ' -c' + str(column_num)
subprocess.Popen([editor_note, command])
elif 0 <= editor_sublime.find('sublime_text.exe'):
start = editor_sublime.find('\n') + 1
end = editor_sublime.find('\n',start + 5) -4
editor_sublime = editor_sublime[ start : end]
command = file_path + ':' + line_num + ':' + column_num
subprocess.Popen([editor_sublime, command])
elif 0 <= editor_atom.find('atom.exe'):
start = editor_atom.find('\n') + 1
end = editor_atom.find('\n',start + 5) -4
editor_atom = editor_atom[ start : end]
command = file_path + ':' + str(line_num) + ':' + str(column_num)
subprocess.Popen([editor_atom, command])
else:
os.startfile(resolve_path(path)) # open file with default app
elif current_OS == 'Linux':
command = file_path + ':' + str(line_num) + ':' + str(column_num)
index_end = command.find(',')
if 0 <= index_end:
command = command[ : index_end] # sometimes a comma magically appears, don't want it
running_apps = subprocess.Popen('ps ax -o cmd', stdout=subprocess.PIPE, shell=True)
(output, err) = running_apps.communicate()
temp = output.split('\n')
def find_editor_linux(name, search_obj):
for line in search_obj:
if 0 <= line.find(name):
path = line
return True, path
return False , ''
(success_sublime, editor_path_sublime) = find_editor_linux('sublime_text',temp)
(success_atom, editor_path_atom) = find_editor_linux('atom',temp)
if success_sublime:
subprocess.Popen([editor_path_sublime, command])
elif success_atom:
subprocess.Popen([editor_path_atom, command])
else:
os.system('xdg-open ' + file_path )
elif current_OS == 'Darwin': # MAC
command = file_path + ':' + str(line_num) + ':' + str(column_num)
index_end = command.find(',')
if 0 <= index_end:
command = command[ : index_end] # sometimes a comma magically appears, don't want it
running_apps = subprocess.Popen('ps axwww -o command', stdout=subprocess.PIPE, shell=True)
(output, err) = running_apps.communicate()
temp = output.split('\n')
def find_editor_mac(name, search_obj):
for line in search_obj:
if 0 <= line.find(name):
path = line
if 0 <= path.find('-psn'):
path = path[ : path.find('-psn') - 1 ]
return True, path
return False , ''
(success_sublime, editor_path_sublime) = find_editor_mac('Sublime',temp)
(success_atom, editor_path_atom) = find_editor_mac('Atom',temp)
if success_sublime:
subprocess.Popen([editor_path_sublime, command])
elif success_atom:
subprocess.Popen([editor_path_atom, command])
else:
os.system('open ' + file_path )
# end - open_file
# gets the last build environment
@@ -223,14 +430,16 @@ def get_build_last():
date_last = 0.0
DIR__pioenvs = os.listdir('.pioenvs')
for name in DIR__pioenvs:
if env_name_check(name):
DIR_temp = os.listdir('.pioenvs/' + name)
for names_temp in DIR_temp:
if 0 == names_temp.find('firmware.'):
date_temp = os.path.getmtime('.pioenvs/' + name + '/' + names_temp)
if date_temp > date_last:
date_last = date_temp
env_last = name
if 0 <= name.find('.') or 0 <= name.find('-'): # skip files in listing
continue
DIR_temp = os.listdir('.pioenvs/' + name)
for names_temp in DIR_temp:
if 0 == names_temp.find('firmware.'):
date_temp = os.path.getmtime('.pioenvs/' + name + '/' + names_temp)
if date_temp > date_last:
date_last = date_temp
env_last = name
return env_last
@@ -296,6 +505,10 @@ def get_starting_env(board_name_full, version):
with open(path, 'r') as myfile:
pins_h = myfile.read()
env_A = ''
env_B = ''
env_C = ''
board_name = board_name_full[ 6 : ] # only use the part after "BOARD_" since we're searching the pins.h file
pins_h = pins_h.split('\n')
environment = ''
@@ -350,10 +563,10 @@ def get_env(board_name, ver_Marlin):
raise SystemExit(0) # quit if unable to find board
CPU_question = ( ('1280', '2560', "1280 or 2560 CPU?"), ('644', '1284', "644 or 1284 CPU?") )
CPU_question = ( ('1280', '2560', " 1280 or 2560 CPU? "), ('644', '1284', " 644 or 1284 CPU? ") )
if 0 < board_name.find('MELZI') :
get_answer(board_name, "Which flavor of Melzi?", "Melzi (Optiboot bootloader)", "Melzi ")
get_answer(' ' + board_name + ' ', " Which flavor of Melzi? ", "Melzi (Optiboot bootloader)", "Melzi ")
if 1 == get_answer_val:
target_env = 'melzi_optiboot'
else:
@@ -371,7 +584,7 @@ def get_env(board_name, ver_Marlin):
for item in CPU_question:
if CPU_A == item[0]:
get_answer(board_name, item[2], item[0], item[1])
get_answer(' ' + board_name + ' ', item[2], item[0], item[1])
if 2 == get_answer_val:
target_env = env_B
else:
@@ -388,7 +601,7 @@ def get_env(board_name, ver_Marlin):
if build_type == 'traceback' or (build_type == 'clean' and get_build_last() == 'DUE_debug'):
target_env = 'DUE_debug'
elif env_B == 'DUE_USB':
get_answer(board_name, "DUE: need download port", "USB (native USB) port", "Programming port ")
get_answer(' ' + board_name + ' ', " DUE: need download port ", "USB (native USB) port", "Programming port ")
if 1 == get_answer_val:
target_env = 'DUE_USB'
else:
@@ -408,6 +621,7 @@ def get_env(board_name, ver_Marlin):
# puts screen text into queue so that the parent thread can fetch the data from this thread
import Queue
IO_queue = Queue.Queue()
PIO_queue = Queue.Queue()
def write_to_screen_queue(text, format_tag = 'normal'):
double_in = [text, format_tag]
IO_queue.put(double_in, block = False)
@@ -431,6 +645,7 @@ standard = True
prev_line_COM = False
next_line_warning = False
warning_continue = False
line_counter = 0
def line_print(line_input):
@@ -441,6 +656,7 @@ def line_print(line_input):
global prev_line_COM
global next_line_warning
global warning_continue
global line_counter
@@ -490,12 +706,19 @@ def line_print(line_input):
write_to_screen_queue(text[found_right : ] + '\n')
break
if did_something == False:
write_to_screen_queue(text + '\n')
r_loc = text.find('\r') + 1
if r_loc > 0 and r_loc < len(text): # need to split this line
text = text.split('\r')
for line in text:
write_to_screen_queue(line + '\n')
else:
write_to_screen_queue(text + '\n')
# end - write_to_screen_with_replace
# scan the line
line_counter = line_counter + 1
max_search = len(line_input)
if max_search > 3 :
max_search = 3
@@ -510,7 +733,14 @@ def line_print(line_input):
prev_line_COM = False
prev_line_COM = False
warning_continue = True
if beginning == 'War' or \
if 0 < line_input.find('Thank you') or 0 < line_input.find('SUMMARY') :
warning = False #standard line found
warning_FROM = False
error = False
standard = True
prev_line_COM = False
warning_continue = False
elif beginning == 'War' or \
beginning == '#er' or \
beginning == 'In ' or \
(beginning != 'Com' and prev_line_COM == True and not(beginning == 'Arc' or beginning == 'Lin' or beginning == 'Ind') or \
@@ -539,11 +769,6 @@ def line_print(line_input):
error = True
standard = False
prev_line_COM = False
elif beginning == 'fro' and warning == True : # start of warning /error block
warning_FROM = True
prev_line_COM = False
warning_continue = True
elif 0 < line_input.find(': error:') or \
0 < line_input.find(': fatal error:'): # start of warning /error block
warning = False # error found
@@ -552,9 +777,14 @@ def line_print(line_input):
standard = False
prev_line_COM = False
warning_continue = True
elif beginning == 'fro' and warning == True or \
beginning == '.pi' : # start of warning /error block
warning_FROM = True
prev_line_COM = False
warning_continue = True
elif warning_continue == True:
warning = True
warning_FROM = False # keep the warning status going until find a standard line
warning_FROM = False # keep the warning status going until find a standard line or an error
error = False
standard = False
prev_line_COM = False
@@ -608,6 +838,7 @@ def run_PIO(dummy):
import subprocess
import sys
print 'starting platformio'
if build_type == 'build':
@@ -664,7 +895,7 @@ def run_PIO(dummy):
# stream output from subprocess and split it into lines
for line in iter(pio_subprocess.stdout.readline, ''):
line_print(line.replace('\n', ''))
line_print(line.replace('\n', ''))
# append info used to run PlatformIO
@@ -696,10 +927,19 @@ import tkFileDialog
class output_window(Text):
# based on Super Text
global continue_updates
continue_updates = True
global search_position
search_position = '' # start with invalid search position
global error_found
error_found = False # are there any errors?
global memory_check_first_time
memory_check_first_time = True # wants to run memory_check twice
def __init__(self):
@@ -713,7 +953,9 @@ class output_window(Text):
Text.__init__(self, self.frame, borderwidth=3, relief="sunken")
self.config(tabs=(400,)) # configure Text widget tab stops
self.config(background = 'black', foreground = 'white', font= ("consolas", 12), wrap = 'word', undo = 'True')
self.config(height = 24, width = 120)
# self.config(background = 'black', foreground = 'white', font= ("consolas", 12), wrap = 'none', undo = 'True')
self.config(height = 24, width = 100)
self.config(insertbackground = 'pale green') # keyboard insertion point
self.pack(side='left', fill='both', expand=True)
self.tag_config('normal', foreground = 'white')
@@ -721,8 +963,12 @@ class output_window(Text):
self.tag_config('error', foreground = 'red')
self.tag_config('highlight_green', foreground = 'green')
self.tag_config('highlight_blue', foreground = 'cyan')
self.tag_config('error_highlight_inactive', background = 'dim gray')
self.tag_config('error_highlight_active', background = 'light grey')
# self.bind('<Control-Key-a>', self.select_all) # the event happens but the action doesn't
self.bind_class("Text","<Control-a>", self.select_all) # required in windows, works in others
self.bind_all("<Control-Shift-E>", self.scroll_errors)
self.bind_class("<Control-Shift-R>", self.rebuild)
# scrollbar
@@ -730,18 +976,50 @@ class output_window(Text):
self.config(yscrollcommand=scrb.set)
scrb.pack(side='right', fill='y')
# self.scrb_Y = tk.Scrollbar(self.frame, orient='vertical', command=self.yview)
# self.scrb_Y.config(yscrollcommand=self.scrb_Y.set)
# self.scrb_Y.pack(side='right', fill='y')
#
# self.scrb_X = tk.Scrollbar(self.frame, orient='horizontal', command=self.xview)
# self.scrb_X.config(xscrollcommand=self.scrb_X.set)
# self.scrb_X.pack(side='bottom', fill='x')
# scrb_X = tk.Scrollbar(self, orient=tk.HORIZONTAL, command=self.xview) # tk.HORIZONTAL now have a horizsontal scroll bar BUT... shrinks it to a postage stamp and hides far right behind the vertical scroll bar
# self.config(xscrollcommand=scrb_X.set)
# scrb_X.pack(side='bottom', fill='x')
#
# scrb= tk.Scrollbar(self, orient='vertical', command=self.yview)
# self.config(yscrollcommand=scrb.set)
# scrb.pack(side='right', fill='y')
# self.config(height = 240, width = 1000) # didn't get the size baCK TO NORMAL
# self.pack(side='left', fill='both', expand=True) # didn't get the size baCK TO NORMAL
# pop-up menu
self.popup = tk.Menu(self, tearoff=0)
self.popup.add_command(label='Cut', command=self._cut)
self.popup.add_command(label='Copy', command=self._copy)
self.popup.add_command(label='Paste', command=self._paste)
self.popup.add_separator()
self.popup.add_command(label='Cut', command=self._cut)
self.popup.add_separator()
self.popup.add_command(label='Select All', command=self._select_all)
self.popup.add_command(label='Clear All', command=self._clear_all)
self.popup.add_separator()
self.popup.add_command(label='Save As', command=self._file_save_as)
self.bind('<Button-3>', self._show_popup)
self.popup.add_separator()
# self.popup.add_command(label='Repeat Build(CTL-shift-r)', command=self._rebuild)
self.popup.add_command(label='Repeat Build', command=self._rebuild)
self.popup.add_separator()
self.popup.add_command(label='Scroll Errors (CTL-shift-e)', command=self._scroll_errors)
self.popup.add_separator()
self.popup.add_command(label='Open File at Cursor', command=self._open_selected_file)
if current_OS == 'Darwin': # MAC
self.bind('<Button-2>', self._show_popup) # macOS only
else:
self.bind('<Button-3>', self._show_popup) # Windows & Linux
# threading & subprocess section
@@ -761,18 +1039,19 @@ class output_window(Text):
def check_thread(self): # wait for user to kill the window
global continue_updates
if continue_updates == True:
self.root.after(20, self.check_thread)
self.root.after(10, self.check_thread)
def update(self):
global continue_updates
if continue_updates == True:
self.root.after(20, self.update)#method is called every 50ms
self.root.after(10, self.update)#method is called every 50ms
temp_text = ['0','0']
if IO_queue.empty():
if not(self.secondary_thread.is_alive()):
continue_updates = False # queue is exhausted and thread is dead so no need for further updates
self.tag_add('sel', '1.0', 'end')
self.memory_check() # scan buffer and add percent used if needed
print 'starting memory check'
else:
try:
temp_text = IO_queue.get(block = False)
@@ -785,6 +1064,74 @@ class output_window(Text):
# text editing section
def _scroll_errors(self):
global search_position
global error_found
if search_position == '': # first time so highlight all errors
countVar = tk.IntVar()
search_position = '1.0'
search_count = 0
while not(search_position == '') and search_count < 100:
search_position = self.search("error", search_position, stopindex="end", count=countVar, nocase=1)
search_count = search_count + 1
if not(search_position == ''):
error_found = True
end_pos = '{}+{}c'.format(search_position, 5)
self.tag_add("error_highlight_inactive", search_position, end_pos)
search_position = '{}+{}c'.format(search_position, 1) # point to the next character for new search
else:
break
if error_found:
if search_position == '':
search_position = self.search("error", '1.0', stopindex="end", nocase=1) # new search
else: # remove active highlight
end_pos = '{}+{}c'.format(search_position, 5)
start_pos = '{}+{}c'.format(search_position, -1)
self.tag_remove("error_highlight_active", start_pos, end_pos)
search_position = self.search("error", search_position, stopindex="end", nocase=1) # finds first occurrence AGAIN on the first time through
if search_position == "": # wrap around
search_position = self.search("error", '1.0', stopindex="end", nocase=1)
end_pos = '{}+{}c'.format(search_position, 5)
self.tag_add("error_highlight_active", search_position, end_pos) # add active highlight
self.see(search_position)
search_position = '{}+{}c'.format(search_position, 1) # point to the next character for new search
def scroll_errors(self, event):
self._scroll_errors()
def _rebuild(self):
#global board_name
#global Marlin_ver
#global target_env
#board_name, Marlin_ver = get_board_name()
#target_env = get_env(board_name, Marlin_ver)
self.start_thread()
def rebuild(self, event):
print "event happened"
self._rebuild()
def _open_selected_file(self):
current_line = self.index('insert')
line_start = current_line[ : current_line.find('.')] + '.0'
line_end = current_line[ : current_line.find('.')] + '.200'
self.mark_set("path_start", line_start)
self.mark_set("path_end", line_end)
path = self.get("path_start", "path_end")
from_loc = path.find('from ')
colon_loc = path.find(': ')
if 0 <= from_loc and ((colon_loc == -1) or (from_loc < colon_loc)) :
path = path [ from_loc + 5 : ]
if 0 <= colon_loc:
path = path [ : colon_loc ]
if 0 <= path.find('\\') or 0 <= path.find('/'): # make sure it really contains a path
open_file(path)
def _file_save_as(self):
self.filename = tkFileDialog.asksaveasfilename(defaultextension = '.txt')
f = open(self.filename, 'w')
@@ -833,7 +1180,7 @@ class output_window(Text):
pass
def cut(self, event):
_cut(self)
self._cut()
def _copy(self):
@@ -845,7 +1192,7 @@ class output_window(Text):
pass
def copy(self, event):
_copy(self)
self._copy()
def _paste(self):
@@ -867,40 +1214,203 @@ class output_window(Text):
if isok:
self.delete('1.0', 'end')
def _place_cursor(self): # theme: terminal
'''check the position of the cursor against the last known position
every 15ms and update the cursorblock tag as needed'''
# add memory % if needed
def memory_check(self):
global memory_check_first_time
if not(memory_check_first_time):
return
memory_check_first_time = False
search_position = self.search("Environment used:", "1.0", stopindex="end")
env_line = self.get(search_position, '{}+{}c'.format(search_position, 200))
print 'env_line 1 ', env_line
if 0 <= env_line.find('\n'):
env_line = env_line[ : env_line.find('\n')]
env_end = env_line.find(' ', 18)
if env_end == -1:
env_end = len(env_line)
env_line = env_line[ 18 : env_end ]
print 'env_line 2 ', env_line
env_found = False
for env in mem_check_environments:
if env_line == env:
env_found = True
print 'env ', env
current_index = self.index('insert')
search_position = self.search("Build type:", "1.0", stopindex="end")
if search_position == "":
print "didn't find it"
return
build_line = self.get(search_position, '{}+{}c'.format(search_position, 200))
print 'build_line 1 ', build_line
if 0 <= build_line.find('\n'):
build_line = build_line[ : build_line.find('\n')]
build_end = build_line.find(' ', 14)
if build_end == -1:
build_end = len(build_line)
build_line = build_line[ 12 : build_end ]
print 'build_line 2 ', build_line
build_found = False
for build in mem_check_builds:
if build_line == build:
build_found = True
print 'build ', build
if self.cursor != current_index:
self.cursor = current_index
self.tag_delete('cursorblock')
if env_found and build_found: # find the memory values
search_position = self.search("Checking program size", "1.0", stopindex="end")
if search_position != '':
print 'search_position: ' + search_position
line_int = int(search_position[ : search_position.find(".")]) + 1
line_str = str(line_int)
line = self.get(line_str + '.0', line_str + '.200')
print 'line: ', line
while 'text' != line[ : 4 ] :
line_int = line_int + 1
line_str = str(line_int)
line = self.get(line_str + '.0', line_str + '.200')
print 'line: ', line
line_int = line_int + 1
line_str = str(line_int)
print 'line + 3: ' + line_str + '.0'
size_line = self.get(line_str + '.0', line_str + '.200')
print 'size_line ', size_line
start = self.index('insert')
end = self.index('insert+1c')
data_start = 0
while ' ' == size_line[ data_start : data_start + 1] :
data_start = data_start + 1 # eat leading blanks
print 'data_start: ', data_start, size_line.find(' ', data_start)
data_end = size_line.find(' ', data_start) - 1
text_str = size_line[ data_start : data_end]
print 'text_str = ', data_start, data_end, text_str + '/////'
text_val = int(text_str)
print 'text_val ', text_val
if start[0] != end[0]:
self.insert(start, ' ')
end = self.index('insert')
data_start = size_line.find(' ', data_end)
while ' ' == size_line[ data_start : data_start + 1] :
data_start = data_start + 1 # eat leading blanks
print 'data_start: ', data_start, size_line.find(' ', data_start)
data_end = size_line.find(' ', data_start) -1
data_val = int(size_line[ data_start : data_end])
print 'data_val ', data_val
self.tag_add('cursorblock', start, end)
self.mark_set('insert', self.cursor)
data_start = size_line.find(' ', data_end)
while ' ' == size_line[ data_start : data_start + 1] :
data_start = data_start + 1 # eat leading blanks
print 'data_start: ', data_start, size_line.find(' ', data_start)
data_end = size_line.find(' ', data_start) - 1
if data_end == -1:
data_end = len(size_line)
bss_val = int(size_line[ data_start : data_end])
print 'bss_val ', bss_val
self.after(15, self._place_cursor)
FLASH_total = text_val + data_val
RAM_total = bss_val + data_val
def _blink_cursor(self): # theme: terminal
'''alternate the background color of the cursorblock tagged text
every 600 milliseconds'''
tag = 'normal'
if FLASH_total >= FLASH_MAX * FLASH_PERCENT_WARN:
tag = 'warning'
if FLASH_total >= FLASH_MAX:
tag = 'error'
line_int = line_int + 1
line_str = str(line_int)
self.insert('end', '\nProgram: ' + str(FLASH_total) + ' bytes (' + str( 100*FLASH_total/FLASH_MAX) + '% of application area)\n', tag)
self.insert(line_str + '.0', '\nProgram: ' + str(FLASH_total) + ' bytes (' + str( 100*FLASH_total/FLASH_MAX) + '% of application area)\n', tag)
if self.switch == self.fg:
self.switch = self.bg
else:
self.switch = self.fg
self.tag_config('cursorblock', background=self.switch)
tag = 'normal'
if RAM_total >= RAM_MAX - RAM_WARN:
tag = 'warning'
if RAM_total >= RAM_MAX - RAM_SYSTEM:
tag = 'error'
line_int = line_int + 2
line_str = str(line_int)
self.insert('end', 'Data: ' + str(RAM_total) + ' bytes (' + str( 100*RAM_total/(RAM_MAX-RAM_SYSTEM)) + '% of non-system RAM)\n', tag)
self.insert(line_str + '.0', 'Data: ' + str(RAM_total) + ' bytes (' + str( 100*RAM_total/(RAM_MAX-RAM_SYSTEM)) + '% of non-system RAM)\n\n', tag)
self.see("end") # make the new lines visible (scroll text off the top)
# end - memory_check
#
# error reporting proceedure for copy_boards_dir()
#
def report_failure(self, PIO_path, board_path):
# didn't find the file - user needs to copy it & re-run the script
self.insert('end', 'Unable to move board definition file to destination. User must manually copy the file.\n\n', 'error')
self.insert('end', 'Please copy the following file and re-run the script:\n', 'normal')
self.insert('end', ' FROM:\n')
self.insert('end', ' ' + pwd + '/' + board_path + '/at90usb1286.json\n')
self.insert('end', ' TO:\n')
self.insert('end', ' ' + PIO_path + '/at90usb1286.json\n')
#
# move custom board definitions from project folder to PlatformIO
# returns True if the file ends up in the correct location
#
def copy_boards_dir(self):
temp = os.environ
for key in temp:
if 0 <= os.environ[key].find('.platformio'):
part = os.environ[key].split(';')
for part2 in part:
if 0 <= part2.find('.platformio'):
path = part2
break
path = path.replace("\\", "/")
path = path.replace("//", "/")
path_remaining = path
still_looking = True
PIO_path = ''
while still_looking:
colon_pos = path_remaining.find(':')
if -1 == colon_pos:
still_looking = False
path_maybe = path_remaining
else:
path_maybe = path_remaining[ : colon_pos]
path_remaining = path_remaining[ colon_pos + 1 : ]
if 0 <= path_maybe.find('/.platformio'):
still_looking = False
PIO_path = path_maybe
start_loc = PIO_path.find('/.platformio')
next_loc = PIO_path.find('/', start_loc + 5)
if 0 <= next_loc:
PIO_path = PIO_path[ : next_loc]
PIO_path = PIO_path + '/boards'
board_path = 'buildroot/share/PlatformIO/boards'
from distutils.dir_util import copy_tree
try:
copy_tree(board_path, PIO_path)
except:
pass
# check to see if it's there
# macOS will throw an exception if it can't get to the directory
# Ubuntu doesn't complain if it can't get to the directory
# Windows always succeeds (have not been able to lock it out in testing)
short_path = PIO_path[ : PIO_path.find('/boards')]
try:
PIO_dir = os.listdir(short_path)
except:
self.report_failure(PIO_path, board_path)
return False
if 'boards' in PIO_dir:
try:
boards_dir = os.listdir(PIO_path)
except:
self.report_failure(PIO_path, board_path)
return False
if 'at90usb1286.json' in boards_dir:
return True # it's there so all is well
self.report_failure(PIO_path, board_path)
return False
# end copy_boards_dir
self.after(600, self._blink_cursor)
# end - output_window
@@ -922,8 +1432,18 @@ def main():
target_env = get_env(board_name, Marlin_ver)
os.environ["BUILD_TYPE"] = build_type # let sub processes know what is happening
os.environ["TARGET_ENV"] = target_env
os.environ["BOARD_NAME"] = board_name
auto_build = output_window()
auto_build.start_thread() # executes the "run_PIO" function
continue_script = True
if 0 <= target_env.find('USB1286'):
continue_script = auto_build.copy_boards_dir() # copy custom boards over to PlatformIO if using custom board
if continue_script:
auto_build.start_thread() # executes the "run_PIO" function
auto_build.root.mainloop()

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