Compare commits

...

1062 Commits

Author SHA1 Message Date
InsanityAutomation 6118d41baa Tweak probe preheat to wait for cooldown, bypass block on unload prime 2021-02-14 14:13:41 -05:00
InsanityAutomation 09dcc85328 Merge branch 'bugfix-2.0.x' into CR-6Devel 2021-02-14 12:06:14 -05:00
X-Ryl669 ce1ec22704 Use -g3 to include macros in debug symbols (#21052) 2021-02-12 08:33:27 -06:00
X-Ryl669 03789c4d97 Improve Delay test report (#21047) 2021-02-12 07:49:07 -06:00
kpishere e0ca244623 Fix AZSMZ_12864 on SMART RAMPS (#21056) 2021-02-12 05:00:41 -06:00
Jyers 3c41f108df Improved Ender 3 V2 display status area (#20983)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-02-12 04:55:06 -06:00
kpishere 7069d03ab2 Support SMART RAMPS 1.4 with Mega2560 (#21059) 2021-02-12 04:42:31 -06:00
Scott Lahteine 01215f5015 Ender 3 V2 DWIN cleanup (#21061) 2021-02-12 03:52:21 -06:00
Michael Telatynski 42d00b13df Improve probe preheat behavior (#21033)
Co-authored-by: InsanityAutomation <d.menzel@insanityautomation.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-02-11 18:32:31 -06:00
thinkyhead 1f21a499d4 [cron] Bump distribution date (2021-02-12) 2021-02-12 00:12:23 +00:00
thinkyhead 274c729fd3 [cron] Bump distribution date (2021-02-11) 2021-02-11 00:12:23 +00:00
InsanityAutomation a11f88a44a Update probe.cpp 2021-02-10 14:20:41 -05:00
InsanityAutomation c639e9fcc6 preheat and parking tweaks 2021-02-10 07:03:48 -05:00
Scott Lahteine 9d24ee8daf chmod and paths 2021-02-10 02:57:27 -06:00
thinkyhead dd5e0f724a [cron] Bump distribution date (2021-02-10) 2021-02-10 00:12:10 +00:00
Scott Lahteine 653d73ff07 Reheat bed first 2021-02-08 21:55:48 -06:00
Scott Lahteine 662d81c801 Ender 3 V2 DWIN cleanup (#21026) 2021-02-08 21:27:00 -06:00
Scott Lahteine 187602dfaf Update M808 comment 2021-02-08 20:25:08 -06:00
JoAnn Manges 8707ae23e2 MAX Thermocouples rework (#20447)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-02-08 19:51:57 -06:00
thinkyhead 0127763ade [cron] Bump distribution date (2021-02-09) 2021-02-09 00:12:14 +00:00
InsanityAutomation bfb81d8c92 Merge branch 'bugfix-2.0.x' into CR-6Devel 2021-02-08 11:16:20 -05:00
X-Ryl669 e7c711996b Serial refactor. Default 8-bit ECHO to int, not char (#20985)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-02-08 00:37:24 -06:00
Arjan Mels 1e726fe405 Fix STM32F1 emergency parser (#21011) 2021-02-07 22:47:08 -06:00
Alexander D. Kanevskiy 24e18a9fbd Allow SERVO0_PIN override on Creality Melzi (#21007) 2021-02-07 22:44:49 -06:00
Scott Lahteine 5f824c5708 Fix animated boot screen 2021-02-07 21:51:32 -06:00
MKS-Sean 57e4b82b66 Fix: Unsupported use of %f in printf (#21001) 2021-02-07 20:36:57 -06:00
ellensp 6dcb77f7b5 Fix mini12864 v2.1 + PSU control + NeoPixel backlight (#21021) 2021-02-07 20:36:04 -06:00
thinkyhead 42761acf4f [cron] Bump distribution date (2021-02-08) 2021-02-08 00:15:33 +00:00
Malderin 01756b6b02 Fix LVGL "more" menu user items (#21004)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-02-07 17:45:14 -06:00
Scott Lahteine b35bfeb1c3 Fix TEMP_0_TR_ENABLE, rename temp conditions (#21016) 2021-02-07 16:58:06 -06:00
Simon Jouet af4e8b171c Fix ESP32 I2S init placement (#21019) 2021-02-07 16:56:39 -06:00
Chris Pepper 5233e66762 Improve RPi host kernel panic mitigation
It was still possible to cause a Kernel panic, this additional 500ms delay before disconnect appears to mitigate it completely.
2021-02-07 20:46:24 +00:00
Scott Lahteine 52c246ae19 Melzi, comments cleanup 2021-02-06 18:19:37 -06:00
thinkyhead e34f279295 [cron] Bump distribution date (2021-02-07) 2021-02-07 00:12:48 +00:00
Marcio Teixeira ee66d9ccf9 Refactor FTDI EVE Touch Screen (#20987) 2021-02-06 14:25:10 -06:00
InsanityAutomation fbb5a5baf2 Merge branch 'bugfix-2.0.x' into CR-6Devel 2021-02-06 12:58:31 -05:00
InsanityAutomation 83872e7b67 Update Configuration_adv.h 2021-02-06 12:57:44 -05:00
InsanityAutomation 7d4870fb4d Update temperature.cpp 2021-02-06 12:57:41 -05:00
X-Ryl669 1c19af2c8f Fix ARM delay function (#20901) 2021-02-05 22:43:51 -06:00
Scott Lahteine 10aaab6350 Use 'false' 2021-02-05 18:48:11 -06:00
thinkyhead 62f060a389 [cron] Bump distribution date (2021-02-06) 2021-02-06 00:12:05 +00:00
Chris Pepper 004bed8a7f Mitigate RPi hosts kernel panic on M997
Work around M997 sometimes causing a kernel panic on the host when sent from a Raspbery Pi, the root cause is currently unknown.
2021-02-05 22:43:36 +00:00
ellensp a971233068 Fix MKS SGen-L DOGLCD_MOSI pin for FYSETC_MINI_12864 LCD (#20998) 2021-02-05 07:07:10 -06:00
Zs.Antal 67ae845b3c Update Hungarian language (#20996) 2021-02-05 06:28:30 -06:00
Scott Lahteine 708ea3d0bb Use serial shorthand 2021-02-04 23:34:09 -06:00
Scott Lahteine 49564e5310 Nybbles & Bits 2021-02-04 19:38:07 -06:00
Scott Lahteine 604afd52d1 Fix some serial char, echo
Co-Authored-By: X-Ryl669 <3277165+X-Ryl669@users.noreply.github.com>
2021-02-04 19:20:28 -06:00
thinkyhead 6dac71e618 [cron] Bump distribution date (2021-02-05) 2021-02-05 00:12:11 +00:00
Victor Oliveira d58bbd5da1 Re-calibrate touch after EEPROM reset, if needed (#20934) 2021-02-04 15:31:46 -06:00
thinkyhead 68299c6a5e [cron] Bump distribution date (2021-02-04) 2021-02-04 00:11:57 +00:00
thinkyhead d079634c5e [cron] Bump distribution date (2021-02-03) 2021-02-03 00:13:01 +00:00
Malderin 9025c63c43 Add "more" menu in LVGL interface (#20940)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-02-02 16:04:23 -06:00
Scott Lahteine c6ef86029c Evaluate ANY_SERIAL_IS in place 2021-02-02 16:00:11 -06:00
ellensp e3deb6e9a5 Note (MarlinUI) limit on PREHEAT settings (#20966)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-02-02 15:00:41 -06:00
Giuliano Zaro 6eec242a07 Update a UBL comment (#20931) 2021-02-02 14:57:30 -06:00
Victor Oliveira 28b8bf566b STM32 Shared Media - USB Mass Storage Device (#20956) 2021-02-02 14:55:11 -06:00
Tanguy Pruvot 0ce3f6efe0 Multi-language pertains to Color UI (#20972) 2021-02-02 14:33:07 -06:00
Victor Oliveira 617f5dfe5e Touch Calibration Screen auto-save option (#20971) 2021-02-02 14:31:51 -06:00
Victor Oliveira 1f12273de1 Include ui_common for MARLIN_LOGO_FULL_SIZE (#20963) 2021-02-02 14:31:01 -06:00
ellensp 65483dcc95 Fix host_response_handler compile (#20962) 2021-02-02 14:30:19 -06:00
InsanityAutomation 3cacab40da Update dwin.cpp 2021-02-02 09:32:51 -05:00
thinkyhead 32d859eede [cron] Bump distribution date (2021-02-02) 2021-02-02 00:17:47 +00:00
X-Ryl669 c74f972627 LVGL UI G-code console (#20755) 2021-01-31 18:18:39 -06:00
thinkyhead 33c78d2bb2 [cron] Bump distribution date (2021-02-01) 2021-02-01 00:17:15 +00:00
Tanguy Pruvot 7626ef57b9 Refresh screen on M22 (detach) (#20958) 2021-01-31 18:15:14 -06:00
X-Ryl669 07b4cc145b Fix AutoReporter implementation (#20959) 2021-01-31 18:11:50 -06:00
X-Ryl669 27366197f3 Serial refactor followup (#20932) 2021-01-31 17:21:27 -06:00
zeleps d49969ddf3 Init serial ports first (#20944) 2021-01-31 16:50:12 -06:00
qwewer0 c91a91008c Remove extra G29 V newlines (#20955) 2021-01-31 16:47:16 -06:00
thinkyhead 92b4c05090 [cron] Bump distribution date (2021-01-31) 2021-01-31 00:16:38 +00:00
InsanityAutomation b8d900b70d Save after leveling explicitly 2021-01-30 18:08:46 -05:00
InsanityAutomation b4ede61682 Bump to current, fix temp drop, bump version 2021-01-30 15:56:58 -05:00
InsanityAutomation 7e8e06fe2f Merge branch 'bugfix-2.0.x' into CR-6Devel 2021-01-30 11:03:34 -05:00
ConstantijnCrijnen d45ad8f827 Language selection auto-save option (#20915) 2021-01-30 00:07:35 -06:00
ellensp fa3bd72eea KILL, BEEPER pins for LCD_FOR_MELZI (#20924) 2021-01-29 23:44:32 -06:00
ellensp d3068125c5 Fix G28_STR (#20925) 2021-01-29 23:41:45 -06:00
thinkyhead e269e936e3 [cron] Bump distribution date (2021-01-30) 2021-01-30 00:17:43 +00:00
rafaljot 0d2645b3e1 MPX_ARM_MINI board (Mingda MD-16) (#20711) 2021-01-28 23:22:18 -06:00
Scott Lahteine 9d0e64a725 AutoReport class (Temperature, Cardreader) (#20913) 2021-01-28 20:40:20 -06:00
X-Ryl669 9e004a9496 Optimize serial output code for size (#20911) 2021-01-28 19:59:16 -06:00
George Fu 5ac08a44c6 FYSETC Cheetah 2.0 (#20897) 2021-01-28 19:52:49 -06:00
ellensp c72b1c5893 Fix undefined G28_STR (#20912) 2021-01-28 19:44:52 -06:00
ellensp c65bf64756 Fix LED_CONTROL_MENU compile (#20914) 2021-01-28 19:44:16 -06:00
thinkyhead 7201433060 [cron] Bump distribution date (2021-01-29) 2021-01-29 00:17:07 +00:00
Scott Lahteine 7bbdbcfb6d Serial refactor followup 2021-01-28 02:19:12 -06:00
X-Ryl669 3f01b222b2 Refactor serial class with templates (#20783) 2021-01-28 02:02:06 -06:00
ellensp c929fb52dd Meatpack::report_state on serial port init (#20903)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-01-28 01:47:12 -06:00
ellensp 11b407045a MeatPack followup - unused command (#20893) 2021-01-28 01:46:17 -06:00
thinkyhead 811bb7997c [cron] Bump distribution date (2021-01-28) 2021-01-28 00:17:20 +00:00
Scott Lahteine d932cd9be1 Remove extra cast 2021-01-27 15:23:04 -06:00
Scott Mudge 5e5dfff6fe MeatPack followup (#20896) 2021-01-27 15:18:20 -06:00
ellensp 107f692de8 ZONESTAR_LCD warning for RAMPS / ReARM (#20702) 2021-01-27 15:11:25 -06:00
thinkyhead a1019413f4 [cron] Bump distribution date (2021-01-27) 2021-01-27 00:15:06 +00:00
ConstantijnCrijnen b95f5c5bea Configure / disable PRINTCOUNTER save interval (#20856)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-01-26 02:30:31 -06:00
Scott Lahteine 8c0cb6cce8 Custom G26 FR followup 2021-01-26 02:15:27 -06:00
Scott Lahteine ee93101b24 Custom G26 FR followup 2021-01-25 23:53:39 -06:00
ScrewThisBanana 7f4c5b86db Adding custom move feedrate for G26 Travel moves, Original #20729 (#20879)
* Adding custom move feedrate for G26

This commit adds an additional configuration parameter that can be used to specify the movement speed during the G26 validation pattern command during moves without extrusion.

Closes MarlinFirmware/Marlin#20615
2021-01-25 20:14:26 -07:00
thinkyhead 9bf33e4dcd [cron] Bump distribution date (2021-01-26) 2021-01-26 00:17:22 +00:00
Giuliano Zaro 876c2586b9 Clean up MMU2 code (#20794)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-25 08:58:52 -06:00
Rockman18 b9ed139546 Init KILL, SUICIDE, PSU earlier (#20810) 2021-01-25 08:50:39 -06:00
Gabriele Besta 85d61de61c "Move … code" followup (#20869)
Fix regression from #20832
2021-01-25 08:39:24 -06:00
Scott Lahteine b8186b5081 Apply SEC_TO_MS and other fixes 2021-01-25 08:32:58 -06:00
Scott Lahteine fb67b9bdad Reformat abortSDPrinting 2021-01-25 04:57:00 -06:00
Alexander D. Kanevskiy 2c983d6c7a Fix sign warning (#20872) 2021-01-25 01:53:48 -06:00
qwewer0 7c28d6b869 Cosmetic changes (2) (#20876) 2021-01-25 01:52:45 -06:00
ellensp 53035de136 "Move … code" followup (#20868)
Fix regression from #20832
2021-01-25 01:51:54 -06:00
Kairali d7ca3ea27c "Move … code" followup (#20874)
Fix regression from #20832
2021-01-25 01:48:31 -06:00
Tanguy Pruvot c12be1f98c Graphical TFT fixes, cleanup (#20861)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-25 01:44:39 -06:00
qwewer0 90be1c3fa7 🧻 Cosmetic changes (#20859) 2021-01-25 01:11:34 -06:00
Scott Lahteine 727bf7dd8c 🛠Fix deps script version regex 2021-01-24 21:20:51 -06:00
Scott Lahteine e9425d711d Fix Ender 3 V2 DWIN manual move (#20837) 2021-01-24 20:13:02 -06:00
thinkyhead 9d42beb2e6 [cron] Bump distribution date (2021-01-25) 2021-01-25 00:43:47 +00:00
Jason Smith ea8d682664 Fix LiquidCrystal CI failures (#20873)
Fix incorrect dependency syntax for LPC.
Disambiguate LiquidCrystal library names.
2021-01-24 13:24:16 -08:00
Roxy-3D 8f7bac4999 Revert "Adding custom move feedrate for G26 (#20729)" (#20870)
This reverts commit 14567f3459.
2021-01-24 07:47:22 -07:00
ellensp 3921369f98 MeatPack serial encoding (#20802)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-24 00:43:23 -06:00
thinkyhead a243996aca [cron] Bump distribution date (2021-01-24) 2021-01-24 00:43:17 +00:00
Tanguy Pruvot 0f612d5021 lcd_put_wchar_max for COLOR_UI (#20838)
Co-Authored-By: Victor Oliveira <github@victormo.com.br>
2021-01-22 23:23:35 -06:00
ScrewThisBanana 14567f3459 Adding custom move feedrate for G26 (#20729)
* Adding custom move feedrate for G26

This commit adds an additional configuration parameter that can be used to specify the movement speed during the G26 validation pattern command during moves without extrusion.

Closes MarlinFirmware/Marlin#20615

* Fixing missing default 'G26_XY_FEEDRATE_MOVE' value

This commit adds a default 'G26_XY_FEEDRATE_MOVE' value (max movement speed / 1.5) in the G26.cpp - same behaviour as the default 'G26_XY_FEEDRATE' value

* Adding comment describing functionality in G26.cpp

* Renaming 'G26_XY_FEEDRATE_MOVE' to 'G26_XY_FEEDRATE_TRAVEL'

Configuration parameter renamed for better readability and consistency

MarlinFirmware/Marlin#20615

* Setting 'G26_XY_FEEDRATE_TRAVEL' to a safer value, aligned comments

Changed default value for 'G26_XY_FEEDRATE_TRAVEL' from 150 mm/s to 100 mm/s for safety purposes, comment alignment

MarlinFirmware/Marlin#20615
2021-01-22 20:02:22 -07:00
Scott Lahteine a54154e760 🛠 Replace lib_deps for custom_marlin.FEATURE (#20858) 2021-01-22 20:51:58 -06:00
thinkyhead ac10fdc50f [cron] Bump distribution date (2021-01-23) 2021-01-23 00:44:51 +00:00
Giuliano Zaro 90c0194598 "Move … code" followup (#20852)
Fix regression from #20832
2021-01-22 15:58:08 -06:00
Scott Lahteine 09d07f76b3 Add labels, condition for BTT GTR M5 pins (#20772)
Co-Authored-By: NAPCAL <47440988+NAPCAL@users.noreply.github.com>
2021-01-22 15:15:45 -06:00
Scott Lahteine d33fe2378c Move common strings (#20846) 2021-01-22 15:01:19 -06:00
thinkyhead 7b9f7d8aba [cron] Bump distribution date (2021-01-22) 2021-01-22 00:44:13 +00:00
Scott Lahteine 0681b8096c Fix undefined E_LBL 2021-01-21 17:32:12 -06:00
Jason Smith d879853e8f Ender 3 V2: Sync reset E in manual move (#20806) 2021-01-21 04:14:24 -06:00
Jason Smith 0a279cf666 Fix ANYCUBIC_LCD_CHIRON compilation (#20807)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-21 03:44:03 -06:00
Scott Lahteine c0870d417a Move some MarlinCore and MarlinUI code (#20832) 2021-01-21 03:40:07 -06:00
Katelyn Schiesser ac82dc418a Increase filament runout distance edit limit (#20828) 2021-01-21 03:30:15 -06:00
Keith Bennett 144272e735 USB Flash Drive env hints for ABM (#20592) 2021-01-21 01:28:38 -06:00
Keith Bennett d62aa6221b Lerdge K/S/X support for Flash Drive (#20593) 2021-01-21 01:26:12 -06:00
Scott Lahteine 68abaeab19 MarlinUI multi-language support (#20725) 2021-01-20 18:52:06 -06:00
Scott Lahteine 00bc094914 Keep G29 N on the DL 2021-01-20 18:51:00 -06:00
thinkyhead 84a47a6691 [cron] Bump distribution date (2021-01-21) 2021-01-21 00:46:33 +00:00
ellensp 03b53ffde1 More PlatformIO source filters (#20822) 2021-01-20 18:18:22 -06:00
Tanguy Pruvot ef14b18f8e PSTR alias followup (#20831) 2021-01-20 16:52:09 -06:00
Scott Lahteine 3f90ecfd77 Move singlenozzle temp/fan (#20829) 2021-01-19 20:58:50 -06:00
devin122 a275e4e5b8 Fix reporting of TMC_S2VSA/B (#20730) 2021-01-19 20:57:12 -06:00
ellensp fd45854000 USE_M73_REMAINING_TIME sanity-check (#20751) 2021-01-19 20:55:57 -06:00
Giuliano Zaro a10626705d MMU2 serial followup (#20811) 2021-01-19 20:55:01 -06:00
InsanityAutomation 0d0beea222 Fix website feed, version 2021-01-19 21:46:56 -05:00
Scott Lahteine 0cbc44d8bf Fix SINGLENOZZLE compile 2021-01-19 19:19:35 -06:00
thinkyhead 5c93b49a6f [cron] Bump distribution date (2021-01-20) 2021-01-20 00:47:05 +00:00
EmilGustafsson df238fe6a0 Swedish language for MarlinUI (#20826) 2021-01-19 16:52:04 -06:00
Rockman18 f1d4713097 Fix MKS UI manual move (#20813) 2021-01-19 16:27:57 -06:00
Rockman18 d0f953218f Fix, consolidate PSTR aliases (#20812)
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-19 16:26:25 -06:00
InsanityAutomation f34a9cc66c Update DGUSScreenHandler.cpp 2021-01-19 14:27:20 -05:00
Katelyn Schiesser fda9fb563b Raise Z on exit from 'Level Bed Corners' (#20817) 2021-01-18 21:59:18 -06:00
Scott Lahteine 49b5e1d9bf Clean up whitespace, headings 2021-01-18 21:54:23 -06:00
thinkyhead eb84acaf5b [cron] Bump distribution date (2021-01-19) 2021-01-19 00:45:26 +00:00
thinkyhead e9364c7cba [cron] Bump distribution date (2021-01-18) 2021-01-18 00:41:57 +00:00
InsanityAutomation c4e0d50ad8 Bump to match community head 2021-01-17 16:56:40 -05:00
Scott Lahteine 08f392cdd3 OS-native targets for "mftest -a" 2021-01-17 15:45:04 -06:00
InsanityAutomation bcc28b118c Merge branch 'bugfix-2.0.x' into CR-6Devel 2021-01-17 13:29:54 -05:00
Scott Lahteine bb597dcf66 Internal G29N for G28+G29 (#20800) 2021-01-17 12:08:40 -06:00
George Fu fec58157ac FYSETC_242 OLED 12864 for S6 (#20767) 2021-01-17 00:46:57 -06:00
Scott Lahteine 6be8ffb771 Reduce some G-code strings 2021-01-16 23:18:02 -06:00
zeleps 1b19eed195 Fix Tramming Wizard behavior (#20796) 2021-01-16 23:08:48 -06:00
Scott Lahteine fb41413b76 Optimize some G-code strings 2021-01-16 22:53:50 -06:00
Scott Lahteine 40c8f2001d Apply bool to some MKS UI 2021-01-16 22:53:50 -06:00
Scott Lahteine b41f41589a General cleanup, use _BV 2021-01-16 22:53:50 -06:00
ellensp 69a6d26c80 Fix Trigorilla Pro STOP pins (#20801) 2021-01-16 22:34:54 -06:00
Alexander D. Kanevskiy 0fef29b6e3 NEOPIXEL overridable on BTT SKR (#20797) 2021-01-16 19:51:08 -06:00
Martin f7e2467da1 4 / 5 digits for some edit items (#20793) 2021-01-16 19:49:34 -06:00
Giuliano Zaro dc44edc1b8 Update Italian language (#20789) 2021-01-16 19:20:35 -06:00
thinkyhead ca53d88284 [cron] Bump distribution date (2021-01-17) 2021-01-17 00:42:42 +00:00
ellensp 5e46f63e17 Fix Ender-3 V2 DWIN LPC signed warnings (#20786) 2021-01-16 00:50:25 -06:00
RFBomb 43a91e5963 Configurable Corner Leveling point order (#20733) 2021-01-16 00:43:38 -06:00
Giuliano Zaro 1d5862a39b MMU2 as standard serial device (#20771) 2021-01-15 20:38:34 -06:00
thinkyhead 7c786506e1 [cron] Bump distribution date (2021-01-16) 2021-01-16 00:45:54 +00:00
Marcio Teixeira d03c3980de Improve filament runout handling in FTDI EVE Touch UI
- On filament runout, take the user to the tune menu where they can initiate a filament change or resume the print.
2021-01-15 17:44:16 -06:00
Marcio T 9bbe9455cf Fix compatibility macros 2021-01-15 17:44:16 -06:00
Marcio Teixeira 6376b683c7 Silence unused parameter warnings 2021-01-15 17:44:16 -06:00
Jelmer van der Stel 9dba7cd371 Fix Ender 3 V2 encoder (#20784) 2021-01-15 17:23:04 -06:00
thinkyhead 49e252df03 [cron] Bump distribution date (2021-01-15) 2021-01-15 00:42:52 +00:00
EvilGremlin 8049db20ff ESP32 Tone Generator (#20704) 2021-01-14 02:33:50 -06:00
vitaliy172 ecf5f5d21d Update Ukrainian language (#20668) 2021-01-14 02:21:28 -06:00
Scott Lahteine 12a39450b0 MKS prelim. cleanup (2) 2021-01-14 00:56:35 -06:00
Scott Lahteine c753fc690f More MKS UI prelim. cleanup 2021-01-14 00:27:10 -06:00
MKS-Sean 35c1b330ec MKS WiFi for TFT_LVGL_UI (#20191) 2021-01-13 22:41:09 -06:00
thinkyhead a88ae2080c [cron] Bump distribution date (2021-01-14) 2021-01-14 00:47:36 +00:00
Scott Lahteine e8aa6ab735 Ignore M22 during SD print 2021-01-12 22:33:03 -06:00
Scott Lahteine f2726399dd Move WRITE_FAN 2021-01-12 22:33:03 -06:00
Scott Lahteine d47e694048 whitespace 2021-01-12 22:33:03 -06:00
Scott Lahteine 44c57ab05a MKS UI prelim. cleanup (#20763) 2021-01-12 21:02:35 -06:00
Scott Lahteine 4a89731025 Rotary encoder cleanup (#20753) 2021-01-12 20:43:52 -06:00
Giuliano Zaro 2b928b4754 Fix comments (#20759) 2021-01-12 19:38:51 -06:00
thinkyhead 923ca6f104 [cron] Bump distribution date (2021-01-13) 2021-01-13 00:40:12 +00:00
Scott Lahteine 4472ba2b6b Ok to use C++11 'auto' 2021-01-12 18:08:24 -06:00
Johan van der Vyver 7f3dcb3e8a Multi-platform DWIN_CREALITY_LCD support (#20738)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-12 18:05:49 -06:00
thinkyhead a26f2fb00b [cron] Bump distribution date (2021-01-12) 2021-01-12 00:33:31 +00:00
devin122 8ff87c120a Fix TMC220x short circuit (#20731) 2021-01-11 01:46:17 -06:00
Serhiy-K 4327b5c1b0 Fixes for TFTGLCD (#20734) 2021-01-10 23:59:42 -06:00
Victor Oliveira d6de6de1bb NO_SD_DETECT option (#20741) 2021-01-10 21:55:16 -06:00
Scott Lahteine 9eecb2f542 Fix joystick include 2021-01-10 21:49:35 -06:00
Scott Lahteine 54debf855c Tweak STM32F1 pin r/w/t 2021-01-10 21:38:31 -06:00
Scott Lahteine acda53aa1c Clean up some includes 2021-01-10 21:38:31 -06:00
Scott Lahteine 71921bc9b2 Update Slovak glyphs 2021-01-10 21:38:31 -06:00
thinkyhead bc5c52dc95 [cron] Bump distribution date (2021-01-11) 2021-01-11 00:30:23 +00:00
Mike La Spina cf1f8aff77 Laser Test Fire (#20452) 2021-01-10 06:01:25 -06:00
Anthony Rich d78f2926ec Wanhao One+ SD detect pin (#20724) 2021-01-10 05:50:09 -06:00
InsanityAutomation 2e59150dbe Update Configuration.h 2021-01-09 20:08:14 -05:00
thinkyhead 46916d322e [cron] Bump distribution date (2021-01-10) 2021-01-10 00:30:52 +00:00
Scott Lahteine 299f849ffa Optimize some G76 strings 2021-01-09 00:09:03 -06:00
Dmitry Katsubo bbf06152da Fix misc. warnings (#20715) 2021-01-08 18:55:36 -06:00
Scott Lahteine 8ffae97128 Fix Python 2.7 compatibility
Fix regression from #20692
2021-01-08 18:51:54 -06:00
Markus d4ac8bc67b Up to 6 Tramming points (#20720) 2021-01-08 18:42:08 -06:00
thinkyhead 8e1637a2cc [cron] Bump distribution date (2021-01-09) 2021-01-09 00:29:33 +00:00
thinkyhead 4e8d92bece [cron] Bump distribution date (2021-01-08) 2021-01-08 00:29:39 +00:00
qwewer0 4eedeabb51 Fix M48 output (#20713) 2021-01-07 17:55:57 -06:00
TheCodeExorcist 3009707723 Improved MKS Robin support (#19333) 2021-01-06 21:13:15 -06:00
Java 8edcf03715 Preheat before Power Loss Recovery homing (#20697) 2021-01-06 20:57:11 -06:00
thinkyhead abea8ff8f4 [cron] Bump distribution date (2021-01-07) 2021-01-07 00:30:20 +00:00
Scott Lahteine 3dd1fe4211 Custom build_flags by feature (#20692) 2021-01-05 21:03:13 -06:00
thinkyhead d2969d2326 [cron] Bump distribution date (2021-01-06) 2021-01-06 00:27:10 +00:00
wilbur4321 e3831c146d Multi-Z stepper inverting (#20678)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-01-05 17:03:45 -06:00
ellensp 218de578e0 Fix Azteeg X3 macro typo (#20681) 2021-01-05 06:23:56 -06:00
ellensp 87fbda8344 Define SANGUINOLOLU 1.1 enable pins (#20682) 2021-01-05 06:22:51 -06:00
ellensp e9ab6c10cf No BTN_ENC_EN on Anet 10 (#20684) 2021-01-05 06:21:08 -06:00
Giuliano Zaro 1eb592550c Temperature report followup (#20687)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-05 06:18:09 -06:00
FanDjango dc3cfd0d9d Adjustable precision in M105 temperature report (#20602)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-04 23:57:58 -06:00
zeleps 2f17f2207a Don't apply hotend_offset.z to Z soft endstops (#20675)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-04 23:48:42 -06:00
Scott Lahteine d2e1e9a0ac Indent tool_change_prime 2021-01-04 23:36:12 -06:00
Scott Lahteine c0a3931595 Clarify solenoid active / magnet-on state 2021-01-04 23:09:35 -06:00
FanDjango 55d1938977 Defer "quiet probing" till the last Z bump (#20610) 2021-01-04 20:32:52 -06:00
Scott Lahteine 3a99d001ff Solenoid cleanups
Followups to #20473 ahead of #20675
2021-01-04 19:01:45 -06:00
thinkyhead 7033003c36 [cron] Bump distribution date (2021-01-05) 2021-01-05 00:26:38 +00:00
Scott Lahteine 21c7e699f1 Remove untranslated strings 2021-01-04 18:18:45 -06:00
Scott Lahteine 208200a3cc G34/M422 cleanup 2021-01-04 17:52:00 -06:00
Scott Lahteine ba2cadb479 Move duplication_e_mask 2021-01-03 22:23:13 -06:00
Scott Lahteine ca47dffa35 Fix delayed_move_time elapsed test 2021-01-03 22:22:21 -06:00
InsanityAutomation 548d5603ea Fix IDEX reboot on travel after G28 X (#20654) 2021-01-03 22:07:29 -06:00
InsanityAutomation 6b458676b1 Fix SD SPI Speed override, FTDI mesh edit (#20657)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2021-01-03 21:59:48 -06:00
Scott Lahteine 63448f3244 Rename FTDI EVE screen data structs 2021-01-03 21:52:05 -06:00
Marcio T 2d88bcb67e Fix thermal error protection, reporting (#20655) 2021-01-03 21:39:15 -06:00
thinkyhead effc37362a [cron] Bump distribution date (2021-01-04) 2021-01-04 00:26:24 +00:00
Giuliano Zaro 3ba80d11eb Update Italian language (#20663) 2021-01-03 17:43:31 -06:00
Scott Lahteine edea49f9a9 Creality 4.2.10 board (#20647) 2021-01-03 07:16:50 -06:00
Scott Lahteine 1d63fe6542 Add ALL_AXES manual move for UBL mesh editing
Co-Authored-By: Jason Smith <20053467+sjasonsmith@users.noreply.github.com>

#20620
2021-01-02 19:01:09 -06:00
Scott Lahteine 87d32647f1 Animated boot followup 2021-01-02 18:41:16 -06:00
ellensp 56a5d0b287 Homing code followup (#20632)
Patching a87e5197cf
2021-01-02 18:37:47 -06:00
thinkyhead f86765a760 [cron] Bump distribution date (2021-01-03) 2021-01-03 00:25:06 +00:00
Scott Lahteine 3efbd45443 Improved bootscreen animation 2021-01-02 16:02:52 -06:00
Scott Lahteine a87e5197cf Document, adjust some homing code 2021-01-02 03:41:06 -06:00
qwewer0 5b33afb1dd Fix a comment (#20629) 2021-01-02 02:53:34 -06:00
ellensp b0585e13d8 Check for misplaced configs on build (#20599)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-02 02:51:35 -06:00
qwewer0 e685950d97 Assisted Tramming improvements (#20298) 2021-01-02 02:33:31 -06:00
ellensp 5eaa10e2ad Fix //action prefix (#20600) 2021-01-02 02:06:50 -06:00
Jason Smith 9f53738339 Fix UBL mesh edit delta moves (#20620)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-01 20:08:10 -06:00
thinkyhead b9d9e74f2c [cron] Bump distribution date (2021-01-02) 2021-01-02 00:23:53 +00:00
InsanityAutomation 60278bfd75 Update DGUSScreenHandler.cpp 2021-01-01 16:12:11 -05:00
Jason Smith 4402a0578a Fix CHAMBER_FAN_MODE 0 build (#20621) 2021-01-01 14:56:59 -06:00
zeleps 815c636449 Fix PARKING_EXTRUDER homing with solenoid (#20473) 2021-01-01 14:54:44 -06:00
Victor Oliveira c840bbc970 Prefix SD SPI pins (SCK, MISO, MOSI, SS) (#20606)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2021-01-01 14:31:15 -06:00
thinkyhead b530db948e [cron] Bump distribution date (2021-01-01) 2021-01-01 00:24:38 +00:00
Scott Lahteine a9d18f0f57 SPI and pins cleanup 2020-12-30 22:00:36 -06:00
thinkyhead 811b5f8bc3 [cron] Bump distribution date (2020-12-31) 2020-12-31 00:25:38 +00:00
thinkyhead 4ad633bae2 [cron] Bump distribution date (2020-12-30) 2020-12-30 00:23:46 +00:00
Victor Oliveira 41e4124af9 Support 4.3" (480x272) Color UI display (#20334) 2020-12-28 23:26:35 -06:00
Victor Oliveira 84ab088b40 USB FD via native USB Host + MSC (#20571) 2020-12-28 23:16:38 -06:00
Scott Lahteine d6a56b882f Pins, comment cleanup 2020-12-28 23:11:55 -06:00
InsanityAutomation a77735d69a Misc updates 2020-12-28 23:42:53 -05:00
Tanguy Pruvot 624bf10ab5 Clarify sanity-check for custom status bitmap (#20588) 2020-12-28 22:13:56 -06:00
Victor Oliveira 90a2b482e6 LVGL G-code preview. Legacy MKS WiFi Cura plugin compatibility (#20589) 2020-12-28 22:07:11 -06:00
Keith Bennett aff4fccfc3 Apply SHOW_BOOTSCREEN to TFT_COLOR_UI (#20586) 2020-12-28 21:56:37 -06:00
thinkyhead aa4119a849 [cron] Bump distribution date (2020-12-29) 2020-12-29 00:22:23 +00:00
Scott Lahteine a8c361c93b Menu item index followup 2020-12-27 23:49:15 -06:00
Victor Oliveira a3fac744c7 Fix Change Filament menu actions (#20565)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-27 23:39:52 -06:00
Victor Oliveira 9eaa69874a Fix LVGL_UI G-code preview (#20564) 2020-12-27 23:15:01 -06:00
Victor Oliveira 28a3d95cda Use ADC_RESOLUTION 12 for all STM32 (#20562) 2020-12-27 23:14:08 -06:00
Victor Oliveira 185e31d322 Fix Menu Mixer for Color UI (#20566) 2020-12-27 23:11:36 -06:00
Victor Oliveira 2ce9fa4b9c Better defaults, compatibility for SDIO + STM32 (#20570) 2020-12-27 23:08:06 -06:00
Keith Bennett cfcfc8047a Small / Large Boot Screen option for TFT_COLOR_UI (#20578) 2020-12-27 21:10:53 -06:00
Scott Lahteine 91c350e793 Remove URL scheme 2020-12-27 21:00:07 -06:00
Scott Lahteine 84a1fff302 Allow define HOMING_FEEDRATE_(XY|Z) 2020-12-27 20:50:38 -06:00
Scott Lahteine e83b7edefc General cleanup 2020-12-27 20:50:38 -06:00
Jason Smith 81d7bd8f41 Validate defined probe points (#20572) 2020-12-27 20:49:15 -06:00
thinkyhead 31af49e507 [cron] Bump distribution date (2020-12-28) 2020-12-28 00:21:01 +00:00
Scott Lahteine 45996fd20a Init tare pin once 2020-12-27 16:36:35 -06:00
Scott Lahteine f423edd938 Add probe_switch_activated 2020-12-27 16:36:35 -06:00
Scott Lahteine d00c89946d Remove CREALITY_TOUCH 2020-12-27 16:29:50 -06:00
Scott Lahteine 198b3ae0f8 Fix some comments 2020-12-27 16:27:15 -06:00
InsanityAutomation d03227d564 Minor tweaks 2020-12-27 16:53:14 -05:00
InsanityAutomation 6305bda964 453 board support 2020-12-27 13:08:16 -05:00
Ashammaru 719404803b Fix SPINDLE_LASER_FREQUENCY (#20509) 2020-12-26 19:01:54 -06:00
thinkyhead 331ca6a800 [cron] Bump distribution date (2020-12-27) 2020-12-27 00:20:30 +00:00
thinkyhead e2480d40d1 [cron] Bump distribution date (2020-12-26) 2020-12-26 00:19:22 +00:00
thinkyhead 4b860f1092 [cron] Bump distribution date (2020-12-25) 2020-12-25 00:21:08 +00:00
Mike La Spina 1fc0dcdc97 Cutter Power in percent format (#20410)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com>
2020-12-23 22:50:24 -06:00
Vi B-P 820cc69d0a Apply NO_MOTION_BEFORE_HOMING to joystick motion (#20462)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-23 22:43:33 -06:00
Scott Lahteine 20073246bb Fix, clean up FTDI EVE Touch UI (#20466)
Co-Authored-By: Marcio T. <mlt4356-github@yahoo.com>
2020-12-23 22:23:45 -06:00
Jason Smith 57e94fb838 Fix ST7920 timing for Rumba32, Fysetc S6 (#20556) 2020-12-23 21:35:21 -06:00
Victor Oliveira e6c15eee45 Fix DOGM status message scrolling (#20557) 2020-12-23 21:34:09 -06:00
Scott Lahteine f0c29afe21 Add "End Repeat Loops" menu item 2020-12-23 20:24:34 -06:00
Victor Oliveira 4d6b6bcffc LVGL and Classic UI for STM32 (#20552) 2020-12-23 20:01:21 -06:00
Scott Lahteine f8c6de0cdc Move BTT_SKR_CR6 2020-12-23 19:57:49 -06:00
thinkyhead 9a60f7a793 [cron] Bump distribution date (2020-12-24) 2020-12-24 00:23:59 +00:00
ubik2 844a8c7074 Add OPTIMIZED_MESH_STORAGE option (for UBL) (#20371)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-23 18:19:48 -06:00
LinFor 2d88a2cfb7 Remaining Time for FTDI EVE, bp for ExtUI (#20549)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-23 16:37:17 -06:00
Scott Lahteine 59de35e749 Apply ENABLED in ExiUI / FTDI 2020-12-23 15:34:04 -06:00
Darren Peter 2844086772 Support ANET_FULL_GRAPHICS_LCD_ALT_WIRING on BTT SKR 1.4 (#20427) 2020-12-23 01:21:02 -06:00
Sebastiaan Dammann 2be027f92e Probe Activation Switch followup (#20550) 2020-12-23 01:02:27 -06:00
BsCmOD 34d9cb6778 Enhanced Italian language (#20551) 2020-12-23 01:01:18 -06:00
LinFor 6af6a35d9d FTDI EVE: Cyrillic font, some minor fixes (#20517) 2020-12-23 00:51:59 -06:00
yysh12 6ec4e744c0 Improve plan_arc circle detection (#20440)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-23 00:12:20 -06:00
wmariz c87c354403 Refactor 'Level Corners with Probe' (#20460)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-23 00:10:56 -06:00
thinkyhead 56fac55a39 [cron] Bump distribution date (2020-12-23) 2020-12-23 00:20:43 +00:00
Jan Krajdl de9c0eda36 Support RGBW on PCA9632 (#20455)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-22 08:27:14 -06:00
Tanguy Pruvot c559fc8227 Fix G28 leveling state, UBL compile (#20499) 2020-12-22 07:01:24 -06:00
Victor Oliveira cfad5cb435 Unify FYSETC F6 1.3 / 1.4 (#20507)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-12-22 06:57:11 -06:00
Serhiy-K 0b3b4da7d0 STM32F1xx support for TFTGLCD (#20515) 2020-12-22 06:56:00 -06:00
Keith Bennett a0c8d348a0 Anet ET4 / ET4P and Anet TFT28 / TFT35 (#20280) 2020-12-22 06:51:29 -06:00
Sean McGroty 08dcd1f680 Creality v4.3.1 (Ender 6) board (#20512) 2020-12-22 06:25:12 -06:00
X-Ryl669 91730d71ff Improve Touch Calibration screen (#20524) 2020-12-22 06:17:06 -06:00
Jason Smith 5e3be83dbb Overrides to prevent STM32 timer conflicts (#20545) 2020-12-22 06:02:25 -06:00
Chris Pepper c1b900aae9 Fix UBL mesh inset Z position (#20538) 2020-12-22 05:59:25 -06:00
Jason Smith 094e822070 Improve STM32 timer conflict messages (#20544) 2020-12-22 05:49:34 -06:00
LinFor 82540be931 FTDI EVE custom user menus (#20518) 2020-12-22 00:31:14 -06:00
LinFor 36aff1e464 12-bit ADC resolution for STM32 (#20519) 2020-12-21 18:30:03 -06:00
thinkyhead ba1176108a [cron] Bump distribution date (2020-12-22) 2020-12-22 00:19:00 +00:00
LinFor 9b3e16cdd0 Add Tune -> Advanced Settings to FTDI EVE (#20532) 2020-12-21 18:06:27 -06:00
Scott Lahteine 34b6bca006 Tweak FTDI spacing 2020-12-21 17:48:03 -06:00
Scott Lahteine 6429be6efc Robin pins followup 2020-12-21 17:47:22 -06:00
LinFor ba16c53218 Fix some Russian (#20529) 2020-12-21 17:45:00 -06:00
cr20-123 0d95f67f2e Fix G34 compile with bed leveling disabled (#20537) 2020-12-21 17:43:45 -06:00
Sebastiaan Dammann 3ec59b36eb Add BTT SKR CR6 board (#20522) 2020-12-21 17:36:43 -06:00
Scott Lahteine c7ecfe28e7 Clean up some pins 2020-12-21 17:36:43 -06:00
InsanityAutomation e082d40d32 Update DGUSScreenHandler.cpp 2020-12-21 13:13:06 -05:00
Dick Streefland 7afd274d0c Apply HOME_AFTER_DEACTIVATE for 'G28 O' (#20525) 2020-12-21 01:49:00 -06:00
Dick Streefland 71bec0824c Get E3V2 DWIN MACHINE_SIZE from config (#20526) 2020-12-21 01:47:49 -06:00
thinkyhead 4764e2c544 [cron] Bump distribution date (2020-12-21) 2020-12-21 00:17:17 +00:00
InsanityAutomation c4963d3d77 Update DGUSScreenHandler.cpp 2020-12-20 16:34:58 -05:00
InsanityAutomation 70740fa7b1 Welcome message 2020-12-20 15:03:27 -05:00
InsanityAutomation 226f077a9a FInish Mesh, fix M117 size 2020-12-20 13:06:06 -05:00
Scott Lahteine 777c50a1ec Fix PIO typo 2020-12-20 00:45:22 -06:00
Serhiy-K d8687512b1 Update Russian and Ukrainian languages (#20508) 2020-12-20 00:33:23 -06:00
Scott Lahteine 62cc65cafe Languages cleanup 2020-12-20 00:30:20 -06:00
Foxies 0a99f8feed Migrate Hispeedv1 (QQS-Pro) to HAL/STM32 (#20354) 2020-12-20 00:17:24 -06:00
Jason Smith 6dfcd491d0 Fix Creality EEPROM watchdog freq. (#20510) 2020-12-19 23:55:57 -06:00
InsanityAutomation 2963229dfa Probe Tare, Probe Activation Switch (#20379)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-12-19 22:11:43 -06:00
InsanityAutomation 7a168205eb Minimum temp options for Probing and G12 Nozzle Clean (#20383)
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-12-19 22:02:38 -06:00
Keith Bennett 9a8f8f8284 Let boards set Default TMC Slave Addresses (#20498)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-12-19 21:48:31 -06:00
thinkyhead 57f4d0523e [cron] Bump distribution date (2020-12-20) 2020-12-20 00:14:49 +00:00
Scott Lahteine 45b11553f4 Tweaks for pins_BTT_SKR_common.h 2020-12-18 21:15:48 -06:00
Scott Lahteine e5d0b27aaf Rename QUIET_PROBING 2020-12-18 21:13:50 -06:00
thinkyhead a33ae10c56 [cron] Bump distribution date (2020-12-19) 2020-12-19 00:15:28 +00:00
Tanguy Pruvot 017d97fd0e DOGM: Slow down touchscreen calibration (#20454) 2020-12-18 16:21:00 -06:00
Victor Oliveira b167cd2427 MKS Robin Nano V3 and STM32F4x0Vx Variant (#20430) 2020-12-18 16:18:04 -06:00
thinkyhead fae3c860a1 [cron] Bump distribution date (2020-12-18) 2020-12-18 00:15:25 +00:00
grauerfuchs e9677594ea Fix and optimize MightyBoard (#20493) 2020-12-17 17:22:59 -06:00
Jason Smith 7b9ff164cc Balance CI tests (#20485) 2020-12-17 06:18:07 -06:00
nb-rapidia 978d93af88 Make M220 B / R a standard feature (#20355) 2020-12-17 06:13:07 -06:00
ellensp 31337826a3 Fix ZoneStar LCD 2004 buttons (#20489) 2020-12-17 06:05:25 -06:00
rafaljot fbcc07261d Homing feedrates as XYZ array (#20426)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-17 06:02:05 -06:00
Scott Lahteine 20b3af1cc2 Use homing_feedrate function 2020-12-16 22:19:04 -06:00
thinkyhead 6d47baee5d [cron] Bump distribution date (2020-12-17) 2020-12-17 00:15:48 +00:00
Tanguy Pruvot c6dcf9d006 Update French language (#20472) 2020-12-16 00:46:10 -06:00
Scott Lahteine f934b774a1 Update Hungarian language
Co-Authored-By: Zs.Antal <45710979+AntoszHUN@users.noreply.github.com>
2020-12-16 00:42:55 -06:00
Giuliano Zaro e6fdf530b8 Update Italian language (#20480) 2020-12-16 00:35:13 -06:00
thinkyhead 1c4f125cb0 [cron] Bump distribution date (2020-12-16) 2020-12-16 00:14:09 +00:00
InsanityAutomation 241c27e636 Add mesh value feedback 2020-12-15 13:52:37 -05:00
InsanityAutomation b7d5374020 Send popup button text 2020-12-15 09:56:39 -05:00
Scott Lahteine 3f93b8baed Trust STM32 gcc versions 2020-12-15 01:06:32 -06:00
Scott Lahteine 637123f340 Update some LCD includes 2020-12-15 01:06:27 -06:00
Scott Lahteine 7243ea549d Update some pins errors 2020-12-15 00:49:55 -06:00
Sebastiaan Dammann 686bb056a4 Creality v4.5.3 (CR-6 SE, CR-6 MAX) (#20468) 2020-12-15 00:33:01 -06:00
JoAnn Manges 1be16e3d8c Fix RESTORE_LEVELING_AFTER_G28 (#20471) 2020-12-15 00:16:50 -06:00
Scott Lahteine 69999f962a Please install the EditorConfig plugin 2020-12-14 21:27:12 -06:00
Scott Lahteine 5a6fc3e5b7 Auto-check followup 2020-12-14 21:08:09 -06:00
kisslorand 7be57ff9f0 Fix M1001 auto-check logic (#20456) 2020-12-14 21:04:45 -06:00
Jason Smith 81a0206df8 Trust that script -x flags will always be set (#20453) 2020-12-14 21:02:46 -06:00
Scott Lahteine 80bde7b6b5 Always enable leveling after G28 2020-12-14 20:34:22 -06:00
Scott Lahteine e349a44c60 Preheat before leveling 2020-12-14 20:34:22 -06:00
Scott Lahteine fbefe55102 Fix formatting 2020-12-14 20:34:22 -06:00
thinkyhead dee475cee1 [cron] Bump distribution date (2020-12-15) 2020-12-15 00:13:55 +00:00
Chris Pepper 9fd358f10c LPC176x framework update (#20469) 2020-12-14 22:36:25 +00:00
InsanityAutomation 30e0d36bc3 Update Configuration.h 2020-12-14 11:34:07 -05:00
InsanityAutomation 057764766e Update DGUSDisplayDef.cpp 2020-12-14 10:38:39 -05:00
thinkyhead 8c05053951 [cron] Bump distribution date (2020-12-14) 2020-12-14 00:14:07 +00:00
InsanityAutomation b5e131b523 Fixups for probe tare, add endstop report and M401 2020-12-13 14:55:50 -05:00
InsanityAutomation 92c60cd22e Make M600 happy 2020-12-13 12:41:50 -05:00
Scott Lahteine b0392be4bf SHORT_MANUAL_Z_MOVE => FINE_MANUAL_MOVE 2020-12-13 01:54:31 -06:00
Scott Lahteine c824086825 Adjust planner debugging 2020-12-13 01:54:31 -06:00
FanDjango 1a9644cef9 Probe Offset Wizard followupBack to PROBE_PT_RAISE/separate STOW, make "PROBING" msg appear (#20439)
* Go back to always use PROBE_PT_RAISE with a discrete stow. This ensures a raise above the bed, while stowing prior to exiting the wizard.
* Fix issue preventing text while moving to X/Y position
Co-authored-by: FanDjango <FanDjango@users.noreply.github.com>
2020-12-12 17:18:33 -08:00
thinkyhead 8723440d1d [cron] Bump distribution date (2020-12-13) 2020-12-13 00:14:25 +00:00
InsanityAutomation dd42b65980 Update Configuration.h 2020-12-12 18:49:02 -05:00
InsanityAutomation f6627c0352 Touchup mesh point updates and M600 fix 2020-12-12 17:44:03 -05:00
InsanityAutomation 2dcdbf6f36 Filament change park and Probing disable heaters 2020-12-12 16:50:16 -05:00
InsanityAutomation 41ccd4a81b Fix a partial overwrite of a merge, a few tweaks and version info 2020-12-12 16:36:42 -05:00
InsanityAutomation 5f20f8f9c7 CR6 Configs 2020-12-12 15:31:55 -05:00
InsanityAutomation a4c2e21329 Initial Touchscreen Support 2020-12-12 15:31:45 -05:00
InsanityAutomation e4714e4d29 Merge branch 'ProbesRequiringEnablePin' into CR-6Devel 2020-12-12 14:04:48 -05:00
qwewer0 ea9b4dc82c Improve ASSISTED_TRAMMING_WIZARD probe stowing (#20437)
* When BLTOUCH_HS_MODE enabled, stow pin before user interaction
* For all probes, ensure probe stows at end of wizard
2020-12-12 11:03:28 -08:00
InsanityAutomation af9d36ae6d Merge branch 'AddMinimumTempForNozzleAsProbe' into CR-6Devel 2020-12-12 14:03:26 -05:00
ellensp 2eab920935 Add HAS_PIN_27_BOARD for CREALITY_V4 (#20446)
Co-authored-by: ellensp <ellensp@hotmsil.com>
2020-12-12 10:59:17 -08:00
leodoener 087a6fea13 Fix SDCARD_SORT_ALPHA on Ender 3 V2 (#20443) 2020-12-11 23:20:24 -03:00
Scott Lahteine 9c9113e225 Better animated boot screen 2020-12-11 18:24:27 -06:00
thinkyhead 8f008ac75d [cron] Bump distribution date (2020-12-12) 2020-12-12 00:13:47 +00:00
Jason Smith 8a4f8e72df SENSORLESS_PROBING sanity check followup (#20438) 2020-12-11 01:39:51 -08:00
FanDjango 43222d5879 Probe offset wizard fixes (#20414)
* STOW probe, reverting incorrect earlier change from #20344
* Adjust soft endstop disables, to ensure travel below bed functions properly

Co-authored-by: FanDjango <FanDjango@users.noreply.github.com>
2020-12-11 00:06:57 -08:00
elasticdotventures 04a3bd0d34 Z_SENSORLESS sanity checks (#20421)
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-12-10 23:33:29 -08:00
thinkyhead af70e80816 [cron] Bump distribution date (2020-12-11) 2020-12-11 00:13:48 +00:00
ellensp 22de37ad50 Fix UBL Debug Messages (#20423)
Co-authored-by: ellensp <ellensp@hotmsil.com>
2020-12-10 15:30:58 -03:00
Keith Bennett 6cf4b888e1 Clarify "not Interrupt-capable" error message (#20419) 2020-12-10 15:27:02 -03:00
thinkyhead 6557751199 [cron] Bump distribution date (2020-12-10) 2020-12-10 00:13:42 +00:00
Victor Oliveira 6e4925e6b6 MKS Robin Pins fixes for STM32 and STM32F1 (#20404)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-09 18:43:49 -03:00
InsanityAutomation 3404cb1fc4 Move ExtUI ABL mesh edit, limit to bilinear (#20381)
* Move ExtUI call

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
Co-authored-by: Sebastiaan Dammann <sebastiaandammann@outlook.com>
2020-12-09 09:07:26 -08:00
Marcio T f3bddc4e4e Fixes and additions to FTDI EVE Touch UI (#20393)
- Fixed name conflict with "SUBSCRIPT_TWO"
- Fixed rendering bugs in "Leveling Menu"
- Only show "Bed Mesh Screen" when UBL is enabled
- Removed CocoaPress code from generic "Main Menu"
- Removed CocoaPress code from LulzBot Bio "Status" screen
- Moved generic "Move Axis" functionality into a base class
- Added CocoaPress custom screens:
   - Status Screen
   - Unload Cartridge
   - Load Chocolate
   - Main Menu
   - Advanced Settings
   - XYZ Move (based on "Move Axis" base class)
   - Extrusion Move (based on "Move Axis" base class)
- CocoaPress tweaks to "Temperature" screen
- Fix FTDI EVE Touch UI compilation errors when not using leveling.
2020-12-09 05:09:31 -06:00
Mike La Spina 3e68e4b418 Fix Spindle/Laser Control menu (#20347) 2020-12-09 04:37:26 -06:00
swissnorp edb2a83e71 Allow positive Z nozzle to probe offset (#20344)
* Allow a positive value for z offset from nozzle to probe without sanity checks
* Simplify menu_probe_offset.cpp (HOMING_Z_WITH_PROBE)
* Add some more explanation to Configuration Files
* Raise after probe_at_point as if homed

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-12-09 01:06:50 -08:00
Keith Bennett 2a4f8acd62 Clarify Delta & SCARA config location (#20403) 2020-12-08 22:12:42 -08:00
Jason Smith c393153243 cleanup 2020-12-08 20:51:57 -08:00
Jason Smith 88613ca7e0 Invert compare, use correct constants, add parens 2020-12-08 20:47:51 -08:00
Jason Smith 88f1e635ac Get all new PROBE_REQUIRES_MINTEMP code inside #ifs 2020-12-08 20:27:53 -08:00
Jason Smith 0c0f7adfaf Clarify that PROBE_REQUIRES_MINTEMP_NOZZLE only works with first extruder 2020-12-08 20:27:01 -08:00
Jason Smith 49b53a04b5 Wait for the same hotend that is heating. 2020-12-08 20:26:36 -08:00
Jason Smith 72cdf4a11d Typos, comments. 2020-12-08 20:15:18 -08:00
Jason Smith 647f776309 Merge remote-tracking branch 'upstream/bugfix-2.0.x' into PRR/20383_AddMinimumTempForNozzleAsProbe 2020-12-08 20:05:28 -08:00
Jason Smith 524eae8e86 explicit return type 2020-12-08 19:59:42 -08:00
Jason Smith 6ce0f3dafb Fix inconsistent lambda return type 2020-12-08 19:54:31 -08:00
Jason Smith 61a1fb7478 Allow multiple endstops along with new feature, simplify code 2020-12-08 19:40:21 -08:00
Scott Lahteine 885b0d2ec5 Style, spacing, typo cleanup for recent changes 2020-12-08 20:18:29 -06:00
thinkyhead 66834cf324 [cron] Bump distribution date (2020-12-09) 2020-12-09 00:13:32 +00:00
Jason Smith d8fa698b25 Fix missed rename 2020-12-08 01:21:56 -08:00
Jason Smith 5ed93ec18a Only tare when homing if using probe 2020-12-08 01:18:20 -08:00
Jason Smith a870ebdf9f Add compile test for new feature 2020-12-08 01:11:29 -08:00
Jason Smith 0bf9f04a4d Renames 2020-12-08 01:11:16 -08:00
Jason Smith 0653027c98 Merge remote-tracking branch 'upstream/bugfix-2.0.x' into PRR/20379_ProbesRequiringEnablePin 2020-12-07 21:43:32 -08:00
Victor Oliveira 9ead6a30f2 SPI TFT for STM32F4 boards (#20384)
* fix pinsDebug for F1 boards

* add MKS Robin PRO V2 board - development board

* tft spi working with F4 boards

* pins formating

* sanity check for TFT on supported cores in STM32

* Fix tabs/spaces in pins file

Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-12-07 21:26:39 -08:00
thinkyhead af20db4512 [cron] Bump distribution date (2020-12-08) 2020-12-08 00:13:33 +00:00
Victor Mateus Oliveira 5ccfbd44a6 Merge remote-tracking branch 'upstream/bugfix-2.0.x' into pr/20379 2020-12-07 18:00:58 -03:00
ellensp fee375f31f Allow BTT EXP-MOT be used with Displays that needs only EXP 1 (#20396)
Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
2020-12-07 17:57:00 -03:00
ellensp 182fdd95c3 Shorten Filament Load/Unload Strings to Fit on Graphical Displays (#20369)
Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
2020-12-07 17:53:53 -03:00
Scott Lahteine 7f20184ebc Fix auto#.g file handling, add NO_SD_AUTOSTART (#20071) 2020-12-07 05:53:15 -06:00
Scott Lahteine b04914fb72 More LPC P-string macros 2020-12-07 05:06:24 -06:00
Scott Lahteine 2ecb4fad72 Watch idle() depth over 5 2020-12-07 04:38:14 -06:00
Scott Lahteine ee4c2b36b8 Fix fileExists, use openFailed 2020-12-07 04:38:14 -06:00
thinkyhead 00143f77d0 [cron] Bump distribution date (2020-12-07) 2020-12-07 00:13:45 +00:00
Victor Oliveira 1a04c8c7bb Avoid invalid memory optimizations (#20389)
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution.
Co-authored-by: ellensp <ellensp@hotmail.com>
2020-12-06 12:36:36 -08:00
InsanityAutomation 26e61f6814 Merge branch 'AddMinimumTempForNozzleAsProbe' of https://github.com/InsanityAutomation/Marlin into AddMinimumTempForNozzleAsProbe 2020-12-06 11:11:34 -05:00
InsanityAutomation e3982ca308 Set configs disabled, add tests 2020-12-06 11:11:14 -05:00
InsanityAutomation 62b81dc2be Update nozzle.cpp 2020-12-06 11:08:32 -05:00
InsanityAutomation 1c0770ea5c Update nozzle.cpp 2020-12-06 11:02:07 -05:00
InsanityAutomation cfb1c4c9f2 Update LPC1768-tests 2020-12-06 10:55:17 -05:00
InsanityAutomation 438bae5f38 Set configs disabled, add tests 2020-12-06 10:48:13 -05:00
InsanityAutomation 3a7f17d782 Add G12 minimum temp 2020-12-06 10:36:25 -05:00
InsanityAutomation 8394f0c3f4 Generalize function out of nozzle as probe 2020-12-06 10:23:09 -05:00
Scott Lahteine 6f4589b375 G28 followup 2020-12-05 23:06:15 -06:00
Scott Lahteine e8e4a742b0 fix typo 2020-12-05 22:45:04 -06:00
Scott Lahteine 48b61b7cbd It's not golf 2020-12-05 22:42:15 -06:00
Scott Lahteine 139a33c9fc G28 tweaks 2020-12-05 20:14:44 -06:00
Scott Lahteine a3f6e48eb6 Fix STM32F1 SERIAL_GET_TX_BUFFER_FREE 2020-12-05 20:05:39 -06:00
Scott Lahteine a8dffdebd4 Move G29 3-point startup earlier 2020-12-05 20:05:39 -06:00
Scott Lahteine 889695b6ba ExtUI homing / leveling additions 2020-12-05 18:29:03 -06:00
Scott Lahteine bf4c08bce1 Use 'nearby' for 'near' 2020-12-05 18:27:18 -06:00
Scott Lahteine 9e68c9a214 Creality 4.5.2 format and fix 2020-12-05 18:27:18 -06:00
LinFor 7a6b742d12 Fix FYSETC S6 I2C EEPROM size (#20340)
Both V1.2 and V2.0 boards have a 24LC16, which is a 2kB EEPROM.

Co-authored-by: PingWin <kirill@shashlov.ru>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-12-05 16:19:17 -08:00
thinkyhead 2dbd2063f8 [cron] Bump distribution date (2020-12-06) 2020-12-06 00:13:51 +00:00
InsanityAutomation bbdd481dab Tweak comments 2020-12-05 18:34:58 -05:00
InsanityAutomation 1570559bba Add safety temperature for nozzle as probe 2020-12-05 18:33:39 -05:00
InsanityAutomation ae24cfa655 Fix borked search / replace 2020-12-05 17:55:46 -05:00
InsanityAutomation f583d933eb Tweaks following PR thread 2020-12-05 17:55:46 -05:00
InsanityAutomation 750bc64202 Add initial support for probes requiring Tare and Enable pins 2020-12-05 17:55:46 -05:00
InsanityAutomation e8ed880e62 Add Creality 4.5.2 board (#20378)
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-12-05 13:23:58 -08:00
Jason Smith 2c8f566231 Suspend Servos for STM32+NeoPixel (#19963) 2020-12-05 00:02:58 -06:00
Jason Smith 21ee7b1c86 Fix TMC_HOME_PHASE divide by zero (#20368) 2020-12-04 23:58:39 -06:00
Scott Lahteine 5fdd949115 Improved Longer3D LKx Pro board (#20372)
Co-authored-by: mrv96 <marione96@live.it>
2020-12-04 23:56:20 -06:00
Tanguy Pruvot 0a03ef4b6f Don’t use near keyword as variable name (#20374) 2020-12-04 20:29:55 -08:00
thinkyhead 71db4f0426 [cron] Bump distribution date (2020-12-05) 2020-12-05 00:13:14 +00:00
Belin Fieldson 465840e1fb Loosen E on pause for fila-manipulation (#20346)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-12-04 04:49:30 -06:00
Jason Smith d17db47775 Fix MESH_BED_LEVELING w/o SEGMENT_LEVELED_MOVES (#20363) 2020-12-03 19:33:46 -08:00
thinkyhead 517bcd2b5d [cron] Bump distribution date (2020-12-04) 2020-12-04 00:12:52 +00:00
Victor Oliveira 3eddbc7286 Require minimum PlatformIO version (#20361)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-12-03 09:23:48 -08:00
Scott Lahteine a1f319d5b6 Consolidate common pin includes 2020-12-03 05:53:07 -06:00
ellensp 31352f8a8a Fix up start, monitor baud (#20326) 2020-12-03 04:44:33 -06:00
yysh12 2878876064 Fix circle arc condition (#20322) 2020-12-03 04:40:39 -06:00
thinkyhead 7bf04d1526 [cron] Bump distribution date (2020-12-03) 2020-12-03 00:12:40 +00:00
Jason Smith a4d6908d55 Permit SD EEPROM emulation on E3V2 (#20353) 2020-12-02 05:23:34 -06:00
Jason Smith a4618309ce Fix E3V2 DWIN Jerk Menu (#20352)
* Fix E3V2 DWIN build without CLASSIC_JERK
* Fix jerk edits applying to wrong index
2020-12-02 01:31:06 -08:00
Luu Lac 257dc6d173 Help hosts when password-locked (#20348) 2020-12-01 23:52:09 -06:00
Mathias Rasmussen 753cf994b6 Update to STM32 v10, optimize build (#20325) 2020-12-01 23:51:04 -06:00
Scott Lahteine c353eab898 Level Bed Corners is a sub-menu 2020-12-01 21:54:58 -06:00
thinkyhead 7226f6834e [cron] Bump distribution date (2020-12-02) 2020-12-02 00:12:48 +00:00
Scott Lahteine 2e010909ac Tweak to EEPROM safe delay 2020-12-01 16:14:37 -06:00
Jason Smith 0d080cea83 Fix E3V2 Control Menu when returning from Info (#20338) 2020-12-01 00:29:21 -08:00
Jason Smith 6f4381df53 Prevent Watchdog reset writing Creality 4.x EEPROM (#20328) 2020-11-30 22:25:44 -08:00
thinkyhead db8fb9a03a [cron] Bump distribution date (2020-12-01) 2020-12-01 00:13:08 +00:00
Jason Smith 87ede6fa1b Increase E3V2 DWIN steps/mm range to 999.9 (#20324) 2020-11-30 04:44:34 -08:00
Scott Lahteine fd35d1b8a6 General cleanup 2020-11-29 20:50:02 -06:00
Scott Lahteine 8fd8772a6f Adjust axis homed / trusted methods (#20323) 2020-11-29 19:06:40 -06:00
thinkyhead 0f9ac3026d [cron] Bump distribution date (2020-11-30) 2020-11-30 00:12:42 +00:00
Jason Smith df0a0c9490 Leveling Fade Height default setting (#20316) 2020-11-29 15:00:08 -06:00
Jason Smith f2b9be6e70 Fix STM32F1 'freeMemory()' warnings (#20319) 2020-11-29 14:57:05 -06:00
Alexander D. Kanevskiy 39abda8743 SKR E3 Turbo Controller Fan (#20320) 2020-11-29 14:55:18 -06:00
yysh12 dcb101224f Arc Direction followup for circles (#20314) 2020-11-29 14:50:54 -06:00
thinkyhead e7e1dcf190 [cron] Bump distribution date (2020-11-29) 2020-11-29 00:12:56 +00:00
thinkyhead d466ac12ea [cron] Bump distribution date (2020-11-28) 2020-11-28 00:12:13 +00:00
Thomas Niccolo Reyes 1c7f53bbb2 Fix M73 LCD code typo (#20300) 2020-11-27 15:26:19 -06:00
Sergey1560 0acd751e2d Group related homing options (#20283)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-27 00:00:25 -06:00
yysh12 bab660ca7d Fix G2/G3 arcs > 180° (#20292) 2020-11-26 23:29:07 -06:00
ellensp 109f68f7df Fix BTT GTR 1.0 endstop/DIAG pins (#20296) 2020-11-26 22:50:21 -06:00
BsCmOD 819ec462b8 FIX TMC menu message (#20294) 2020-11-26 21:25:18 -06:00
Scott Lahteine b6a32500c4 M808 Repeat Markers (#20084) 2020-11-26 21:18:40 -06:00
thinkyhead c61a311c0d [cron] Bump distribution date (2020-11-27) 2020-11-27 00:12:12 +00:00
Štěpán Dalecký 5cae4e9f55 [WIP] Fix Probe::offset_xy (#20290)
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-11-26 13:21:48 -08:00
wmariz 58ac815822 Level Corners with Probe option (#20241) 2020-11-26 07:58:19 -06:00
Scott Lahteine 3ba374a29e Optimize emergency parser check 2020-11-26 03:56:21 -06:00
Scott Lahteine 7ce675e604 No auto debug for EEPROM_CHITCHAT 2020-11-26 03:56:21 -06:00
Scott Lahteine aa2ced96e0 Finish HAL/STM32 cpp wrappers 2020-11-26 03:47:15 -06:00
mks-viva 8c59212ca4 MKS Robin E3 / E3D v1.1 (#20216) 2020-11-26 02:36:29 -06:00
Scott Lahteine 4f4843a845 Tweak some pin errors 2020-11-26 01:08:21 -06:00
Jason Smith 3a396a25dc Retire HAL for STM32F4 / F7 (#20153) 2020-11-26 00:37:18 -06:00
Scott Lahteine 18853defdd Reduce warnings, extern "C" cleanup (#20279) 2020-11-25 21:40:56 -06:00
swissnorp 649965ae32 Probe Offset Wizard improvements (#20239) 2020-11-25 21:38:00 -06:00
thinkyhead afe5027a39 [cron] Bump distribution date (2020-11-26) 2020-11-26 00:11:33 +00:00
Victor Oliveira 04c4c6004e Fix COLOR_UI without TOUCH_SCREEN_CALIBRATION (#20269) 2020-11-24 21:39:49 -08:00
Victor Oliveira 2693e35cae add missing header to use HAS_SD_HOST_DRIVE (#20270) 2020-11-24 20:08:35 -08:00
Scott Lahteine e38abef720 Update TOUCH_UI_LULZBOT_BIO wrappers 2020-11-24 18:32:01 -06:00
thinkyhead 0eae28a663 [cron] Bump distribution date (2020-11-25) 2020-11-25 00:11:42 +00:00
Scott Lahteine b28b2ca266 Cosmetic G29 ABL tweak 2020-11-24 17:53:39 -06:00
Scott Lahteine 296a2ad7e4 Consistent Probe XY offset type 2020-11-24 17:38:26 -06:00
Jason Smith e9431b5445 No Z_MULTI_ENDSTOPS when HOMING_Z_WITH_PROBE (#20254) 2020-11-24 16:27:59 -06:00
pseudex 4258ff1a68 Allow cold Filament Load/Unload with M302 P1 (#20262)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-24 16:20:06 -06:00
ellensp ef12425bef Set "lcd_move_e" index to fix the label (#20263) 2020-11-24 16:14:22 -06:00
rdhoggattjr 62680bb356 LCD position in current units (#20145) 2020-11-23 23:02:54 -06:00
thinkyhead 94fea59e9d [cron] Bump distribution date (2020-11-24) 2020-11-24 00:11:40 +00:00
Jason Smith a4e1132048 Fix Z4 in ENABLE/DISABLE_AXIS_Z (#20256)
This was accidentally broken in PR #20218
2020-11-23 03:07:43 -08:00
Jason Smith 58eaad703a Fix dummy thermistors for Bed, Chamber, Probe (#20247) 2020-11-22 18:47:52 -06:00
Scott Lahteine 6f272e13c5 Allow Status Message without LCD (#20246) 2020-11-22 18:44:17 -06:00
Jason Smith 9dedd121bf Fix UBL manual mesh adjust behavior (#20248) 2020-11-22 18:20:33 -06:00
thinkyhead 315cb6d001 [cron] Bump distribution date (2020-11-23) 2020-11-23 00:11:32 +00:00
Scott Lahteine 48b0abc3a8 Hide docker droppings 2020-11-21 23:00:38 -06:00
Scott Lahteine d8a3b9eb3a Move core conditionals earlier 2020-11-21 22:33:27 -06:00
Scott Lahteine 60e8c7afb2 Put "$3" on all tests 2020-11-21 22:33:27 -06:00
qwewer0 e19c016c74 Clear menu history for browse media on insert (#20236)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-11-21 18:21:43 -06:00
thinkyhead 89b56ca5c2 [cron] Bump distribution date (2020-11-22) 2020-11-22 00:12:03 +00:00
Kurt Haenen ca83e1a26f Proper pullup/pulldown configurability (#20242)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-11-21 17:56:56 -06:00
Victor Oliveira 7a04df47f2 Fix Load Filament wait (#20243) 2020-11-21 17:16:03 -06:00
Orel 8db72d027e Skip unnecessary (costly) SW Stepper Enable (#20218)
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-11-21 16:27:06 -06:00
Gurmeet Athwal 6851909f90 BTN_ENC_EN for many boards (#19890)
Enables CHECK_ENCODER_ACTIVE_SIGNAL for many more boards.

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-11-20 23:47:04 -08:00
Scott Lahteine 7e902b7e29 Power-Loss cleanup 2020-11-20 21:30:45 -06:00
Simone Primarosa f8e83f79c5 Superscript substitution (#20219)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-11-20 20:36:19 -06:00
Simone Primarosa 615bf2a6f1 Fix bad SET_FAST_PWM_FREQ calls (#20227) 2020-11-20 19:53:04 -06:00
Kurt Haenen 474be6058b Fix backward Filament (Presence) Sensor pulls (#20228)
Co-authored-by: Kurt Haenen <Kurt.Haenen@quintux.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-11-20 19:48:53 -06:00
thinkyhead fb3f6a46c1 [cron] Bump distribution date (2020-11-21) 2020-11-21 00:11:06 +00:00
Scott Lahteine b3bd47b4b2 Printrboard labels 2020-11-20 17:41:20 -06:00
Victor Oliveira 28e315cd69 SINGLE_TOUCH_NAVIGATION Follow Up (#20213) 2020-11-20 10:46:18 -03:00
Victor Oliveira 0e3d86579b Missing header to use suicide() on LVGL UI (#20214) 2020-11-19 23:09:33 -03:00
Ajtak a26a21d19a Longer LK Pro / Alfawise PRO board (#20185) 2020-11-19 18:25:27 -06:00
thinkyhead d8557547dd [cron] Bump distribution date (2020-11-20) 2020-11-20 00:11:02 +00:00
Orel fe88fb7ed9 Fix DAC setDrvPct (#20205) 2020-11-19 18:08:21 -06:00
Vitaliy 19d0c985be Windows LPC Upload for non-admins (#20208)
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-11-19 17:49:12 -06:00
Scott Lahteine 4a0fc4d699 Fix Z label 2020-11-19 17:41:24 -06:00
Scott Lahteine 931df1231a MKS WiFi strings 2020-11-19 17:38:36 -06:00
Scott Lahteine b51c6d4737 More MKS WiFi 2020-11-19 17:29:01 -06:00
Scott Lahteine 3893114c86 MKS WiFi preliminary changes 2020-11-19 15:56:04 -06:00
Till fcc29fc189 Add Thermistor 20-21 notes (#19246) 2020-11-19 14:07:47 -06:00
Victor Oliveira d7aea9608e Reduce RAM usage for TFT Color UI on SGen-L V2 (#20209) 2020-11-19 16:47:49 -03:00
Maciej Rutkowski 4c5a58a5db Fix GTR NeoPixel pin with FYSETC Mini12864 (#20203) 2020-11-19 02:49:44 -08:00
ellensp c059ea0ea0 Remaining Time followup (#20199) 2020-11-19 00:09:51 -06:00
Victor Oliveira 6a8ac21f80 Fix Filament Change menu item labels (#20201) 2020-11-19 00:05:05 -06:00
Victor Oliveira 08c5557026 Abort print on media removal (#20200) 2020-11-18 23:32:33 -06:00
JoAnn Manges cb2ec628df Use RTD for MAX31865 reading (#20188) 2020-11-18 23:12:03 -06:00
bosd acdfbbeb86 Fix broken #include (#20193) 2020-11-18 19:32:52 -06:00
thinkyhead 8b72cbebde [cron] Bump distribution date (2020-11-19) 2020-11-19 00:10:51 +00:00
Giuliano Zaro 41529b6598 SMUFF (MMU2 clone) support (#19912) 2020-11-18 01:27:21 -06:00
Scott Lahteine 11b811820f USB Media Host followup
Restore HAS_SHARED_MEDIA
2020-11-18 00:13:28 -06:00
Jason Smith 39305aa47c Use MANUAL_PROBE_START_Z for UBL manual probing (#20160) 2020-11-17 23:59:48 -06:00
Philippe Cayrol caeac3851a Better edit range for Linear Advance K (#20155) 2020-11-17 23:56:51 -06:00
Thomas Niccolo Reyes 04a3ece3e0 Remaining Time for Prusa-style LCD layout (#20148)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-17 23:49:56 -06:00
Victor Oliveira f1cdd02d4c Improve USB Media Host conditions (#20176)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-17 23:48:14 -06:00
Foxies c1920f31ca FLSun Hispeedv1 Board update (#19959)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-17 22:32:34 -06:00
Thomas Niccolo Reyes ecd8227de0 Open File Browser on Media Insert (option) (#20151)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-17 22:30:32 -06:00
wmariz 5768ee0f9e Probe Wizard XY position (#20167) 2020-11-17 21:54:21 -06:00
Jason Smith 50a77ef7f0 Fix NAN mesh entries with ABL_BILINEAR_SUBDIVISION (#20143) 2020-11-17 19:11:13 -08:00
Victor Oliveira 75924edcf8 COLOR_UI without TOUCH_SCREEN 👍🏻 (#20178) 2020-11-17 20:07:34 -06:00
Costas Basdekis 1cceae89cd Local testing via Makefile & Docker (#19981) 2020-11-17 20:04:28 -06:00
Victor Oliveira 26ac992242 Prevent #div0 error (#20183) 2020-11-17 18:44:53 -06:00
thinkyhead 8c4a06d855 [cron] Bump distribution date (2020-11-18) 2020-11-18 00:10:44 +00:00
Victor Oliveira 51a1561ae9 Reduce RAM usage for TFT Color UI on SGen-L (#20179) 2020-11-17 12:32:30 -08:00
Roman Moravčík a15ab85557 Update Slovak language (#20181) 2020-11-17 12:30:06 -08:00
石立枫 9b2e810bdf Add FLY_CDY board (#19979)
Co-authored-by: FLYmaker <FLYmaker@users.noreply.github.com>
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
2020-11-17 03:35:02 -08:00
ellensp b57ca6e4ac add ethernet to src filter (#20136)
Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
2020-11-17 00:45:43 -08:00
Victor Oliveira 7930fd9ce8 Use intptr types (simulator) (#20142) 2020-11-17 00:45:01 -08:00
Jason Smith 9767e59e6c Allow overriding servo pin for MKS Robin Mini (#20158) 2020-11-17 00:40:37 -08:00
Keith Bennett c12e6933f5 Multi-Hotend Preheat Fixes (#20165)
* Return to Status Screen on Multi-Hotend Preheat All

Co-authored-by: Victor Oliveira <81722+rhapsodv@users.noreply.github.com>
2020-11-17 00:37:37 -08:00
thinkyhead 59d2871b59 [cron] Bump distribution date (2020-11-17) 2020-11-17 00:10:50 +00:00
Jason Smith 4dd2496530 Allow dummy thermistors without pin definitions (#20159) 2020-11-16 14:56:59 -06:00
FanDjango 110e0d782f Guards for large BLOCK_BUFFER_SIZE (>=128) (#20130)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-16 14:56:05 -06:00
InsanityAutomation e955dce3dc Update IDEX menus, add post-M605 event G-code (#20133)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-15 23:56:05 -06:00
thinkyhead 101d57d093 [cron] Bump distribution date (2020-11-16) 2020-11-16 00:11:06 +00:00
Victor Oliveira ea371618da Add Touch Calibration screen (#20049) 2020-11-15 16:39:58 -06:00
Scott Lahteine cab83ba840 Fix some LCD/serial strings 2020-11-14 18:28:39 -06:00
thinkyhead 8d20a83e09 [cron] Bump distribution date (2020-11-15) 2020-11-15 00:12:28 +00:00
Scott Lahteine c5e411f492 Add parser.is_command(letter, code) 2020-11-14 18:09:17 -06:00
Minims 189306d24e BTT Motor Expansion for SKR Pro (#20123) 2020-11-13 20:13:36 -06:00
Keith Bennett f9e54331ba UTF Filenames followup (#20135) 2020-11-13 20:10:50 -06:00
phcay a97a1ae218 Fix extraneous Linear Advance DIR change (#20131) 2020-11-13 20:06:37 -06:00
Luu Lac a6ff61d52e Fix "autotune" LCD message (#20127) 2020-11-13 20:06:37 -06:00
Scott Lahteine c710b6e06c Optimize M360 2020-11-13 20:06:37 -06:00
Scott Lahteine 1d43e81be0 Fix compile warnings, serial alias 2020-11-13 18:28:15 -06:00
Scott Lahteine ddc997c81f .gitignore for native / simulation 2020-11-13 18:28:15 -06:00
Scott Lahteine 988fc202e2 LCD_FIRST_TOOL status bitmaps 2020-11-13 18:23:18 -06:00
thinkyhead 6aea00289c [cron] Bump distribution date (2020-11-14) 2020-11-14 00:10:15 +00:00
Gonçalo Pereira fbc2d2d726 Typo in MMU2 serial protocol description (#19949) 2020-11-13 01:23:05 -06:00
InsanityAutomation 1b0a5abd73 G34 Z stepper locking (#20091)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-12 22:54:18 -06:00
LinFor 99c377b4e4 Fix UTF filename scroll (#20121)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-12 22:49:19 -06:00
Jason Smith 288eb06708 UTF longname followup (#20115) 2020-11-12 22:26:49 -06:00
thinkyhead eb3d6a5333 [cron] Bump distribution date (2020-11-13) 2020-11-13 00:10:25 +00:00
thinkyhead 37b56e09a3 [cron] Bump distribution date (2020-11-12) 2020-11-12 00:10:01 +00:00
Scott Lahteine 0cccc60409 Terse sanity messages 2020-11-11 16:58:54 -06:00
Scott Lahteine 2282801172 Add HOME_Z_FIRST option (#20113) 2020-11-11 16:58:34 -06:00
LinFor f4e9f3654e Fix MAX6675 SPI init, conflicts (#20086) 2020-11-11 16:27:45 -06:00
JoAnn Manges 40d442fde2 Fix MAX31865 on SPI (PT100/1000) support (#20074) 2020-11-11 15:52:35 -06:00
Hebezo 6ccb4b93b1 Option to ignore SD at startup (#20099)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-11 15:16:19 -06:00
Scott Lahteine ddc23c6224 M32 followup 2020-11-11 14:39:39 -06:00
ellensp 7216b8f804 Fix compile with PLR, no fan (#20096) 2020-11-11 14:35:13 -06:00
Davidsg33k bd6e60f56d 400 Z steps-per-mm (#20104) 2020-11-11 14:30:36 -06:00
LinFor 5b9aeb2e5f Handle UTF in long filenames (#20087)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-11 14:14:39 -06:00
Costas Basdekis 0465e0ae3a Distinct runout states (#19965)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-11 00:39:23 -06:00
Costas Basdekis 3b68e44d9a Fix Linux GPIO logging (#20093)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-10 20:13:29 -06:00
ellensp d4ba94479b BTT driver expansion for SKR 1.3/1.4 (#20088)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-10 20:06:42 -06:00
Speaka 87ce545e15 Tramming Wizard wait position (#20063) 2020-11-10 19:41:21 -06:00
Victor Oliveira f8ee6f8b31 Fix UI compile issues (#20092) 2020-11-10 19:39:34 -06:00
thinkyhead f15fef90a9 [cron] Bump distribution date (2020-11-11) 2020-11-11 00:09:42 +00:00
Jason Smith 53e79224fc Fix Arduino DUE compilation (#20058) 2020-11-10 03:32:08 -06:00
qwewer0 2abb674c87 What if 8 was 9? (#20076) 2020-11-10 03:27:34 -06:00
qwewer0 60aadd2a02 Update issues/support link (#20077)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-10 03:26:45 -06:00
Gustavo Alvarez 6ce1eeb4ae Fix SKR E3 DIP pin CLCD_SPI_CS (#20078) 2020-11-10 03:22:08 -06:00
Tanguy Pruvot a70fdfaeba Fix 320x240 touch buttons Y (#20079) 2020-11-10 03:21:05 -06:00
Scott Lahteine f17394d677 Ability to disable M32 2020-11-10 02:21:12 -06:00
thinkyhead 12ba2ad77e [cron] Bump distribution date (2020-11-10) 2020-11-10 00:11:19 +00:00
Scott Lahteine 59eca253e1 Simplified temp sensor conditionals 2020-11-09 01:17:37 -06:00
Hebezo 4ace02f4c2 Add POWER_OFF_DELAY option (#19987)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-08 18:37:41 -06:00
qwewer0 c753d2b7f4 Use extra G35 BLTouch HS Mode clearance in Tramming Wizard (#20057)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-08 18:31:14 -06:00
thinkyhead d5fdc75c82 [cron] Bump distribution date (2020-11-09) 2020-11-09 00:11:21 +00:00
Alexander D. Kanevskiy 3c318d0dc7 POWER_LOSS_PIN for BTT SKR mini MZ / E3 2.0 (#20069) 2020-11-08 02:20:07 -06:00
Jason Smith 5013fdaf79 Fix tool-change servo index for E2 and up (#20060) 2020-11-08 02:15:30 -06:00
Scott Lahteine 06bf3ccfb7 Add alternative TERN macros 2020-11-07 22:19:25 -06:00
Scott Lahteine dcb0f5dc3b Temperature 'autostart' => 'auto_job' 2020-11-07 21:21:19 -06:00
Scott Lahteine 18fb4b1ce1 MSG_AUTOSTART => MSG_RUN_AUTO_FILES 2020-11-07 21:21:19 -06:00
thinkyhead 45116128e8 [cron] Bump distribution date (2020-11-08) 2020-11-08 00:11:23 +00:00
Albert van Osch 7beebcd315 Zonestar Z8 XM2 support (#19991) 2020-11-07 16:59:19 -06:00
Scott Lahteine 883347bc11 Apply some pins formatting 2020-11-07 16:54:20 -06:00
Scott Lahteine b5ef699523 TFT cleanup 2020-11-07 16:21:52 -06:00
LinFor 2da25d67e1 Fix Endstop Interrupts with SPI endstops, sanity checks (#20051)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-07 03:37:45 -06:00
Speaka 6954772ece Tramming Wizard submenu option (#20000)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-07 03:20:27 -06:00
Victor Oliveira 2fdeceda58 Color UI single touch menu navigation (#20053) 2020-11-07 03:00:29 -06:00
Darren Horrocks 53cc8a0d6e Optimized (non-optiboot) Melzi env (#20021)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-07 02:43:51 -06:00
Darren Horrocks 10fd9ed896 Anet 1.0 alternative graphical LCD wiring (#20022) 2020-11-07 02:42:14 -06:00
Scott Lahteine bb7dbceb5c Add 'mfconfig' script used to manage configs 2020-11-07 02:39:02 -06:00
Jason Smith a439892d7a Sanity-check illegal native USB (#20047)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-07 00:48:17 -06:00
Jason Smith bd872d5dcf STM32F1 cleanup, incl. SoftwareSerial removal (#20046) 2020-11-06 23:51:52 -06:00
Jason Smith bdfedf249a Fix FYSETC S6 timer conflict (#20044) 2020-11-06 23:49:53 -06:00
George Fu 4785b04aa1 FYSETC E4 board support (#20032) 2020-11-06 23:48:52 -06:00
Scott Lahteine 8c052e43f1 Update some file headers 2020-11-06 23:46:56 -06:00
Victor Oliveira 85d094bbb4 Standardize Marlin SPI (part 1) (#19989) 2020-11-06 21:07:15 -06:00
Scott Lahteine 97d7af7a23 Use nullptr 2020-11-06 20:17:05 -06:00
Mauro 0a64f197d9 Fix E4d@box pins, stepper i2s (#20055) 2020-11-06 19:28:41 -06:00
Scott Lahteine af75e24c2e Clean up corrected urls 2020-11-06 19:11:29 -06:00
thinkyhead 78e10d346a [cron] Bump distribution date (2020-11-07) 2020-11-07 00:10:42 +00:00
Marc Jovaní González c574bcce88 Add Spanish translations (#20020) 2020-11-05 18:16:08 -06:00
Jason Smith ce90447531 Fix 0 extruders & bed compile (#20030) 2020-11-05 18:15:29 -06:00
Sergey1560 f924344cc5 Don't close diveDir in fileExists (#20035) 2020-11-05 18:13:21 -06:00
thinkyhead 323b3a63d6 [cron] Bump distribution date (2020-11-06) 2020-11-06 00:10:33 +00:00
Jason Smith 077b9201ef Fix BTT002 PeripheralPins PWM assignments (#20036) 2020-11-05 18:10:18 -06:00
Scott Lahteine 1f6612dfc4 Comment, spacing cleanup 2020-11-05 17:16:47 -06:00
Josh Schroeder c43ca39ec2 Wiring warning for ANET_FULL_GRAPHICS_LCD on SKR 1.4 (#20011) 2020-11-04 21:15:25 -06:00
thinkyhead 0407828027 [cron] Bump distribution date (2020-11-05) 2020-11-05 00:10:28 +00:00
Victor a1cce36c1e FAST_PWM for STM32 (#20025) 2020-11-04 15:15:19 -06:00
Scott Lahteine 4fe1adc383 HAL support for 8s watchdog 2020-11-04 15:08:40 -06:00
thinkyhead 2a78fe0f81 [cron] Bump distribution date (2020-11-04) 2020-11-04 00:09:52 +00:00
Keith Bennett ea5886c77d Add note about TMC2225/6 (#20002) 2020-11-03 17:27:09 -06:00
Victor Oliveira e9053654a7 Better Classic UI touch resolution (#20004) 2020-11-03 17:25:33 -06:00
Victor Oliveira 0be276482e Show un-mounted media slot (#20005) 2020-11-03 17:21:15 -06:00
Scott Lahteine 7e55cbf798 DWIN cleanup, preserve Z offset 2020-11-03 17:18:05 -06:00
Victor Oliveira f131f58124 Add a filament runout note (#19973)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-02 20:22:14 -06:00
thinkyhead 5a4a6285bb [cron] Bump distribution date (2020-11-03) 2020-11-03 00:09:58 +00:00
Victor Oliveira e7ebb66200 Fix STM32 HW Serial + EP compile (#19990) 2020-11-01 20:38:10 -06:00
Victor Oliveira 5deca5a18f Increase SPI Speed on LPC. Color and Classic UI for MKS SGEN L. (#19945) 2020-11-01 20:15:06 -06:00
thinkyhead 05033bb9d6 [cron] Bump distribution date (2020-11-02) 2020-11-02 00:09:42 +00:00
Alexander D. Kanevskiy 83097657d5 Y-center GLCD status logo, reorganize (#19954)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-01 17:44:46 -06:00
Victor Oliveira 12e8861a1c Reset calibration screen touch timer on click (#19951) 2020-11-01 04:42:53 -06:00
Scott Lahteine 22bf2b49c6 Clean up SPI and ST7920 defines (#19956) 2020-11-01 04:40:59 -06:00
Jason Smith 4a39c8cd53 Get STM32 clock rates from framework (#19978)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-11-01 02:39:30 -06:00
thinkyhead c05beb74a9 [cron] Bump distribution date (2020-11-01) 2020-11-01 00:10:34 +00:00
Alexander Semion cd89fa141b Add SPINDLE_SERVO option (#19971) 2020-10-31 17:42:05 -05:00
Victor Oliveira 76f4dd34e0 Put PIO "debug" build in the corner (#19975) 2020-10-31 17:14:10 -05:00
Nick da60dcbf2e Fix Chiron probe low point (#19962) 2020-10-31 16:54:31 -05:00
Scott Lahteine 368a581de9 Cutter power cleanup 2020-10-31 16:51:42 -05:00
Julien Lirochon 24c5259005 Fix SpindleLaser::cpwr_to_pct() maths (#19970) 2020-10-31 16:19:51 -05:00
Scott Lahteine 2110739138 Cutter enable inline at full power
Co-Authored-By: Luu Lac <45380455+shitcreek@users.noreply.github.com>
2020-10-31 16:17:48 -05:00
thinkyhead a4a487b0cc [cron] Bump distribution date (2020-10-31) 2020-10-31 00:09:17 +00:00
thinkyhead 6071a0835a Fix bilinear_line_to_destination definition
See #19431
2020-10-30 00:18:46 -05:00
Orel a272c019f9 Rename, adjust Dagoma F5 (#19947) 2020-10-29 20:02:29 -05:00
thinkyhead dde86a4179 [cron] Bump distribution date (2020-10-30) 2020-10-30 00:10:04 +00:00
Scott Lahteine f8d57370d0 gcode_D EEPROM size, cleanup
Fixes #19920

Co-Authored-By: Orel <37673727+0r31@users.noreply.github.com>
2020-10-29 17:34:17 -05:00
Victor de315c97b1 FAST_PWM for STM32F1 (#19952) 2020-10-29 17:17:04 -05:00
Giuliano Zaro 1247f73754 Update Italian language (#19953) 2020-10-29 16:27:01 -05:00
Victor Oliveira 50ba20fe1f PIO env for MKS Nano boards in STM32 (#19905) 2020-10-29 02:01:25 -05:00
Marcio Teixeira b6856dcb99 Improvement and fixes to FTDI touch UI
- Fixed incorrect LCD text string
- Fixed incorrect refresh of filament change screens
- Allow host control via touch UI
- Updates to leveling menu
- Modified ExtUI::isPrinting() to check if the job timer is running
- Added ExtUI method to check whether a host print is paused
2020-10-29 01:14:15 -05:00
Scott Lahteine 54ec6a0ce2 Tweak code formatting 2020-10-29 01:14:15 -05:00
Victor Oliveira dca7c5d1ad Color UI for MKS SGen-L V2 (#19919) 2020-10-29 00:52:50 -05:00
Scott Lahteine 7473241438 .bin and .woff are binary 2020-10-29 00:49:18 -05:00
Scott Lahteine be0c9ff705 Fix comments, spacing 2020-10-29 00:49:18 -05:00
Scott Lahteine 3f644b6275 Add a note about substitution chars 2020-10-29 00:21:41 -05:00
Victor Oliveira 838220e4b3 Keep SPI active on LPC176x (#19932) 2020-10-28 23:47:12 -05:00
Victor Oliveira 18a5000718 Permit spaces in dependencies g++ path (#19929) 2020-10-28 23:45:10 -05:00
thinkyhead 21674b2879 [cron] Bump distribution date (2020-10-29) 2020-10-29 00:16:59 +00:00
Alexander Fomichev 12dec2563a Generalize BTT SKR E3-DIP version (#19910) 2020-10-27 21:59:22 -05:00
ellensp 603e4d66ac AZTEEG X5 mini LED pins (#19909) 2020-10-27 21:57:32 -05:00
Gurmeet Athwal 90fcb82a3e Update ExtUI path in config comment (#19908) 2020-10-27 21:55:49 -05:00
Victor Oliveira 94a6844521 Color UI circular task queue (#19918) 2020-10-27 21:54:30 -05:00
Jason Smith bdb3f1ae2f Fix LCD menus + DAC (#19907) 2020-10-27 21:40:12 -05:00
Orel e3f1f7cd85 Fix DAC-related bugs (#19921)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-27 21:37:10 -05:00
Lucas Seiki Oshiro c0b4f4eb47 "Sound: ON/OFF" menu item (#19901)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-27 20:41:12 -05:00
thinkyhead 68ef3ac675 [cron] Bump distribution date (2020-10-28) 2020-10-28 00:16:40 +00:00
Speaka 2cae26ee35 Fix G35 PROGMEM strings (#19926) 2020-10-27 17:25:01 -05:00
Scott Lahteine 83aa3dbfa6 Archim test matching env 2020-10-27 17:21:54 -05:00
Scott Lahteine 82ac8a1e76 Fix Archim 1, add Archim 1&2 tests 2020-10-27 16:21:03 -05:00
Victor Oliveira c60696dbae Keep watchdog refreshed in LVGL init (#19900) 2020-10-27 15:16:35 -05:00
Victor Oliveira 75b0e3246a Fix some LVGL bugs (#19904) 2020-10-27 15:09:19 -05:00
Marcio Teixeira a74e82fbae Fix NO_WORKSPACE_OFFSETS compile 2020-10-27 15:05:30 -05:00
thinkyhead 8cf672104e [cron] Bump distribution date (2020-10-27) 2020-10-27 00:16:29 +00:00
thinkyhead 8bdde8d7a0 [cron] Bump distribution date (2020-10-26) 2020-10-26 00:16:36 +00:00
Scott Lahteine c4f3f67537 Followup for BTN_ENC_EN 2020-10-25 04:19:59 -05:00
Scott Lahteine ec23e37a4a Clean up comments, USB flash, NULLs 2020-10-25 04:10:00 -05:00
Scott Lahteine 00fbe50bbe Format Nucleo F767ZI pins 2020-10-25 04:07:15 -05:00
ellensp 2e48d6cf70 Fix PASSWORD compile w/out LCD (#19888) 2020-10-25 03:46:21 -05:00
René Pasold ec04517710 Support Fysetc Mini 12864 + GT2560 A(+) (#19878) 2020-10-25 03:43:21 -05:00
ellensp 8cc0369d97 Use LiquidCrystal_I2C@1.1.4 for RA_CONTROL_PANEL (#19875) 2020-10-24 19:46:27 -05:00
Jason Smith f7cdc05937 Update ZMIB_V2 env names (#19886) 2020-10-24 19:44:46 -05:00
Jason Smith ea0afd0b4d Ignore NativeEthernet on AT90USB1286 (#19885) 2020-10-24 19:43:42 -05:00
Gurmeet Athwal 62ba799d72 Add 'BTN_ENC_EN' for SKR V1.4 with DOGM (#19796) 2020-10-24 19:41:52 -05:00
thinkyhead b6508c4bd1 [cron] Bump distribution date (2020-10-25) 2020-10-25 00:16:51 +00:00
Victor Oliveira 853d01de68 More LVGL UI code reduction (#19879) 2020-10-24 17:28:31 -05:00
Nick 311b65b225 Fix Anycubic Chiron "Ready" detection (#19880)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-24 16:48:29 -05:00
Victor Oliveira b632b52b11 Update PIO dependencies script 2020-10-24 16:25:14 -05:00
Victor Oliveira 9630c2683c More MKS UI cleanup, optimization (#19869)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-23 23:37:45 -05:00
Keith Bennett f53d5a0872 Fix Chitu V5/V6 FAN2 pins (#19874) 2020-10-23 23:29:58 -05:00
Scott Lahteine 5917b5cf5c Fix warning in gcode_D 2020-10-23 19:25:32 -05:00
thinkyhead 2a6d48bf9e [cron] Bump distribution date (2020-10-24) 2020-10-24 00:16:09 +00:00
Scott Lahteine 0967c87a8f Pins post-process header (#19860) 2020-10-23 14:52:59 -05:00
Scott Lahteine 0ffee29a11 Case light brightness cleanup (#19856)
Co-authored-by: Chris <chris@chrisnovoa.com>
2020-10-22 22:31:48 -05:00
Scott Lahteine c75e98dc84 Shorten a method name 2020-10-22 20:54:11 -05:00
qwewer0 c7f7f2403d Fix Chopper Timing extra axis defaults (#19850) 2020-10-22 20:46:48 -05:00
Scott Lahteine 4533a197d5 Slim down MKS UI code (#19843) 2020-10-22 20:22:17 -05:00
thinkyhead 1ed853f5d6 [cron] Bump distribution date (2020-10-23) 2020-10-23 00:16:15 +00:00
George Fu f83bbce3a3 Fix TMC serial port for FYSETC AIO_II (#19842) 2020-10-22 06:29:29 -05:00
ManuelMcLure 4fccb92e07 Configure TMC interpolation per driver (#19828) 2020-10-22 06:27:33 -05:00
thinkyhead ec596315bd [cron] Bump distribution date (2020-10-22) 2020-10-22 00:16:17 +00:00
Foxies 9aee6674bb FLSUN Delta QQS-Pro pins (#19793) 2020-10-21 19:00:57 -05:00
Scott Lahteine 7d64de646a Add power-on/off G-code options (#19837)
Co-authored-by: Chris <chris@chrisnovoa.com>
2020-10-21 15:03:11 -05:00
Keith Bennett 1e4691f02a BigTreeTech SKR Mini MZ V1 (#19818) 2020-10-21 14:14:19 -05:00
Mauro 4fe4fb0585 Fresh Web GUI (based on bootstrap.js) (#19812) 2020-10-21 13:51:14 -05:00
TheMichalcinOfficial cf74248949 Support for Ramps-S v1.2 (#19815) 2020-10-21 13:44:55 -05:00
Scott Lahteine 072f996af7 General cleanup, mostly MKS UI (#19825) 2020-10-21 12:45:27 -05:00
Scott Lahteine 1f7c085527 ESP32: i2s_init requires I2S_STEPPER_STREAM 2020-10-20 22:36:31 -05:00
uwedamm a596969049 Fix G2/G3 P<circles> E and Z motion (#19797)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-20 20:26:07 -05:00
thinkyhead 11badea962 [cron] Bump distribution date (2020-10-21) 2020-10-21 00:16:12 +00:00
Tanguy Pruvot d04ec15849 Longer3D: LONGER_LK_TFT28 now set by config (#19817) 2020-10-20 15:06:06 -05:00
ellensp 69d55cabd4 Handle dependent Stepper Driver defaults later (#19820)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-20 15:01:46 -05:00
bilsef 9baa944460 Teensy 4.1 Ethernet support (#19801) 2020-10-20 14:35:29 -05:00
Scott Lahteine 92767f5513 Misc. cleanup, serial strings 2020-10-19 20:39:36 -05:00
thinkyhead b320b1a3c2 [cron] Bump distribution date (2020-10-20) 2020-10-19 20:39:36 -05:00
Scott Lahteine 35b9e9b4a5 Tweak a host prompt call 2020-10-19 20:39:36 -05:00
Scott Lahteine 21ce39aa9b Use PGM serial strings 2020-10-19 04:25:48 -05:00
ellensp ea80b2c8fc Ensure A4988 for unspecified driver type (#19798)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-19 03:16:02 -05:00
Scott Lahteine f501930728 Document M125 P 2020-10-19 00:38:11 -05:00
thinkyhead 8285953c1b [cron] Bump distribution date (2020-10-19) 2020-10-19 00:16:11 +00:00
InsanityAutomation 6375829448 Apply home offsets to probing, Z Safe Homing (#19423)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-18 15:53:12 -05:00
Scott Lahteine b0f0dc683d ABM Teensy 3.6 build 2020-10-18 00:20:25 -05:00
Jago Strong-Wright c2802d35bb Distinct Chopper Timing settings (#19781)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-10-17 22:35:19 -05:00
thinkyhead 2693d0eb27 [cron] Bump distribution date (2020-10-18) 2020-10-18 00:16:03 +00:00
Sten Uusvali 6fed11896b Fix M503 output for M907 motor current (#19777)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-10-17 16:11:22 -05:00
Curtis Jenkins 178721a329 Fix Smoothieboard digipots i2c pin (#19784) 2020-10-17 15:05:50 -05:00
Scott Lahteine 263f29a96a MarlinUI followup 2020-10-16 20:48:59 -05:00
Scott Lahteine e99f967372 Starting fan followup 2020-10-16 20:38:30 -05:00
Victor Oliveira 313efa33ae Fix starting fan with bad material preset index (#19773) 2020-10-16 20:05:45 -05:00
Scott Lahteine eaf6777a66 Rename ultralcd => marlinui 2020-10-16 19:55:18 -05:00
Scott Lahteine 0f6fc48f85 touch_ms followup 2020-10-16 19:55:18 -05:00
thinkyhead 1e13a7161a [cron] Bump distribution date (2020-10-17) 2020-10-17 00:15:41 +00:00
arminth 3ed0b24831 Provide FYSETC F6 13 LCD pins for HD44780 (#19769) 2020-10-16 17:07:34 -05:00
Jason Smith 050ba0e0a0 LCD conditionals followup (#19766) 2020-10-16 17:04:10 -05:00
nb-rapidia 418b3e5ee2 Fix IDEX layer shift and DIR states (#19756)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-16 16:59:55 -05:00
Serhiy-K aa901ac4a2 Fix HAL/STM32 FastIO for analog pins (#19735) 2020-10-16 16:21:21 -05:00
Victor Oliveira 0b80841c38 Fix Color UI external_control, wait_for_release (#19771)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-16 16:19:48 -05:00
Victor Oliveira e370834c35 Handle M410 in the main task (#19752) 2020-10-16 16:11:00 -05:00
Jason Smith 9b9cd698a5 Fix SAMD Serial name macro (#19765) 2020-10-16 16:04:51 -05:00
mks-viva a4b89e67c6 Update MKS SGen-L V2 RGB LED pins (#19762) 2020-10-16 02:16:09 -05:00
Andreas Setterlind 814db9d7c9 Add ESP32 160MHz to README (#19748) 2020-10-16 02:06:05 -05:00
Jason Smith 7f83231385 Fix NUCLEO_F767ZI build, add tests (#19746) 2020-10-16 02:04:55 -05:00
Victor Oliveira 5247bb11f7 Sanity check unsupported EP (#19745) 2020-10-16 02:03:45 -05:00
thinkyhead 763544585a [cron] Bump distribution date (2020-10-16) 2020-10-16 00:15:39 +00:00
Victor Oliveira 8a885dc61b Fix TOUCH_SCREEN + TFT_LVGL_UI compile (#19754) 2020-10-15 18:38:27 -05:00
Victor Oliveira f74b5a6b9b Update Probe Offset Wizard for Color UI (#19742) 2020-10-15 14:15:11 -05:00
rlojek 72e3238c3f Fix ADVANCED_PAUSE && !PREVENT_COLD_EXTRUSION (#19740) 2020-10-15 13:44:57 -05:00
Peter Hall f86c6851fc Default LASER_POWER_INLINE to OFF (#19727) 2020-10-15 13:18:43 -05:00
Scott Lahteine f6ffbe548c TFT Presets, Generic options, Sanity checks (#19723) 2020-10-15 03:00:27 -05:00
thinkyhead 04c27573d6 [cron] Bump distribution date (2020-10-15) 2020-10-15 00:15:10 +00:00
Jason Smith 9a23fb5863 Fix SET_SOFT_ENDSTOP_LOOSE w/out soft endstops (#19734) 2020-10-14 13:50:03 -05:00
Jason Smith 90d364fc37 Revert at90usb1286 conditional (#19733) 2020-10-14 13:48:46 -05:00
Jason Smith 79d51581ba Fix digipot compilation (#19731) 2020-10-14 13:44:03 -05:00
Jason Smith 9507c49b18 Fix mega2560ext environment (#19730) 2020-10-14 13:43:36 -05:00
thinkyhead 87b07d6f2f [cron] Bump distribution date (2020-10-14) 2020-10-14 00:15:03 +00:00
Keith Bennett 64711e0d56 If needed, home before G34 (#19713) 2020-10-13 18:13:25 -05:00
Victor Oliveira bf33b2f862 Watchdog Refresh for LVGL Asset Load (#19724) 2020-10-13 18:12:34 -05:00
Jason Smith 54315252c7 Add NUCLEO-F767ZI dev board (#19373)
Co-authored-by: Lorenzo Delana <lorenzo.delana@gmail.com>
2020-10-13 18:03:09 -05:00
Scott Lahteine 733eb127e9 Simple bool in soft_endstops_t 2020-10-13 14:55:14 -05:00
Victor Oliveira 2132efa981 TFT followup fixes (#19710) 2020-10-13 11:58:50 -05:00
thinkyhead da79674f84 [cron] Bump distribution date (2020-10-13) 2020-10-13 00:15:19 +00:00
Scott Lahteine ae36ed3903 Move @section temperature 2020-10-12 18:02:25 -05:00
Victor Oliveira cc4db8e4a9 Fix UTF8 handling for Color UI (#19708) 2020-10-12 18:01:03 -05:00
Keith Bennett f9f8fd37de Sanity-check mutually-exclusive G34 features (#19706) 2020-10-12 16:52:56 -05:00
Earle F. Philhower, III 193c0a52d9 Add loose soft endstop state, apply to UBL fine-tune (#19681)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-12 16:48:04 -05:00
Jason Smith f5139f8bf4 Add D100 Watchdog Test (#19697) 2020-10-12 16:39:31 -05:00
Victor Oliveira c0920bbf6a TFT Refactoring (#19192)
* split tft folder in two: tft for color ui; tft_io for shared tft code

* after the files got moved, now the code was moved to the right place

* classic ui using TFT IO init lcd codes

* feature to compile tft_io when enabled

* compiling fix

* lvgl spi tft working with tft io init codes

* there is no need for separeted fsmc and spi class in lvgl anymore, as tft io handle everything

* remove debug

* base for TFT rotation and mirroring API, and ILI9488 support

* ST7796S rotate and mirror support

* ST7789V rotate and mirror support

* ST7735 rotate and mirror support

* ILI9341 rotate and mirror support

* ILI9328 rotate and mirror support

* R61505 rotate and mirror support

* MKS TFT definitions

* more configs for mks tfts

* update config

* naming typo

* to configure the user interface

* ANYCUBIC_TFT35

* tft configs

* support for SSD1963

* tft display types

* updated conditionals lcd; first board fully working with the new code - all 3 ui!

* compatiblity

* changed name

* move classic ui file name

* rename TURN -> ROTATE

* GRAPHICAL_TFT_ROTATE_180 deprecated

* first fsmc board fully working - chitu v5

* mks robin nano v1.2 + tft 35 ok!

* right pin name

* anycubic tft tested in a TRIGORILLA_PRO

* chitu v6

* nano 32 tft orientation

* mks tft43

* mks tft43 rotation

* fixed LONGER LK tft setup

* GRAPHICAL_TFT_UPSCALE defined by the display type

* better offsets defaults

* Update Configuration.h

* Update tft_fsmc.cpp

* Update Conditionals_LCD.h

* Tweak comments

* update nano tests

* Revert "update nano tests"

This reverts commit a071ebbfad30e28855a4a5695ec8a726542a1a65.

* default tft

* outdated comments

* to not break non-vscode builds

* upscale tft 35

* support tft 180 rotation for color ui

* Each TFT Driver is responsible for its default color mode.

* use auto detect in mks displays, because some of them could be shipped with diferent drivers

* extra s

* unused code

* wrong -1

* missing mirror options

* Smaller regex pattern

* Comment updates

* Clean up old defines

* Apply pins formatting

* GRAPHICAL_TFT_ROTATE_180 => TFT_ROTATE_180

* MKS_ROBIN_TFT_V1_1R

* merge fix

* correct resolution

* auto is default, dont need be there, and it will allow the user to configure it even for named displays

* to not use rotation with MKS_ROBIN_TFT_V1_1R

* i like () in macros

* avoid sleepy commits

* default for st7789 is rgb

* nano follow up

* to allow ili9328 rotation

* default is rgb

* boards merge follow up

* to match bootloader orientation

* HAS_TOUCH_XPT2046 is not hal specific anymore

* lets not forget LPC

* 180 rotation for ili9328 and R61505

* Clean up whitespace

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-10-12 16:38:07 -05:00
Scott Lahteine bcf65aa503 Fix screen click reading too often (#19696)
Co-authored-by: andreibobirica <39415547+andreibobirica@users.noreply.github.com>
2020-10-12 00:59:30 -05:00
Jason Smith a866a758cc Allow MAX31865 resistance values configuration (#19695) 2020-10-12 00:40:39 -05:00
InsanityAutomation e7838c5f79 G34 Mechanical Gantry Calibration (like Prusa M915) (#18972)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-11 21:34:27 -05:00
qwewer0 f21b91f1a7 Add REPORT_TRAMMING_MM option (#19682)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-11 21:30:18 -05:00
Jason Smith edda32e6b4 Fix motion compile w/out probe-oriented settings (#19684) 2020-10-11 19:42:50 -05:00
Victor Oliveira 639b0b8f50 Option to prevent (extra) Watchdog init on STM32 (#19693) 2020-10-11 19:31:21 -05:00
Victor Oliveira 18dd0d00a6 Implement wait_for_user for Color UI (#19694) 2020-10-11 19:26:16 -05:00
Jason Smith 24fd19259d Fix I2C_ADDRESS sign warning (#19685) 2020-10-11 19:23:23 -05:00
thinkyhead bdd555990b [cron] Bump distribution date (2020-10-12) 2020-10-12 00:15:08 +00:00
Jason Smith c762b7c91b Fix various errors, warnings in example config builds (#19686)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-11 19:06:57 -05:00
Jason Smith 45731bd022 Fix at90usb1286 build (#19687)
* Skip check for USBCON during dependency detection
* Ignore incompatible Teensy_ADC library, which requires Teensy >= 3
* Add IS_AT90USB

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-11 18:13:01 -05:00
Scott Lahteine 492ba2a111 Digipots refactor / cleanup (#19690) 2020-10-11 14:58:35 -05:00
thinkyhead 349465b168 [cron] Bump distribution date (2020-10-11) 2020-10-11 00:15:24 +00:00
Scott Lahteine 98427ea92a Save PLR on resume from pause (#19676)
Co-Authored-By: shahab <32130261+SHBnik@users.noreply.github.com>
2020-10-10 12:09:44 -05:00
Victor Oliveira a90edd5eb4 Restore correct STM32 port-bits code (#19678) 2020-10-10 11:47:28 -05:00
Serhiy-K 6fdaaf3d20 Fixes for TFTGLCD Panel, FastIO (#19614) 2020-10-10 05:08:01 -05:00
ellensp 406f8363bc HAS_CHARACTER_LCD => HAS_MARLINUI_HD44780 (#19673) 2020-10-10 04:39:12 -05:00
Victor Oliveira 8e03a4cb93 Keep HAL tasks running during PID Autotune (#19671) 2020-10-09 23:35:41 -05:00
thinkyhead 1403260487 [cron] Bump distribution date (2020-10-10) 2020-10-10 00:14:40 +00:00
Scott Lahteine 6831341ab4 Batch appercase hex values 2020-10-09 16:55:27 -05:00
Scott Lahteine 0988af453c Optional M42/M226; Add more features filters (#19664) 2020-10-09 16:42:23 -05:00
Victor Oliveira 631457ffea Support for Debug Codes - Dnnn (#19225)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-09 06:28:53 -05:00
石立枫 bec1844954 Support for FLY MINI (#19185) 2020-10-09 06:09:27 -05:00
Keith Bennett e6d0a8ef66 Fix touch ifndefs (#19661) 2020-10-09 02:52:06 -05:00
Giuliano Zaro 70ab146cbb Update Italian language (#19654) 2020-10-09 02:51:25 -05:00
thinkyhead 33b2e12886 [cron] Bump distribution date (2020-10-09) 2020-10-09 00:14:12 +00:00
Samantaz Fox 1de29026d5 Fix and improve Makefile / CMake (#19640) 2020-10-08 18:40:54 -05:00
Scott Lahteine 854af7a4bf Permit touch calibration override 2020-10-08 16:59:54 -05:00
Scott Lahteine f72c559824 Use 0xFF (not 'ff') for byte transfer 2020-10-08 15:18:43 -05:00
ellensp 321afd5fef Apply env:mega2560ext to relevant boards (#19624) 2020-10-08 02:30:31 -05:00
qwewer0 91df2bea80 Update PROBE_OFFSET_WIZARD comment (#19652) 2020-10-07 20:43:08 -05:00
thinkyhead 5de2946999 [cron] Bump distribution date (2020-10-08) 2020-10-08 00:12:06 +00:00
qwewer0 c650b752f1 More accessible PROBE_OFFSET_WIZARD (#19647) 2020-10-07 13:01:01 -05:00
ellensp c12f41ec6f Restore ° to 6x9 small info font (#19645) 2020-10-07 13:00:08 -05:00
Scott Lahteine 2c6ec0c999 Chamber vent/fan followup 2020-10-06 19:42:11 -05:00
Scott Lahteine f1e563d8cf Fix small font section directive, mixer warning 2020-10-06 19:18:00 -05:00
thinkyhead 6de179eb7d [cron] Bump distribution date (2020-10-07) 2020-10-07 00:14:42 +00:00
Scott Lahteine 584ffc6f52 Update language fonts 2020-10-06 18:37:32 -05:00
ladismrkolj 2c99c1e06f Add Chamber servo vent, auto fan (#19519) 2020-10-06 18:36:01 -05:00
signetica f95a2f6d91 Fix Ender-3 V2 DWIN Stop SD Print (#19642)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-06 16:58:28 -05:00
Scott Lahteine b31e358270 Improve retract / unretract labels 2020-10-06 03:01:28 -05:00
thinkyhead 673835e5d9 [cron] Bump distribution date (2020-10-06) 2020-10-06 00:14:30 +00:00
Scott Lahteine f5bae208cc Trailing whitespace 2020-10-05 17:16:42 -05:00
Scott Lahteine c25c31b1de Sync config to examples 2020-10-05 17:16:42 -05:00
Mathew Winters 343441d746 Z Probe Offset Wizard (#18866) 2020-10-05 00:31:20 -05:00
Cory Ory 78fc4c8947 Allow bypass for cold E movement (#19606) 2020-10-04 19:51:21 -05:00
thinkyhead 86165ceca5 [cron] Bump distribution date (2020-10-05) 2020-10-05 00:14:33 +00:00
Ryan V1 8989353fab Fix Archim1 stepper timing (with new variant) (#19596) 2020-10-04 17:41:41 -05:00
Scott Lahteine 7e0524109e Add HAS_FAST_MOVES 2020-10-04 17:31:10 -05:00
ellensp d88e694d06 Fix Z_AFTER_HOMING without probe (#19607) 2020-10-04 16:47:06 -05:00
Scott Lahteine 44d50c2bd3 Move SF_ARC_FIX option 2020-10-04 15:46:00 -05:00
Speaka 58548f5051 Fix German translation purging/unloading (#19615) 2020-10-04 14:50:12 -05:00
Scott Lahteine 782eabc226 Shared singlenozzle item 2020-10-04 14:47:06 -05:00
Scott Lahteine 0ff3ae3cc6 Fix Tune/Fan edit items
- Fixes #19617
- Followup to #18400
2020-10-04 14:29:44 -05:00
thinkyhead 8088c7dcd5 [cron] Bump distribution date (2020-10-04) 2020-10-04 00:14:30 +00:00
thinkyhead 604d10d307 [cron] Bump distribution date (2020-10-03) 2020-10-03 00:14:05 +00:00
Ryan V1 8dcc72ce9c Fix 'bossac' upload on Windows (#19545) 2020-10-02 17:31:33 -05:00
Marcio T d06bcd6dd3 Touch UI support for X2, Y2 and Z2 (#19538) 2020-10-02 17:30:32 -05:00
ellensp b3c2ee56f9 Fix wrappers on HAL/STM32F1 .cpp files (#19581)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-02 17:28:08 -05:00
ellensp 435e98ceed Fix TEMP_ADC_PROBE support for STM32F1 (#19582)
Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
2020-10-02 17:19:43 -05:00
Andreas Setterlind 7d21dfc938 Add Configurations repo info to config/README.md (#19583)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-10-02 17:16:55 -05:00
ellensp 2e1ba73926 Fix compile of MMU2 with S-mode disabled (#19584) 2020-10-02 17:12:17 -05:00
bilsef e8a62ee3cf Fix onboard SD card support for Teensy 3.6 & 4.1 (#19593) 2020-10-02 17:08:50 -05:00
Scott Lahteine 4e8eea8e78 Adjust HAL platform defines, comments 2020-10-02 17:05:59 -05:00
Scott Lahteine d83baf8925 Replace tabs with spaces 2020-10-02 17:05:59 -05:00
Victor Oliveira 348570fd68 Minor SPI fixes, systick_callback for STM32F1 HAL compatibility (#19565) 2020-10-01 20:54:22 -05:00
thinkyhead cf61562196 [cron] Bump distribution date (2020-10-02) 2020-10-02 00:13:10 +00:00
swissnorp d02d7a95d1 G35 workaround for Pronterface "feature" (#19577) 2020-10-01 18:17:11 -05:00
Stéphane ba07c26761 Fix Anycubic i3 Mega target temperature display (#19572)
Also includes a workaround for missing (probably un-fetched) long name in file listing
2020-10-01 18:09:39 -05:00
Ilya e56295851f No move on Park = No move on Resume (#19569) 2020-10-01 17:51:11 -05:00
Roman Moravčík f7d93dadeb Update Slovak language (#19561) 2020-10-01 17:47:24 -05:00
Victor Oliveira 5c87762f9e Fix Buzzer (pin) init for uninitialized FastIO (#19559) 2020-09-30 20:14:19 -05:00
Victor Oliveira ea78514ff3 Fix Move Screen with disabled Touch (#19558) 2020-09-30 20:06:32 -05:00
thinkyhead 2616feb3df [cron] Bump distribution date (2020-10-01) 2020-10-01 00:14:15 +00:00
thinkyhead f4255b14e8 [cron] Bump distribution date (2020-09-30) 2020-09-30 00:13:59 +00:00
thinkyhead 41774ec9de [cron] Bump distribution date (2020-09-29) 2020-09-29 00:13:48 +00:00
Nick 60155aa442 Anycubic Chiron full feature support (#19505) 2020-09-28 18:53:40 -05:00
Scott Lahteine 169ec65e72 Fix up E3 DWIN Power Panic 2020-09-28 17:17:12 -05:00
Scott Lahteine 660420050b Fetch longname when a file exists 2020-09-28 17:17:12 -05:00
Scott Lahteine 0ddb4d88a9 Add extra CardReader debugging 2020-09-28 17:17:12 -05:00
Scott Lahteine 9142f5446a Improve Power-Loss Recovery (#19540) 2020-09-28 15:52:21 -05:00
Scott Lahteine 6d4c82f4d8 Fix diveToFile with open Dir object (#19539)
* Fix CardReader diveToFile
* Add CardReader::fileExists
2020-09-28 15:46:12 -05:00
qwewer0 4424645e04 Multi-line comments cleanup (#19535) 2020-09-28 14:53:50 -05:00
Pavel Melnikov 05517e2096 Change "Fr" on LCD to ">>" (#18830) 2020-09-28 04:55:46 -05:00
Scott Lahteine be7bbadabe Default E3 V2 to English 2020-09-28 04:39:29 -05:00
Scott Lahteine d4a5b10133 Tweaks to git helpers 2020-09-28 03:57:33 -05:00
Scott Lahteine 4584a52ba5 Update configs to 020007 2020-09-28 03:55:14 -05:00
Serhiy-K 27bdf4b24e MarlinUI for SPI/I2C TFT-GLCD character-based display bridge (#19375) 2020-09-28 01:52:38 -05:00
Scott Lahteine c2c6a679ea Rename LCD conditionals (#19533) 2020-09-28 01:13:27 -05:00
Scott Lahteine 1c372df449 Prettier INI 2020-09-28 01:11:48 -05:00
Scott Lahteine 3a91ab4706 Menu tweak 2020-09-28 01:02:05 -05:00
Scott Lahteine 303d871ca7 Update AnyCubic deps 2020-09-28 01:02:05 -05:00
Emperor 00c09e95ac Thermistor: Kis3d Silicone heater + precision cast plate (#19528) 2020-09-27 21:38:30 -05:00
Tanguy Pruvot f3de0f6c53 Working LCD_USE_DMA_FSMC (#19522) 2020-09-27 21:28:48 -05:00
Siana Gearz 7415e4e66d Fix Allen Key Probe pin test (#19520) 2020-09-27 21:25:35 -05:00
Victor Oliveira 6572d7131f LVGL followup fixing "C", etc. (#19517) 2020-09-27 21:22:08 -05:00
thinkyhead d9d920e0b3 [cron] Bump distribution date (2020-09-28) 2020-09-28 00:13:59 +00:00
Scott Lahteine cd5735130d CardReader cleanup 2020-09-27 16:58:50 -05:00
Scott Lahteine 3245a5fdf6 E3 DWIN: "No Media" message 2020-09-27 16:55:57 -05:00
Scott Lahteine 37cf156223 E3 DWIN: General cleanup 2020-09-27 16:55:57 -05:00
Scott Lahteine d2741c8680 Allow M524 between M23 and M24 2020-09-27 16:55:57 -05:00
Scott Lahteine dd118e2f36 Drop extra Bed PID 2020-09-27 16:55:57 -05:00
Scott Lahteine 4975e93350 Tweak MMU beeps, misc. cleanup 2020-09-27 02:03:00 -05:00
thinkyhead 82e602c847 [cron] Bump distribution date (2020-09-27) 2020-09-27 00:14:12 +00:00
Trocololo 88d7f4d7be MMU2 S Mode spins the BMG gears during C0 (#19429) 2020-09-25 20:28:01 -05:00
Victor Oliveira 5cf2cf2be9 Allow ColorUI color customization (#19484) 2020-09-25 20:05:23 -05:00
Victor Oliveira a7f5d38da7 Fix MBL "Click to continue" on Color UI touchscreen (#19514) 2020-09-25 19:58:45 -05:00
Keith Bennett ec4a0a3e0d SKR E3 Turbo followup (#19513) 2020-09-25 19:49:36 -05:00
Luke Harrison 97e0d55073 Fix SKR 1.4 thermistor pin comments (#19510) 2020-09-25 19:48:24 -05:00
ellensp 7efd740950 Fix MKS Robin undefined pins error (#19507) 2020-09-25 19:47:22 -05:00
Victor Oliveira 61d96ce1c9 Escape the M33 string arg (#19515) 2020-09-25 19:45:01 -05:00
thinkyhead f902e208a3 [cron] Bump distribution date (2020-09-26) 2020-09-26 00:13:15 +00:00
Victor Oliveira 178a1da165 TFT: No timeout on Move Screen (#19426) 2020-09-25 14:58:28 -05:00
Scott Lahteine 7ce91c5ffe Sanity check old serial names 2020-09-24 21:46:13 -05:00
Keith Bennett 23faf902ab BigTreeTech SKR E3 Turbo (#19500) 2020-09-24 21:19:04 -05:00
Jason Smith da6c8317a7 Fix and improve STM32F1 serial (#19464) 2020-09-24 20:28:48 -05:00
thinkyhead 6bb6f7f288 [cron] Bump distribution date (2020-09-25) 2020-09-25 00:13:26 +00:00
Scott Lahteine b3223d7b41 Fix some pin inits 2020-09-23 21:36:39 -05:00
Scott Lahteine 568f292883 HAL/serial followup 2020-09-23 21:36:31 -05:00
Scott Lahteine 4b928b2da8 HAL and serial cleanup
Co-Authored-By: Jason Smith <20053467+sjasonsmith@users.noreply.github.com>
2020-09-23 19:45:33 -05:00
thinkyhead 928d874dea [cron] Bump distribution date (2020-09-24) 2020-09-24 00:13:39 +00:00
Scott Lahteine ecc8013812 Whitespace cleanup 2020-09-23 17:43:32 -05:00
ellensp 6634bedb25 Define UART pins for LPC debug based on LPC_PINCFG_UART (#19475) 2020-09-23 16:03:07 -05:00
ellensp e3d4e328f9 Preserve brightness in EEPROM validate (#19485)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-09-23 15:44:15 -05:00
Scott Lahteine 93421f3a00 Teensy pins cleanup 2020-09-23 15:34:10 -05:00
Jason Smith 023cb54fae MKS Robin Mini uses ONBOARD_SPI_DEVICE (#19460) 2020-09-23 15:07:34 -05:00
Victor Oliveira 90bc1993b6 Include pins.h in dependencies script (#19468) 2020-09-23 15:06:36 -05:00
Marcio T 362145f608 New Touch UI buttons (#19465) 2020-09-22 21:01:01 -05:00
Jason Smith 5d0429ee2a Catch a TMC address conflict early (#19458) 2020-09-22 20:36:31 -05:00
Scott Lahteine 5f5f76956f Fix up tests, warnings 2020-09-22 19:59:02 -05:00
thinkyhead fd8cd31504 [cron] Bump distribution date (2020-09-23) 2020-09-23 00:13:17 +00:00
Scott Lahteine a87c517da5 Fix Teensy 4.1 include 2020-09-22 17:52:42 -05:00
Jason Smith d051c2adbd Update board/teensy comment (#19456) 2020-09-22 17:36:59 -05:00
makerbase 63e7ae793b MKS SGEN L V2 adaptable heaters/fans (#19462) 2020-09-22 15:57:17 -05:00
Victor Oliveira 79dc8a2297 Define <u8,u8,u8>::softSPI (#19419) 2020-09-22 15:44:17 -05:00
riodoro1 225487f9db Fix up K8800 pins (#19476) 2020-09-22 15:08:14 -05:00
thinkyhead 47aa61c0ec [cron] Bump distribution date (2020-09-22) 2020-09-22 00:13:24 +00:00
Chris Pepper 1bfc51ad5c Update pins_ANET_10.h 2020-09-21 16:19:09 +01:00
Jason Smith fb48cd0ab4 Replace Serial with Serial1 in pins files (#19459) 2020-09-20 22:30:20 -05:00
qwewer0 0251eb85b2 Optional menu item for Assisted Tramming (#19447) 2020-09-20 22:29:34 -05:00
makerbase d8ed749045 Add MKS Robin E3P, improve LVGL UI (#19442) 2020-09-20 20:55:02 -05:00
thinkyhead 77b06dce0c [cron] Bump distribution date (2020-09-21) 2020-09-20 20:51:21 -05:00
Scott Lahteine 4f73ac7289 Add HAS_ROTARY_ENCODER 2020-09-20 20:51:21 -05:00
Scott Lahteine 60ab7a1ddb Cleanup before MKS changes 2020-09-20 20:51:21 -05:00
Scott Lahteine 76d8d1742c Add multi-extruder condition 2020-09-20 20:51:21 -05:00
Scott Lahteine 8e0fac897b Whitespace cleanup 2020-09-20 18:25:42 -05:00
thinkyhead 0c7035d8a3 [cron] Bump distribution date (2020-09-20) 2020-09-20 00:13:46 +00:00
enigmaquip b5e4511de8 Fix Creality DWIN Control menu icons (#19441) 2020-09-19 10:19:45 -05:00
ellensp 98bcb25fd4 Ultratronics Pro SPI pins (#19444) 2020-09-19 10:18:42 -05:00
qwewer0 af8f9f790a Optional Host Start menu item (#19443) 2020-09-19 10:17:24 -05:00
Marcio T 9fd06fa767 Fix case light brightness save/load (#19436) 2020-09-19 09:23:56 -05:00
InsanityAutomation 4696142a31 Fix compile for Taz Pro (#19424) 2020-09-19 09:20:15 -05:00
Scott Lahteine 435e1535cc Change some dwin defines 2020-09-19 09:04:00 -05:00
Cole Markham 4628f0e237 Fix CoreXY compile with backlash cal. (#19422) 2020-09-19 08:14:34 -05:00
thinkyhead e65deacabb [cron] Bump distribution date (2020-09-19) 2020-09-19 00:13:10 +00:00
Keith Bennett 55ba5044ef Fix missing include (#19418)
Co-authored-by: ellensp <530024+ellensp@users.noreply.github.com>
2020-09-18 04:45:56 -05:00
thinkyhead 648269e0ec [cron] Bump distribution date (2020-09-18) 2020-09-18 00:13:20 +00:00
Victor Oliveira 5b56d6698a Move screen for Color UI (#19386) 2020-09-17 06:52:21 -05:00
InsanityAutomation 62206c0386 Host Action: Start (#19398) 2020-09-17 06:36:21 -05:00
jahartley da1a60aeb6 Expose JOYSTICK_DEBUG to the general user (#19394)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-09-17 06:01:10 -05:00
Victor Oliveira 3eaa19fdb0 Fix MKS UI SPI flash typo (#19410) 2020-09-17 05:52:47 -05:00
Marcio Teixeira c539254101 Add warning to ExtUI Bed Mesh Screen. (#19397)
- Show a warning on the Mesh Bed Leveling screen if some points aren't probed.
2020-09-17 05:49:18 -05:00
deram 24d8daa01b SHOW_REMAINING_TIME for HD44780 character LCD (#19416) 2020-09-17 05:41:13 -05:00
cosmoderp 073b7f1e3a E3 V2 DWIN: Z-Offset, cleanup, versatility (#19384)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-09-17 05:35:04 -05:00
enigmaquip 5926bacea1 Add more DWIN commands, docs (#19395) 2020-09-17 03:17:47 -05:00
tovam c5204807e9 Fix missing spaces in info menu (#19404) 2020-09-17 03:07:03 -05:00
Jason Smith 9d5a9621de Demo and test multiple PID defaults (#19413) 2020-09-17 03:06:01 -05:00
thinkyhead 9cf8537051 [cron] Bump distribution date (2020-09-17) 2020-09-17 00:13:06 +00:00
Scott Lahteine 56ed55ddba MarlinUI percent methods for all 2020-09-16 07:12:24 -05:00
Scott Lahteine 217bae9ff1 More DWIN cleanup 2020-09-16 07:12:24 -05:00
Scott Lahteine 250bfac0cc E3 V2 DWIN cleanup 2020-09-16 04:35:30 -05:00
thinkyhead 57a87a278b [cron] Bump distribution date (2020-09-16) 2020-09-16 00:12:57 +00:00
thinkyhead 0b7d69d06f [cron] Bump distribution date (2020-09-15) 2020-09-15 00:13:01 +00:00
Victor Oliveira 79d4123319 Only set up SPI pins as needed (#19372) 2020-09-14 17:16:19 -05:00
Zachary Annand 648e7f73a5 More strict STATIC_ITEM_N (#19378) 2020-09-14 03:28:21 -05:00
Marcio T 941b890881 Add missing FTDI EVE menu source (#19382) 2020-09-14 03:25:20 -05:00
Scott Lahteine 0f9eb480aa Allow E3 V2 DWIN without EEPROM, POWER_LOSS_RECOVERY 2020-09-14 02:48:45 -05:00
Scott Lahteine 0473f7ee58 M115 strings 2020-09-14 02:42:05 -05:00
Scott Lahteine 3a89d34e7f Always show Compiled: 2020-09-14 02:42:05 -05:00
Scott Lahteine cd85fa3abe Better choice of code
Followup to #19344
2020-09-14 02:22:44 -05:00
ellensp 979876e958 Improve temperature runaway, idle timeout (#19339)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
2020-09-13 23:58:39 -05:00
thinkyhead cf8316bfbb [cron] Bump distribution date (2020-09-14) 2020-09-14 00:13:25 +00:00
Scott Lahteine 49ca16c3fb heater_ind_t => heater_id_t 2020-09-13 18:22:28 -05:00
mmajoor d93471fdad Allow SWD debug on Robin Nano (#19345) 2020-09-12 23:33:55 -05:00
Marcio T 872516f9f9 Touch UI "Leveling" menu, misc. fixes (#19349) 2020-09-12 23:32:00 -05:00
ellensp 7c7e663911 Fix extra string substitution bug (#19351) 2020-09-12 23:01:03 -05:00
ManuelMcLure c04d5624da Read from backup TMC StealthChop state (#19364) 2020-09-12 22:59:20 -05:00
Jason Smith d07ce9ef21 Fix EXP2 pin define for MKS SGEN_L (#19369) 2020-09-12 21:52:46 -05:00
Giuliano Zaro dcf3587d9a Update Italian language (#19365) 2020-09-12 21:51:20 -05:00
Jesse S 94244c1d93 Highlight Creality DWIN menu icons (#19368) 2020-09-12 21:50:15 -05:00
thinkyhead ed39317203 [cron] Bump distribution date (2020-09-13) 2020-09-13 00:13:14 +00:00
Neskik 1917ed8741 M872 wait for probe temperature (#19344) 2020-09-11 22:51:19 -05:00
Haxk20 6f8282f01e Fix Print Stats appearance (#19348) 2020-09-11 19:53:06 -05:00
thinkyhead 4f390ea18f [cron] Bump distribution date (2020-09-12) 2020-09-12 00:12:50 +00:00
Keith Bennett cb9a34c6f7 Fix Creality RET6 env - RE (#19340) 2020-09-11 02:12:49 -05:00
Scott Lahteine 6759aff220 Clean up W25QXXFlash class 2020-09-10 21:54:04 -05:00
Scott Lahteine b33f4ba300 Use F() for Ender 3 V2 DWIN 2020-09-10 21:52:36 -05:00
Scott Lahteine 85089898be Translate encoder comments 2020-09-10 20:14:07 -05:00
thinkyhead 4d65ab5a0b [cron] Bump distribution date (2020-09-11) 2020-09-11 00:12:52 +00:00
riodoro1 abf1222f1d Fix missing BOARD_K8800 (#19331) 2020-09-10 17:06:37 -05:00
Giuliano Zaro b2ba9009d0 Fix "too cold" in M600 (#19332) 2020-09-10 16:47:58 -05:00
Scott Lahteine 21ee7be30a Warning if SDCARD_READONLY should be disabled 2020-09-10 03:03:42 -05:00
Scott Lahteine 9b78138600 General cleanup 2020-09-10 02:29:01 -05:00
Victor Oliveira 160f70be63 LPC: Finish DMA transfer, use HW SPI class (#19191) 2020-09-10 00:41:26 -05:00
Victor Oliveira b98946b5c1 Raise STM32F1 UART IRQ Priority, add error handling (#19301)
(Error handling for Overrun, Framing and Parity.)
2020-09-09 22:46:50 -05:00
Zachary Annand 20ac0faa86 Fix Separate Neopixel menu labels (#19303) 2020-09-09 22:04:10 -05:00
Keith Bennett 700e0fe7d7 Warn in platformio.ini about RCT6 512K (#19312) 2020-09-09 21:59:42 -05:00
Marcio Teixeira 328d8b5952 Fix ExtUI SD sorting, compile issues 2020-09-09 21:54:08 -05:00
makerbase 006b7f3f17 MKS Gen L V2.1 (#19314) 2020-09-09 21:48:42 -05:00
Keith Bennett 6eebcb5e48 Fix compile with Danish, Basque (#19325) 2020-09-09 21:23:01 -05:00
thinkyhead 0b01aa8276 [cron] Bump distribution date (2020-09-10) 2020-09-10 00:12:33 +00:00
bilsef 049fbc92a9 Support for Teensy 4 (#19311) 2020-09-09 18:57:20 -05:00
Scott Lahteine bc7720c0cd Minor HAL cleanup 2020-09-08 22:17:44 -05:00
thinkyhead 40fdf8f087 [cron] Bump distribution date (2020-09-09) 2020-09-09 00:12:44 +00:00
Jason Smith 4fc1aba848 Update HAL/STM32 platform to 8.0 (#18496) 2020-09-07 21:41:48 -05:00
Giuliano Zaro 828a582f4d Make M600 heat up the nozzle. Reset runout on fail. (#19298)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
2020-09-07 21:29:45 -05:00
thinkyhead d1d8417a61 [cron] Bump distribution date (2020-09-08) 2020-09-08 00:12:45 +00:00
Jason Smith 5c3140811d TFT is neither "graphical" nor "character" (#19297) 2020-09-07 17:07:53 -05:00
Victor Oliveira 4268d86da1 Sanity-check BABYSTEP_DISPLAY_TOTAL with ColorUI (#19284) 2020-09-07 03:17:35 -05:00
Kadah bb017038d4 Fix M166 Gradient Mix for DELTA (#19285) 2020-09-07 03:15:42 -05:00
Zachary Annand d3f1f3533d Separate Neopixel followup (#19287) 2020-09-07 02:59:31 -05:00
Scott Lahteine a445746a8b Clean up LCD conditionals, DWIN 2020-09-06 23:21:42 -05:00
Scott Lahteine b709baba7a Whitespace cleanup 2020-09-06 22:51:59 -05:00
Jason Smith ef1d154a4a Adjust GTR PeripheralPins to avoid timer conflicts (#19183) 2020-09-06 20:10:25 -05:00
Victor Oliveira a4bc9e669c STM32F1 EP with USB_COMPOSITE (#19281) 2020-09-06 20:04:20 -05:00
Zachary Annand 5ea7a8373a Menu items for Separate NeoPixel (#19280) 2020-09-06 20:00:24 -05:00
thinkyhead f29baed540 [cron] Bump distribution date (2020-09-07) 2020-09-07 00:13:11 +00:00
Keith Bennett d19fc64392 Clarify disabling StallGuard for axes (#19263) 2020-09-06 17:51:19 -05:00
Marcio T 2b789ddab9 Touch UI long filenames fixes (#19262)
* Improvements to FTDI DLCache functionality.
* Better handling of long file names in Touch UI
- Long file names now truncated and shown with ellipsis.
- Increased display cache buffer to allow for longer filenames.
- Visual error message when display cache is exceeded.
2020-09-06 17:37:16 -05:00
cosmoderp 86b71b83fa Fix Ender 3 V2 (DWIN) buffer overrun (#19268) 2020-09-06 17:34:08 -05:00
Victor Oliveira 486731162f Fix STM32F1 SPI device init, MKS_LCD12864 (#19271) 2020-09-06 17:29:43 -05:00
Victor Oliveira b6ab163814 Emergency Parser for STM32F1 (#19279) 2020-09-06 17:23:36 -05:00
thinkyhead 2ea1bf0e1d [cron] Bump distribution date (2020-09-06) 2020-09-06 00:13:05 +00:00
Scott Lahteine d9ad8caf02 SD card debugging 2020-09-04 20:14:30 -05:00
Scott Lahteine 14314b68ec No 'ls' if media isn't mounted 2020-09-04 19:57:47 -05:00
Scott Lahteine 3002e1cd60 Fix Creality V4 SD Detect 2020-09-04 19:34:51 -05:00
thinkyhead 00e738e485 [cron] Bump distribution date (2020-09-05) 2020-09-05 00:18:44 +00:00
Keith Bennett 1d6a92751b Tweak ESP32 Wifi sanity-check message (#19257) 2020-09-03 23:15:45 -05:00
Victor Sokolov e97e6865c3 MarkForged kinematics (#19235) 2020-09-03 20:12:53 -05:00
thinkyhead 55dcff746b [cron] Bump distribution date (2020-09-04) 2020-09-04 00:12:46 +00:00
Greg Nutt 691f02acab Smoothieboard GLCD w/ SD support (#19241) 2020-09-03 17:52:14 -05:00
Victor Oliveira 1f25312b65 Only show "SD Init Fail" with detectable media (#19236) 2020-09-03 17:46:05 -05:00
Zachary Annand 26858fdebf Separate Neopixel followup (#19250) 2020-09-03 17:43:52 -05:00
Tanguy Pruvot 7d8d0010e3 Fix Longer3D TFT defines, disable DMA (#19251) 2020-09-03 17:40:29 -05:00
Scott Lahteine 277042bc4e Hide multi-step G29 on Ender 3 V2 2020-09-03 16:55:16 -05:00
1563 changed files with 102943 additions and 48612 deletions
+2
View File
@@ -17,3 +17,5 @@
*.png binary
*.jpg binary
*.fon binary
*.bin binary
*.woff binary
+18 -18
View File
@@ -36,22 +36,25 @@ jobs:
# Base Environments
- DUE
- DUE_archim
- esp32
- linux_native
- mega2560
- at90usb1286_dfu
- teensy31
- teensy35
- teensy41
- SAMD51_grandcentral_m4
# Extended AVR Environments
- FYSETC_F6_13
- FYSETC_F6
- mega1280
- rambo
- sanguino1284p
- sanguino644p
# Extended STM32 Environments
# STM32F1 (Maple) Environments
- STM32F103RC_btt
- STM32F103RC_btt_USB
@@ -61,38 +64,39 @@ jobs:
- STM32F103RC_meeb
- jgaurora_a5s_a1
- STM32F103VE_longer
- mks_robin
- mks_robin_lite
- mks_robin_pro
- STM32F103RET6_creality
- mks_robin_nano35
# STM32 (ST) Environments
- STM32F407VE_black
- STM32F401VE_STEVAL
- BIGTREE_BTT002
- BIGTREE_SKR_PRO
- BIGTREE_GTR_V1_0
- mks_robin
- mks_robin_stm32
- ARMED
- FYSETC_S6
- STM32F070CB_malyan
- STM32F070RB_malyan
- malyan_M300
- mks_robin_lite
- FLYF407ZG
- rumba32
- mks_robin_pro
- STM32F103RET6_creality
- LERDGEX
- mks_robin_nano35
- mks_robin_nano35_stm32
- NUCLEO_F767ZI
- REMRAM_V1
# Put lengthy tests last
- LPC1768
- LPC1769
# STM32 with non-STM framework. both broken for now. they should use HAL_STM32 which is working.
#- STM32F4
#- STM32F7
# Non-working environment tests
#- at90usb1286_cdc
#- at90usb1286_dfu
#- STM32F103CB_malyan
#- mks_robin_mini
@@ -114,8 +118,4 @@ jobs:
- name: Run ${{ matrix.test-platform }} Tests
run: |
# Inline tests script
chmod +x buildroot/bin/*
chmod +x buildroot/tests/*
export PATH=./buildroot/bin/:./buildroot/tests/:${PATH}
run_tests . ${{ matrix.test-platform }}
make tests-single-ci TEST_TARGET=${{ matrix.test-platform }}
+15 -9
View File
@@ -19,9 +19,9 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Our automatic versioning scheme generates the following file
# NEVER put it in the repository
# Generated files
_Version.h
bdf2u8g
#
# OS
@@ -77,7 +77,6 @@ tags
*.out
*.app
#
# C
#
@@ -149,7 +148,7 @@ Marlin/*/*/*/*/readme.txt
# Secure Credentials
Configuration_Secure.h
#Visual Studio
# Visual Studio
*.sln
*.vcxproj
*.vcxproj.user
@@ -160,27 +159,34 @@ __vm/
.vs/
vc-fileutils.settings
#Visual Studio Code
# Visual Studio Code
.vscode
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/*.db
#cmake
# cmake
CMakeLists.txt
src/CMakeLists.txt
CMakeListsPrivate.txt
#CLion
# CLion
cmake-build-*
#Eclipse
# Eclipse
.project
.cproject
.pydevproject
.settings
.classpath
#Python
# Python
__pycache__
# IOLogger logs
*_log.csv
# Simulation / Native
eeprom.dat
imgui.ini
Binary file not shown.
+52
View File
@@ -0,0 +1,52 @@
help:
@echo "Tasks for local development:"
@echo "* tests-single-ci: Run a single test from inside the CI"
@echo "* tests-single-local: Run a single test locally"
@echo "* tests-single-local-docker: Run a single test locally, using docker-compose"
@echo "* tests-all-local: Run all tests locally"
@echo "* tests-all-local-docker: Run all tests locally, using docker-compose"
@echo "* setup-local-docker: Setup local docker-compose"
@echo ""
@echo "Options for testing:"
@echo " TEST_TARGET Set when running tests-single-*, to select the"
@echo " test. If you set it to ALL it will run all "
@echo " tests, but some of them are broken: use "
@echo " tests-all-* instead to run only the ones that "
@echo " run on GitHub CI"
@echo " ONLY_TEST Limit tests to only those that contain this, or"
@echo " the index of the test (1-based)"
@echo " VERBOSE_PLATFORMIO If you want the full PIO output, set any value"
@echo " GIT_RESET_HARD Used by CI: reset all local changes. WARNING:"
@echo " THIS WILL UNDO ANY CHANGES YOU'VE MADE!"
.PHONY: help
tests-single-ci:
export GIT_RESET_HARD=true
$(MAKE) tests-single-local TEST_TARGET=$(TEST_TARGET)
.PHONY: tests-single-ci
tests-single-local:
@if ! test -n "$(TEST_TARGET)" ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local" ; return 1; fi
export PATH=./buildroot/bin/:./buildroot/tests/:${PATH} \
&& export VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) \
&& run_tests . $(TEST_TARGET) "$(ONLY_TEST)"
.PHONY: tests-single-local
tests-single-local-docker:
@if ! test -n "$(TEST_TARGET)" ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local-docker" ; return 1; fi
docker-compose run --rm marlin $(MAKE) tests-single-local TEST_TARGET=$(TEST_TARGET) VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD) ONLY_TEST="$(ONLY_TEST)"
.PHONY: tests-single-local-docker
tests-all-local:
export PATH=./buildroot/bin/:./buildroot/tests/:${PATH} \
&& export VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) \
&& for TEST_TARGET in $$(./get_test_targets.py) ; do echo "Running tests for $$TEST_TARGET" ; run_tests . $$TEST_TARGET ; done
.PHONY: tests-all-local
tests-all-local-docker:
docker-compose run --rm marlin $(MAKE) tests-all-local VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD)
.PHONY: tests-all-local-docker
setup-local-docker:
docker-compose build
.PHONY: setup-local-docker
+361 -221
View File
File diff suppressed because it is too large Load Diff
+402 -197
View File
File diff suppressed because it is too large Load Diff
+184 -89
View File
@@ -22,8 +22,10 @@
# (e.g. UPLOAD_PORT = /dev/tty.USB0). If the exact name of this file
# changes, you can use * as a wild card (e.g. UPLOAD_PORT = /dev/tty.usb*).
#
# 3. Set the line containing "MCU" to match your board's processor.
# Older one's are atmega8 based, newer ones like Arduino Mini, Bluetooth
# 3. Set the line containing "MCU" to match your board's processor. Set
# "PROG_MCU" as the AVR part name corresponding to "MCU". You can use the
# following command to get a list of correspondences: `avrdude -c alf -p x`
# Older boards are atmega8 based, newer ones like Arduino Mini, Bluetooth
# or Diecimila have the atmega168. If you're using a LilyPad Arduino,
# change F_CPU to 8000000. If you are using Gen7 electronics, you
# probably need to use 20000000. Either way, you must regenerate
@@ -34,18 +36,18 @@
# 5. Type "make upload", reset your Arduino board, and press enter to
# upload your program to the Arduino board.
#
# Note that all settings at the top of this file can be overriden from
# Note that all settings at the top of this file can be overridden from
# the command line with, for example, "make HARDWARE_MOTHERBOARD=71"
#
# To compile for RAMPS (atmega2560) with Arduino 1.6.9 at root/arduino you would use...
#
# make ARDUINO_VERSION=10609 AVR_TOOLS_PATH=/root/arduino/hardware/tools/avr/bin/ \
# HARDWARE_MOTHERBOARD=33 ARDUINO_INSTALL_DIR=/root/arduino
# HARDWARE_MOTHERBOARD=1200 ARDUINO_INSTALL_DIR=/root/arduino
#
# To compile and upload simply add "upload" to the end of the line...
#
# make ARDUINO_VERSION=10609 AVR_TOOLS_PATH=/root/arduino/hardware/tools/avr/bin/ \
# HARDWARE_MOTHERBOARD=33 ARDUINO_INSTALL_DIR=/root/arduino upload
# HARDWARE_MOTHERBOARD=1200 ARDUINO_INSTALL_DIR=/root/arduino upload
#
# If uploading doesn't work try adding the parameter "AVRDUDE_PROGRAMMER=wiring" or
# start upload manually (using stk500) like so:
@@ -57,7 +59,26 @@
#
# This defines the board to compile for (see boards.h for your board's ID)
HARDWARE_MOTHERBOARD ?= 11
HARDWARE_MOTHERBOARD ?= 1020
ifeq ($(OS),Windows_NT)
# Windows
ARDUINO_INSTALL_DIR ?= ${HOME}/Arduino
ARDUINO_USER_DIR ?= ${HOME}/Arduino
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
# Linux
ARDUINO_INSTALL_DIR ?= /usr/share/arduino
ARDUINO_USER_DIR ?= ${HOME}/Arduino
endif
ifeq ($(UNAME_S),Darwin)
# Darwin (macOS)
ARDUINO_INSTALL_DIR ?= /Applications/Arduino.app/Contents/Java
ARDUINO_USER_DIR ?= ${HOME}/Documents/Arduino
AVR_TOOLS_PATH ?= /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/
endif
endif
# Arduino source install directory, and version number
# On most linuxes this will be /usr/share/arduino
@@ -67,32 +88,38 @@ ARDUINO_VERSION ?= 106
# The installed Libraries are in the User folder
ARDUINO_USER_DIR ?= ${HOME}/Arduino
# You can optionally set a path to the avr-gcc tools. Requires a trailing slash. (ex: /usr/local/avr-gcc/bin)
# You can optionally set a path to the avr-gcc tools.
# Requires a trailing slash. For example, /usr/local/avr-gcc/bin/
AVR_TOOLS_PATH ?=
#Programmer configuration
# Programmer configuration
UPLOAD_RATE ?= 57600
AVRDUDE_PROGRAMMER ?= arduino
# on most linuxes this will be /dev/ttyACM0 or /dev/ttyACM1
# On most linuxes this will be /dev/ttyACM0 or /dev/ttyACM1
UPLOAD_PORT ?= /dev/ttyUSB0
#Directory used to build files in, contains all the build files, from object files to the final hex file
#on linux it is best to put an absolute path like /home/username/tmp .
# Directory used to build files in, contains all the build files, from object
# files to the final hex file on linux it is best to put an absolute path
# like /home/username/tmp .
BUILD_DIR ?= applet
# This defines whether Liquid_TWI2 support will be built
LIQUID_TWI2 ?= 0
# this defines if Wire is needed
# This defines if Wire is needed
WIRE ?= 0
# this defines if U8GLIB is needed (may require RELOC_WORKAROUND)
U8GLIB ?= 1
# This defines if Tone is needed (i.e SPEAKER is defined in Configuration.h)
# Disabling this (and SPEAKER) saves approximatively 350 bytes of memory.
TONE ?= 1
# this defines whether to include the Trinamic TMCStepper library
TMC ?= 1
# This defines if U8GLIB is needed (may require RELOC_WORKAROUND)
U8GLIB ?= 0
# this defines whether to include the AdaFruit NeoPixel library
# This defines whether to include the Trinamic TMCStepper library
TMC ?= 0
# This defines whether to include the AdaFruit NeoPixel library
NEOPIXEL ?= 0
############
@@ -170,110 +197,115 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1100)
else ifeq ($(HARDWARE_MOTHERBOARD),1101)
# Velleman K8400 Controller (derived from 3Drag Controller)
else ifeq ($(HARDWARE_MOTHERBOARD),1102)
# Velleman K8600 Controller (derived from 3Drag Controller)
# Velleman K8600 Controller (Vertex Nano)
else ifeq ($(HARDWARE_MOTHERBOARD),1103)
# 2PrintBeta BAM&DICE with STK drivers
# Velleman K8800 Controller (Vertex Delta)
else ifeq ($(HARDWARE_MOTHERBOARD),1104)
# 2PrintBeta BAM&DICE Due with STK drivers
# 2PrintBeta BAM&DICE with STK drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1105)
# MKS BASE v1.0
# 2PrintBeta BAM&DICE Due with STK drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1106)
# MKS v1.4 with A4982 stepper drivers
# MKS BASE v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1107)
# MKS v1.5 with Allegro A4982 stepper drivers
# MKS v1.4 with A4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1108)
# MKS v1.6 with Allegro A4982 stepper drivers
# MKS v1.5 with Allegro A4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1109)
# MKS BASE 1.0 with Heroic HR4982 stepper drivers
# MKS v1.6 with Allegro A4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1110)
# MKS GEN v1.3 or 1.4
# MKS BASE 1.0 with Heroic HR4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),1111)
# MKS GEN L
# MKS GEN v1.3 or 1.4
else ifeq ($(HARDWARE_MOTHERBOARD),1112)
# zrib V2.0 control board (Chinese knock off RAMPS replica)
# MKS GEN L
else ifeq ($(HARDWARE_MOTHERBOARD),1113)
# BigTreeTech or BIQU KFB2.0
# zrib V2.0 control board (Chinese knock off RAMPS replica)
else ifeq ($(HARDWARE_MOTHERBOARD),1114)
# Felix 2.0+ Electronics Board (RAMPS like)
# BigTreeTech or BIQU KFB2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1115)
# Invent-A-Part RigidBoard
# Felix 2.0+ Electronics Board (RAMPS like)
else ifeq ($(HARDWARE_MOTHERBOARD),1116)
# Invent-A-Part RigidBoard V2
# Invent-A-Part RigidBoard
else ifeq ($(HARDWARE_MOTHERBOARD),1117)
# Sainsmart 2-in-1 board
# Invent-A-Part RigidBoard V2
else ifeq ($(HARDWARE_MOTHERBOARD),1118)
# Ultimaker
# Sainsmart 2-in-1 board
else ifeq ($(HARDWARE_MOTHERBOARD),1119)
# Ultimaker (Older electronics. Pre 1.5.4. This is rare)
# Ultimaker
else ifeq ($(HARDWARE_MOTHERBOARD),1120)
MCU ?= atmega1280
# Ultimaker (Older electronics. Pre 1.5.4. This is rare)
else ifeq ($(HARDWARE_MOTHERBOARD),1121)
MCU ?= atmega1280
PROG_MCU ?= m1280
# Azteeg X3
else ifeq ($(HARDWARE_MOTHERBOARD),1121)
# Azteeg X3 Pro
else ifeq ($(HARDWARE_MOTHERBOARD),1122)
# Ultimainboard 2.x (Uses TEMP_SENSOR 20)
# Azteeg X3 Pro
else ifeq ($(HARDWARE_MOTHERBOARD),1123)
# Rumba
# Ultimainboard 2.x (Uses TEMP_SENSOR 20)
else ifeq ($(HARDWARE_MOTHERBOARD),1124)
# Raise3D Rumba
# Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),1125)
# Rapide Lite RL200 Rumba
# Raise3D Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),1126)
# Formbot T-Rex 2 Plus
# Rapide Lite RL200 Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),1127)
# Formbot T-Rex 3
# Formbot T-Rex 2 Plus
else ifeq ($(HARDWARE_MOTHERBOARD),1128)
# Formbot Raptor
# Formbot T-Rex 3
else ifeq ($(HARDWARE_MOTHERBOARD),1129)
# Formbot Raptor 2
# Formbot Raptor
else ifeq ($(HARDWARE_MOTHERBOARD),1130)
# bq ZUM Mega 3D
# Formbot Raptor 2
else ifeq ($(HARDWARE_MOTHERBOARD),1131)
# MakeBoard Mini v2.1.2 is a control board sold by MicroMake
# bq ZUM Mega 3D
else ifeq ($(HARDWARE_MOTHERBOARD),1132)
# TriGorilla Anycubic version 1.3 based on RAMPS EFB
# MakeBoard Mini v2.1.2 is a control board sold by MicroMake
else ifeq ($(HARDWARE_MOTHERBOARD),1133)
# TriGorilla Anycubic version 1.4 based on RAMPS EFB
# TriGorilla Anycubic version 1.3 based on RAMPS EFB
else ifeq ($(HARDWARE_MOTHERBOARD),1134)
# TriGorilla Anycubic version 1.4 Rev 1.1
# TriGorilla Anycubic version 1.4 based on RAMPS EFB
else ifeq ($(HARDWARE_MOTHERBOARD),1135)
# Creality: Ender-4, CR-8
# TriGorilla Anycubic version 1.4 Rev 1.1
else ifeq ($(HARDWARE_MOTHERBOARD),1136)
# Creality: CR10S, CR20, CR-X
# Creality: Ender-4, CR-8
else ifeq ($(HARDWARE_MOTHERBOARD),1137)
# Dagoma F5
# Creality: CR10S, CR20, CR-X
else ifeq ($(HARDWARE_MOTHERBOARD),1138)
# FYSETC F6 1.3
# Dagoma F5
else ifeq ($(HARDWARE_MOTHERBOARD),1139)
# FYSETC F6 1.5
# FYSETC F6 1.3
else ifeq ($(HARDWARE_MOTHERBOARD),1140)
# Duplicator i3 Plus
# FYSETC F6 1.5
else ifeq ($(HARDWARE_MOTHERBOARD),1141)
# VORON
# Duplicator i3 Plus
else ifeq ($(HARDWARE_MOTHERBOARD),1142)
# TRONXY V3 1.0
# VORON
else ifeq ($(HARDWARE_MOTHERBOARD),1143)
# Z-Bolt X Series
# TRONXY V3 1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1144)
# TT OSCAR
# Z-Bolt X Series
else ifeq ($(HARDWARE_MOTHERBOARD),1145)
# Overlord/Overlord Pro
# TT OSCAR
else ifeq ($(HARDWARE_MOTHERBOARD),1146)
# ADIMLab Gantry v1
# Overlord/Overlord Pro
else ifeq ($(HARDWARE_MOTHERBOARD),1147)
# ADIMLab Gantry v2
# ADIMLab Gantry v1
else ifeq ($(HARDWARE_MOTHERBOARD),1148)
# BIQU Tango V1
# ADIMLab Gantry v2
else ifeq ($(HARDWARE_MOTHERBOARD),1149)
# MKS GEN L V2
# BIQU Tango V1
else ifeq ($(HARDWARE_MOTHERBOARD),1150)
# Copymaster 3D
# MKS GEN L V2
else ifeq ($(HARDWARE_MOTHERBOARD),1151)
# Ortur 4
# MKS GEN L V2.1
else ifeq ($(HARDWARE_MOTHERBOARD),1152)
# Tenlog D3 Hero
# Copymaster 3D
else ifeq ($(HARDWARE_MOTHERBOARD),1153)
# Ortur 4
else ifeq ($(HARDWARE_MOTHERBOARD),1154)
# Tenlog D3 Hero
else ifeq ($(HARDWARE_MOTHERBOARD),1155)
#
# RAMBo and derivatives
@@ -346,9 +378,11 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1320)
# Minitronics v1.0/1.1
else ifeq ($(HARDWARE_MOTHERBOARD),1400)
MCU ?= atmega1281
PROG_MCU ?= m1281
# Silvergate v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1401)
MCU ?= atmega1281
PROG_MCU ?= m1281
#
# Sanguinololu and Derivatives - ATmega644P, ATmega1284P
@@ -358,46 +392,57 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1401)
else ifeq ($(HARDWARE_MOTHERBOARD),1500)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
PROG_MCU ?= m644p
# Sanguinololu 1.2 and above
else ifeq ($(HARDWARE_MOTHERBOARD),1501)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
PROG_MCU ?= m644p
# Melzi
else ifeq ($(HARDWARE_MOTHERBOARD),1502)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
PROG_MCU ?= m644p
# Melzi V2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1503)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
# Melzi with ATmega1284 (MaKr3d version)
else ifeq ($(HARDWARE_MOTHERBOARD),1504)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
# Melzi Creality3D board (for CR-10 etc)
else ifeq ($(HARDWARE_MOTHERBOARD),1505)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
# Melzi Malyan M150 board
else ifeq ($(HARDWARE_MOTHERBOARD),1506)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
# Tronxy X5S
else ifeq ($(HARDWARE_MOTHERBOARD),1507)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
# STB V1.1
else ifeq ($(HARDWARE_MOTHERBOARD),1508)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
# Azteeg X1
else ifeq ($(HARDWARE_MOTHERBOARD),1509)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
# Anet 1.0 (Melzi clone)
else ifeq ($(HARDWARE_MOTHERBOARD),1510)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
PROG_MCU ?= m1284p
#
# Other ATmega644P, ATmega644, ATmega1284P
@@ -407,50 +452,61 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1510)
else ifeq ($(HARDWARE_MOTHERBOARD),1600)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
PROG_MCU ?= m644p
# Gen3+
else ifeq ($(HARDWARE_MOTHERBOARD),1601)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
PROG_MCU ?= m644p
# Gen6
else ifeq ($(HARDWARE_MOTHERBOARD),1602)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
PROG_MCU ?= m644p
# Gen6 deluxe
else ifeq ($(HARDWARE_MOTHERBOARD),1603)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
PROG_MCU ?= m644p
# Gen7 custom (Alfons3 Version)
else ifeq ($(HARDWARE_MOTHERBOARD),1604)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644
PROG_MCU ?= m644
F_CPU ?= 20000000
# Gen7 v1.1, v1.2
else ifeq ($(HARDWARE_MOTHERBOARD),1605)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
PROG_MCU ?= m644p
F_CPU ?= 20000000
# Gen7 v1.3
else ifeq ($(HARDWARE_MOTHERBOARD),1606)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
PROG_MCU ?= m644p
F_CPU ?= 20000000
# Gen7 v1.4
else ifeq ($(HARDWARE_MOTHERBOARD),1607)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega1284p
PROG_MCU ?= m1284p
F_CPU ?= 20000000
# Alpha OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),1608)
HARDWARE_VARIANT ?= SanguinoA
MCU ?= atmega644
PROG_MCU ?= m644
# Final OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),1609)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
PROG_MCU ?= m644p
# Sethi 3D_1
else ifeq ($(HARDWARE_MOTHERBOARD),1610)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
PROG_MCU ?= m644p
#
# Teensyduino - AT90USB1286, AT90USB1286P
@@ -460,51 +516,60 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1610)
else ifeq ($(HARDWARE_MOTHERBOARD),1700)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
PROG_MCU ?= usb1286
# Printrboard (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1701)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
PROG_MCU ?= usb1286
# Printrboard Revision F (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1702)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
PROG_MCU ?= usb1286
# Brainwave (AT90USB646)
else ifeq ($(HARDWARE_MOTHERBOARD),1703)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb646
PROG_MCU ?= usb646
# Brainwave Pro (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1704)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
PROG_MCU ?= usb1286
# SAV Mk-I (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1705)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
PROG_MCU ?= usb1286
# Teensy++2.0 (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),1706)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
PROG_MCU ?= usb1286
# 5DPrint D8 Driver Board
else ifeq ($(HARDWARE_MOTHERBOARD),1707)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
PROG_MCU ?= usb1286
# UltiMachine Archim1 (with DRV8825 drivers)
else ifeq ($(HARDWARE_MOTHERBOARD),3023)
HARDWARE_VARIANT ?= archim
MCPU = cortex-m3
F_CPU = 84000000L
F_CPU = 84000000
IS_MCU = 0
# UltiMachine Archim2 (with TMC2130 drivers)
else ifeq ($(HARDWARE_MOTHERBOARD),3024)
HARDWARE_VARIANT ?= archim
MCPU = cortex-m3
F_CPU = 84000000L
F_CPU = 84000000
IS_MCU = 0
endif
# Be sure to regenerate speed_lookuptable.h with create_speed_lookuptable.py
# if you are setting this to something other than 16MHz
# Do not put the UL suffix, it's done later on.
# Set to 16Mhz if not yet set.
F_CPU ?= 16000000
@@ -514,7 +579,8 @@ IS_MCU ?= 1
ifeq ($(IS_MCU),1)
# Set to arduino, ATmega2560 if not yet set.
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
MCU ?= atmega2560
PROG_MCU ?= m2560
TOOL_PREFIX = avr
MCU_FLAGS = -mmcu=$(MCU)
@@ -545,27 +611,36 @@ VPATH += $(BUILD_DIR)
VPATH += $(HARDWARE_SRC)
ifeq ($(HARDWARE_VARIANT), $(filter $(HARDWARE_VARIANT),arduino Teensy Sanguino))
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/marlin/avr/libraries/LiquidCrystal/src
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/marlin/avr/libraries/SPI
# Old libraries (avr-core 1.6.21 < / Arduino < 1.6.8)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI
# New libraries (avr-core >= 1.6.21 / Arduino >= 1.6.8)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI/src
endif
ifeq ($(IS_MCU),1)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/cores/arduino
# Old libraries (avr-core 1.6.21 < / Arduino < 1.6.8)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SoftwareSerial
# New libraries (avr-core >= 1.6.21 / Arduino >= 1.6.8)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI/src
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SoftwareSerial/src
endif
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/LiquidCrystal/src
ifeq ($(LIQUID_TWI2), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire/utility
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/LiquidTWI2
WIRE = 1
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/LiquidTWI2
endif
ifeq ($(WIRE), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire/utility
# Old libraries (avr-core 1.6.21 / Arduino < 1.6.8)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/Wire
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/Wire/utility
# New libraries (avr-core >= 1.6.21 / Arduino >= 1.6.8)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/Wire/src
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/Wire/src/utility
endif
ifeq ($(NEOPIXEL), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Adafruit_NeoPixel
@@ -637,13 +712,23 @@ ifeq ($(WIRE), 1)
LIB_CXXSRC += Wire.cpp
endif
ifeq ($(TONE), 1)
LIB_CXXSRC += Tone.cpp
endif
ifeq ($(U8GLIB), 1)
LIB_CXXSRC += U8glib.cpp
LIB_SRC += u8g_ll_api.c u8g_bitmap.c u8g_clip.c u8g_com_null.c u8g_delay.c u8g_page.c u8g_pb.c u8g_pb16h1.c u8g_rect.c u8g_state.c u8g_font.c u8g_font_6x13.c u8g_font_04b_03.c u8g_font_5x8.c
LIB_SRC += u8g_ll_api.c u8g_bitmap.c u8g_clip.c u8g_com_null.c u8g_delay.c \
u8g_page.c u8g_pb.c u8g_pb16h1.c u8g_rect.c u8g_state.c u8g_font.c \
u8g_font_6x13.c u8g_font_04b_03.c u8g_font_5x8.c
endif
ifeq ($(TMC), 1)
LIB_CXXSRC += TMCStepper.cpp COOLCONF.cpp DRV_STATUS.cpp IHOLD_IRUN.cpp CHOPCONF.cpp GCONF.cpp PWMCONF.cpp DRV_CONF.cpp DRVCONF.cpp DRVCTRL.cpp DRVSTATUS.cpp ENCMODE.cpp RAMP_STAT.cpp SGCSCONF.cpp SHORT_CONF.cpp SMARTEN.cpp SW_MODE.cpp SW_SPI.cpp TMC2130Stepper.cpp TMC2208Stepper.cpp TMC2209Stepper.cpp TMC2660Stepper.cpp TMC5130Stepper.cpp TMC5160Stepper.cpp
LIB_CXXSRC += TMCStepper.cpp COOLCONF.cpp DRV_STATUS.cpp IHOLD_IRUN.cpp \
CHOPCONF.cpp GCONF.cpp PWMCONF.cpp DRV_CONF.cpp DRVCONF.cpp DRVCTRL.cpp \
DRVSTATUS.cpp ENCMODE.cpp RAMP_STAT.cpp SGCSCONF.cpp SHORT_CONF.cpp \
SMARTEN.cpp SW_MODE.cpp SW_SPI.cpp TMC2130Stepper.cpp TMC2208Stepper.cpp \
TMC2209Stepper.cpp TMC2660Stepper.cpp TMC5130Stepper.cpp TMC5160Stepper.cpp
endif
ifeq ($(RELOC_WORKAROUND), 1)
@@ -685,17 +770,23 @@ REMOVE = rm -f
MV = mv -f
# Place -D or -U options here
CDEFS = -DF_CPU=$(F_CPU) ${addprefix -D , $(DEFINES)} -DARDUINO=$(ARDUINO_VERSION)
CDEFS = -DF_CPU=$(F_CPU)UL ${addprefix -D , $(DEFINES)} -DARDUINO=$(ARDUINO_VERSION)
CXXDEFS = $(CDEFS)
ifeq ($(HARDWARE_VARIANT), Teensy)
CDEFS += -DUSB_SERIAL
CDEFS += -DUSB_SERIAL
LIB_SRC += usb.c pins_teensy.c
LIB_CXXSRC += usb_api.cpp
else ifeq ($(HARDWARE_VARIANT), archim)
CDEFS += -DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSB_VID=0x27b1 -DUSB_PID=0x0001 -DUSBCON '-DUSB_MANUFACTURER="UltiMachine"' '-DUSB_PRODUCT="Archim"'
LIB_CXXSRC += variant.cpp IPAddress.cpp Reset.cpp RingBuffer.cpp Stream.cpp UARTClass.cpp USARTClass.cpp abi.cpp new.cpp watchdog.cpp CDC.cpp PluggableUSB.cpp USBCore.cpp
CDEFS += -DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__
CDEFS += -DUSB_VID=0x27B1 -DUSB_PID=0x0001 -DUSBCON
CDEFS += '-DUSB_MANUFACTURER="UltiMachine"' '-DUSB_PRODUCT_STRING="Archim"'
LIB_CXXSRC += variant.cpp IPAddress.cpp Reset.cpp RingBuffer.cpp Stream.cpp \
UARTClass.cpp USARTClass.cpp abi.cpp new.cpp watchdog.cpp CDC.cpp \
PluggableUSB.cpp USBCore.cpp
LIB_SRC += cortex_handlers.c iar_calls_sam3.c syscalls_sam3.c dtostrf.c itoa.c
ifeq ($(U8GLIB), 1)
@@ -721,16 +812,20 @@ CTUNING = -fsigned-char -funsigned-bitfields -fno-exceptions \
ifneq ($(HARDWARE_MOTHERBOARD),)
CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
endif
#CEXTRA = -Wa,-adhlns=$(<:.c=.lst)
CXXEXTRA = -fno-use-cxa-atexit -fno-threadsafe-statics -fno-rtti
CFLAGS := $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CEXTRA) $(CTUNING) $(CSTANDARD)
CXXFLAGS := $(CDEFS) $(CINCS) -O$(OPT) $(CXXEXTRA) $(CTUNING) $(CXXSTANDARD)
ASFLAGS := $(CDEFS)
#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
ifeq ($(HARDWARE_VARIANT), archim)
LD_PREFIX = -Wl,--gc-sections,-Map,Marlin.ino.map,--cref,--check-sections,--entry=Reset_Handler,--unresolved-symbols=report-all,--warn-common,--warn-section-align
LD_SUFFIX = $(LDLIBS)
LDFLAGS = -lm -T$(LDSCRIPT) -u _sbrk -u link -u _close -u _fstat -u _isatty -u _lseek -u _read -u _write -u _exit -u kill -u _getpid
LDFLAGS = -lm -T$(LDSCRIPT) -u _sbrk -u link -u _close -u _fstat -u _isatty
LDFLAGS += -u _lseek -u _read -u _write -u _exit -u kill -u _getpid
else
LD_PREFIX = -Wl,--gc-sections,--relax
LDFLAGS = -lm
@@ -746,7 +841,7 @@ else
AVRDUDE_CONF = $(ARDUINO_INSTALL_DIR)/hardware/tools/avr/etc/avrdude.conf
endif
AVRDUDE_FLAGS = -D -C$(AVRDUDE_CONF) \
-p$(MCU) -P$(AVRDUDE_PORT) -c$(AVRDUDE_PROGRAMMER) \
-p$(PROG_MCU) -P$(AVRDUDE_PORT) -c$(AVRDUDE_PROGRAMMER) \
-b$(UPLOAD_RATE)
# Since Marlin 2.0, the source files may be distributed into several
@@ -847,7 +942,7 @@ extcoff: $(TARGET).elf
.elf.eep:
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
# Create extended listing file from ELF output file.
.elf.lss:
@@ -861,7 +956,7 @@ extcoff: $(TARGET).elf
$(BUILD_DIR)/$(TARGET).elf: $(OBJ) Configuration.h
$(Pecho) " CXX $@"
$P $(CC) $(LD_PREFIX) $(ALL_CXXFLAGS) -o $@ -L. $(OBJ) $(LDFLAGS) $(LD_SUFFIX)
$P $(CXX) $(LD_PREFIX) $(ALL_CXXFLAGS) -o $@ -L. $(OBJ) $(LDFLAGS) $(LD_SUFFIX)
# Object files that were found in "src" will be stored in $(BUILD_DIR)
# in directories that mirror the structure of "src"
+6 -6
View File
@@ -28,25 +28,25 @@
/**
* Marlin release version identifier
*/
//#define SHORT_BUILD_VERSION "bugfix-2.0.x"
#define SHORT_BUILD_VERSION "TM3D2.0.7.2-CR6-C"
/**
* Verbose version identifier which should contain a reference to the location
* from where the binary was downloaded or the source code was compiled.
*/
//#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION
#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION
/**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release
* version was tagged.
*/
//#define STRING_DISTRIBUTION_DATE "2019-07-10"
#define STRING_DISTRIBUTION_DATE "2020-12-28"
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
*/
//#define MACHINE_NAME "3D Printer"
#define MACHINE_NAME "TM3D CR-6"
/**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source
@@ -54,7 +54,7 @@
* has a distinct Github fork— the Source Code URL should just be the main
* Marlin repository.
*/
//#define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin"
#define SOURCE_CODE_URL "https://github.com/InsanityAutomation/Marlin/tree/CR-6Devel"
/**
* Default generic printer UUID.
@@ -65,7 +65,7 @@
* The WEBSITE_URL is the location where users can get more information such as
* documentation about a specific Marlin release.
*/
//#define WEBSITE_URL "https://marlinfw.org"
#define WEBSITE_URL "tinymachines3d.com"
/**
* Set the vendor info the serial USB interface, if changable
+7
View File
@@ -24,6 +24,13 @@
#include "../../inc/MarlinConfig.h"
#include "HAL.h"
#ifdef USBCON
DefaultSerial MSerial(false, Serial);
#ifdef BLUETOOTH
BTSerial btSerial(false, bluetoothSerial);
#endif
#endif
// ------------------------
// Public Variables
// ------------------------
+32 -35
View File
@@ -15,6 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
@@ -81,54 +82,44 @@ typedef int8_t pin_t;
// Serial ports
#ifdef USBCON
#if ENABLED(BLUETOOTH)
#define MYSERIAL0 bluetoothSerial
#else
#define MYSERIAL0 Serial
#include "../../core/serial_hook.h"
typedef ForwardSerial0Type< decltype(Serial) > DefaultSerial;
extern DefaultSerial MSerial;
#ifdef BLUETOOTH
typedef ForwardSerial0Type< decltype(bluetoothSerial) > BTSerial;
extern BTSerial btSerial;
#endif
#define NUM_SERIAL 1
#define MYSERIAL0 TERN(BLUETOOTH, btSerial, MSerial)
#else
#if !WITHIN(SERIAL_PORT, -1, 3)
#error "SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#define MYSERIAL0 customizedSerial1
#ifdef SERIAL_PORT_2
#if !WITHIN(SERIAL_PORT_2, -1, 3)
#error "SERIAL_PORT_2 must be from -1 to 3. Please update your configuration."
#elif SERIAL_PORT_2 == SERIAL_PORT
#error "SERIAL_PORT_2 must be different than SERIAL_PORT. Please update your configuration."
#endif
#define MYSERIAL1 customizedSerial2
#define NUM_SERIAL 2
#else
#define NUM_SERIAL 1
#endif
#endif
#ifdef DGUS_SERIAL_PORT
#if !WITHIN(DGUS_SERIAL_PORT, -1, 3)
#error "DGUS_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#elif DGUS_SERIAL_PORT == SERIAL_PORT
#error "DGUS_SERIAL_PORT must be different than SERIAL_PORT. Please update your configuration."
#elif defined(SERIAL_PORT_2) && DGUS_SERIAL_PORT == SERIAL_PORT_2
#error "DGUS_SERIAL_PORT must be different than SERIAL_PORT_2. Please update your configuration."
#ifdef MMU2_SERIAL_PORT
#if !WITHIN(MMU2_SERIAL_PORT, -1, 3)
#error "MMU2_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#define DGUS_SERIAL internalDgusSerial
#define DGUS_SERIAL_GET_TX_BUFFER_FREE DGUS_SERIAL.get_tx_buffer_free
#define MMU2_SERIAL mmuSerial
#endif
#ifdef ANYCUBIC_LCD_SERIAL_PORT
#if !WITHIN(ANYCUBIC_LCD_SERIAL_PORT, -1, 3)
#error "ANYCUBIC_LCD_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#elif ANYCUBIC_LCD_SERIAL_PORT == SERIAL_PORT
#error "ANYCUBIC_LCD_SERIAL_PORT must be different than SERIAL_PORT. Please update your configuration."
#elif defined(SERIAL_PORT_2) && ANYCUBIC_LCD_SERIAL_PORT == SERIAL_PORT_2
#error "ANYCUBIC_LCD_SERIAL_PORT must be different than SERIAL_PORT_2. Please update your configuration."
#ifdef LCD_SERIAL_PORT
#if !WITHIN(LCD_SERIAL_PORT, -1, 3)
#error "LCD_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#define LCD_SERIAL lcdSerial
#if HAS_DGUS_LCD || ENABLED(DGUS_LCD_UI_CREALITY_TOUCH)
#define SERIAL_GET_TX_BUFFER_FREE() LCD_SERIAL.get_tx_buffer_free()
#endif
#define ANYCUBIC_LCD_SERIAL anycubicLcdSerial
#endif
// ------------------------
@@ -144,12 +135,18 @@ void HAL_init();
inline void HAL_clear_reset_source() { MCUSR = 0; }
inline uint8_t HAL_get_reset_source() { return MCUSR; }
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
extern "C" {
int freeMemory();
}
#pragma GCC diagnostic pop
inline void HAL_reboot() {} // reboot the board or restart the bootloader
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif
extern "C" int freeMemory();
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif
// ADC
#ifdef DIDR2
+14 -14
View File
@@ -34,17 +34,17 @@
#include "../../inc/MarlinConfig.h"
void spiBegin() {
OUT_WRITE(SS_PIN, HIGH);
SET_OUTPUT(SCK_PIN);
SET_INPUT(MISO_PIN);
SET_OUTPUT(MOSI_PIN);
OUT_WRITE(SD_SS_PIN, HIGH);
SET_OUTPUT(SD_SCK_PIN);
SET_INPUT(SD_MISO_PIN);
SET_OUTPUT(SD_MOSI_PIN);
#if DISABLED(SOFTWARE_SPI)
// SS must be in output mode even it is not chip select
//SET_OUTPUT(SS_PIN);
//SET_OUTPUT(SD_SS_PIN);
// set SS high - may be chip select for another SPI device
//#if SET_SPI_SS_HIGH
//WRITE(SS_PIN, HIGH);
//WRITE(SD_SS_PIN, HIGH);
//#endif
// set a default rate
spiInit(1);
@@ -195,19 +195,19 @@ void spiBegin() {
// no interrupts during byte receive - about 8µs
cli();
// output pin high - like sending 0xFF
WRITE(MOSI_PIN, HIGH);
WRITE(SD_MOSI_PIN, HIGH);
LOOP_L_N(i, 8) {
WRITE(SCK_PIN, HIGH);
WRITE(SD_SCK_PIN, HIGH);
nop; // adjust so SCK is nice
nop;
data <<= 1;
if (READ(MISO_PIN)) data |= 1;
if (READ(SD_MISO_PIN)) data |= 1;
WRITE(SCK_PIN, LOW);
WRITE(SD_SCK_PIN, LOW);
}
sei();
@@ -225,10 +225,10 @@ void spiBegin() {
// no interrupts during byte send - about 8µs
cli();
LOOP_L_N(i, 8) {
WRITE(SCK_PIN, LOW);
WRITE(MOSI_PIN, data & 0x80);
WRITE(SD_SCK_PIN, LOW);
WRITE(SD_MOSI_PIN, data & 0x80);
data <<= 1;
WRITE(SCK_PIN, HIGH);
WRITE(SD_SCK_PIN, HIGH);
}
nop; // hold SCK high for a few ns
@@ -236,7 +236,7 @@ void spiBegin() {
nop;
nop;
WRITE(SCK_PIN, LOW);
WRITE(SD_SCK_PIN, LOW);
sei();
}
File diff suppressed because it is too large Load Diff
+63 -95
View File
@@ -34,6 +34,7 @@
#include <WString.h>
#include "../../inc/MarlinConfigPre.h"
#include "../../core/serial_hook.h"
#ifndef SERIAL_PORT
#define SERIAL_PORT 0
@@ -48,11 +49,11 @@
// These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor
// requires two levels of indirection to expand macro values properly)
#define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix)
#define SERIAL_REGNAME(registerbase,number,suffix) _SERIAL_REGNAME(registerbase,number,suffix)
#if SERIAL_PORT == 0 && (!defined(UBRR0H) || !defined(UDR0)) // use un-numbered registers if necessary
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##suffix
#define _SERIAL_REGNAME(registerbase,number,suffix) registerbase##suffix
#else
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix
#define _SERIAL_REGNAME(registerbase,number,suffix) registerbase##number##suffix
#endif
// Registers used by MarlinSerial class (expanded depending on selected serial port)
@@ -135,10 +136,6 @@
UART_DECL(3);
#endif
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
#define BYTE 0
// Templated type selector
@@ -202,58 +199,30 @@
static FORCE_INLINE void atomic_set_rx_tail(ring_buffer_pos_t value);
static FORCE_INLINE ring_buffer_pos_t atomic_read_rx_tail();
public:
public:
FORCE_INLINE static void store_rxd_char();
FORCE_INLINE static void _tx_udr_empty_irq();
public:
MarlinSerial() {};
static void begin(const long);
static void end();
static int peek();
static int read();
static void flush();
static ring_buffer_pos_t available();
static void write(const uint8_t c);
static void flushTX();
#ifdef DGUS_SERIAL_PORT
static ring_buffer_pos_t get_tx_buffer_free();
#endif
public:
static void begin(const long);
static void end();
static int peek();
static int read();
static void flush();
static ring_buffer_pos_t available();
static size_t write(const uint8_t c);
static void flushTX();
#if HAS_DGUS_LCD || ENABLED(DGUS_LCD_UI_CREALITY_TOUCH)
static ring_buffer_pos_t get_tx_buffer_free();
#endif
FORCE_INLINE static uint8_t dropped() { return Cfg::DROPPED_RX ? rx_dropped_bytes : 0; }
FORCE_INLINE static uint8_t buffer_overruns() { return Cfg::RX_OVERRUNS ? rx_buffer_overruns : 0; }
FORCE_INLINE static uint8_t framing_errors() { return Cfg::RX_FRAMING_ERRORS ? rx_framing_errors : 0; }
FORCE_INLINE static ring_buffer_pos_t rxMaxEnqueued() { return Cfg::MAX_RX_QUEUED ? rx_max_enqueued : 0; }
enum { HasEmergencyParser = Cfg::EMERGENCYPARSER };
static inline bool emergency_parser_enabled() { return Cfg::EMERGENCYPARSER; }
FORCE_INLINE static void write(const char* str) { while (*str) write(*str++); }
FORCE_INLINE static void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
FORCE_INLINE static void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
FORCE_INLINE static void print(const char* str) { write(str); }
static void print(char, int = BYTE);
static void print(unsigned char, int = BYTE);
static void print(int, int = DEC);
static void print(unsigned int, int = DEC);
static void print(long, int = DEC);
static void print(unsigned long, int = DEC);
static void print(double, int = 2);
static void println(const String& s);
static void println(const char[]);
static void println(char, int = BYTE);
static void println(unsigned char, int = BYTE);
static void println(int, int = DEC);
static void println(unsigned int, int = DEC);
static void println(long, int = DEC);
static void println(unsigned long, int = DEC);
static void println(double, int = 2);
static void println();
operator bool() { return true; }
private:
static void printNumber(unsigned long, const uint8_t);
static void printFloat(double, uint8_t);
FORCE_INLINE static uint8_t dropped() { return Cfg::DROPPED_RX ? rx_dropped_bytes : 0; }
FORCE_INLINE static uint8_t buffer_overruns() { return Cfg::RX_OVERRUNS ? rx_buffer_overruns : 0; }
FORCE_INLINE static uint8_t framing_errors() { return Cfg::RX_FRAMING_ERRORS ? rx_framing_errors : 0; }
FORCE_INLINE static ring_buffer_pos_t rxMaxEnqueued() { return Cfg::MAX_RX_QUEUED ? rx_max_enqueued : 0; }
};
template <uint8_t serial>
@@ -268,68 +237,67 @@
static constexpr bool RX_FRAMING_ERRORS = ENABLED(SERIAL_STATS_RX_FRAMING_ERRORS);
static constexpr bool MAX_RX_QUEUED = ENABLED(SERIAL_STATS_MAX_RX_QUEUED);
};
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
typedef Serial0Type< MarlinSerial< MarlinSerialCfg<SERIAL_PORT> > > MSerialT;
extern MSerialT customizedSerial1;
#ifdef SERIAL_PORT_2
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
typedef Serial0Type< MarlinSerial< MarlinSerialCfg<SERIAL_PORT_2> > > MSerialT2;
extern MSerialT2 customizedSerial2;
#endif
#endif // !USBCON
#ifdef INTERNAL_SERIAL_PORT
#ifdef MMU2_SERIAL_PORT
template <uint8_t serial>
struct MarlinInternalSerialCfg {
struct MMU2SerialCfg {
static constexpr int PORT = serial;
static constexpr bool XONOFF = false;
static constexpr bool EMERGENCYPARSER = false;
static constexpr bool DROPPED_RX = false;
static constexpr bool RX_FRAMING_ERRORS = false;
static constexpr bool MAX_RX_QUEUED = false;
static constexpr unsigned int RX_SIZE = 32;
static constexpr unsigned int TX_SIZE = 32;
static constexpr bool XONOFF = false;
static constexpr bool EMERGENCYPARSER = false;
static constexpr bool DROPPED_RX = false;
static constexpr bool RX_OVERRUNS = false;
static constexpr bool RX_FRAMING_ERRORS = false;
static constexpr bool MAX_RX_QUEUED = false;
};
extern MarlinSerial<MarlinInternalSerialCfg<INTERNAL_SERIAL_PORT>> internalSerial;
typedef Serial0Type< MarlinSerial< MMU2SerialCfg<MMU2_SERIAL_PORT> > > MSerialT3;
extern MSerialT3 mmuSerial;
#endif
#ifdef DGUS_SERIAL_PORT
#ifdef LCD_SERIAL_PORT
template <uint8_t serial>
struct MarlinInternalSerialCfg {
static constexpr int PORT = serial;
static constexpr unsigned int RX_SIZE = DGUS_RX_BUFFER_SIZE;
static constexpr unsigned int TX_SIZE = DGUS_TX_BUFFER_SIZE;
static constexpr bool XONOFF = false;
static constexpr bool EMERGENCYPARSER = false;
static constexpr bool DROPPED_RX = false;
static constexpr bool RX_OVERRUNS = BOTH(HAS_DGUS_LCD, DGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS);
static constexpr bool RX_FRAMING_ERRORS = false;
static constexpr bool MAX_RX_QUEUED = false;
struct LCDSerialCfg {
static constexpr int PORT = serial;
static constexpr bool XONOFF = false;
static constexpr bool EMERGENCYPARSER = ENABLED(EMERGENCY_PARSER);
static constexpr bool DROPPED_RX = false;
static constexpr bool RX_FRAMING_ERRORS = false;
static constexpr bool MAX_RX_QUEUED = false;
#if HAS_DGUS_LCD || ENABLED(DGUS_LCD_UI_CREALITY_TOUCH)
static constexpr unsigned int RX_SIZE = DGUS_RX_BUFFER_SIZE;
static constexpr unsigned int TX_SIZE = DGUS_TX_BUFFER_SIZE;
static constexpr bool RX_OVERRUNS = ENABLED(SERIAL_STATS_RX_BUFFER_OVERRUNS);
#elif EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON)
static constexpr unsigned int RX_SIZE = 64;
static constexpr unsigned int TX_SIZE = 128;
static constexpr bool RX_OVERRUNS = false;
#else
static constexpr unsigned int RX_SIZE = 64;
static constexpr unsigned int TX_SIZE = 128;
static constexpr bool RX_OVERRUNS = false
#endif
};
extern MarlinSerial<MarlinInternalSerialCfg<DGUS_SERIAL_PORT>> internalDgusSerial;
#endif
#ifdef ANYCUBIC_LCD_SERIAL_PORT
template <uint8_t serial>
struct AnycubicLcdSerialCfg {
static constexpr int PORT = serial;
static constexpr unsigned int RX_SIZE = 64;
static constexpr unsigned int TX_SIZE = 128;
static constexpr bool XONOFF = false;
static constexpr bool EMERGENCYPARSER = false;
static constexpr bool DROPPED_RX = false;
static constexpr bool RX_OVERRUNS = false;
static constexpr bool RX_FRAMING_ERRORS = false;
static constexpr bool MAX_RX_QUEUED = false;
};
extern MarlinSerial<AnycubicLcdSerialCfg<ANYCUBIC_LCD_SERIAL_PORT>> anycubicLcdSerial;
typedef Serial0Type< MarlinSerial< LCDSerialCfg<LCD_SERIAL_PORT> > > MSerialT4;
extern MSerialT4 lcdSerial;
#endif
// Use the UART for Bluetooth in AT90USB configurations
#if defined(USBCON) && ENABLED(BLUETOOTH)
extern HardwareSerial bluetoothSerial;
typedef Serial0Type<HardwareSerial> MSerialT5;
extern MSerialT5 bluetoothSerial;
#endif
-1
View File
@@ -48,7 +48,6 @@
* readMicroseconds() - Get the last-written servo pulse width in microseconds.
* attached() - Return true if a servo is attached.
* detach() - Stop an attached servo from pulsing its i/o pin.
*
*/
#ifdef __AVR__
+1 -1
View File
@@ -59,7 +59,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return false;
}
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
do {
uint8_t c = eeprom_read_byte((uint8_t*)pos);
if (writing) *value = c;
+17 -17
View File
@@ -124,7 +124,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(X_MAX_PIN);
#endif
#endif
@@ -132,7 +132,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(X_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(X_MIN_PIN), "X_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(X_MIN_PIN), "X_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(X_MIN_PIN);
#endif
#endif
@@ -140,7 +140,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Y_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(Y_MAX_PIN), "Y_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Y_MAX_PIN), "Y_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Y_MAX_PIN);
#endif
#endif
@@ -148,7 +148,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Y_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(Y_MIN_PIN), "Y_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Y_MIN_PIN), "Y_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Y_MIN_PIN);
#endif
#endif
@@ -156,7 +156,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(Z_MAX_PIN), "Z_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z_MAX_PIN), "Z_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z_MAX_PIN);
#endif
#endif
@@ -164,7 +164,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(Z_MIN_PIN), "Z_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z_MIN_PIN), "Z_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z_MIN_PIN);
#endif
#endif
@@ -172,7 +172,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(X2_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X2_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(X2_MAX_PIN), "X2_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(X2_MAX_PIN), "X2_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(X2_MAX_PIN);
#endif
#endif
@@ -180,7 +180,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(X2_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X2_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(X2_MIN_PIN), "X2_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(X2_MIN_PIN), "X2_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(X2_MIN_PIN);
#endif
#endif
@@ -188,7 +188,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Y2_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y2_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(Y2_MAX_PIN), "Y2_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Y2_MAX_PIN), "Y2_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Y2_MAX_PIN);
#endif
#endif
@@ -196,7 +196,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Y2_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y2_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(Y2_MIN_PIN), "Y2_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Y2_MIN_PIN), "Y2_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Y2_MIN_PIN);
#endif
#endif
@@ -204,7 +204,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z2_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z2_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(Z2_MAX_PIN), "Z2_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z2_MAX_PIN), "Z2_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z2_MAX_PIN);
#endif
#endif
@@ -212,7 +212,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z2_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z2_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(Z2_MIN_PIN), "Z2_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z2_MIN_PIN), "Z2_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z2_MIN_PIN);
#endif
#endif
@@ -220,7 +220,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z3_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z3_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(Z3_MAX_PIN), "Z3_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z3_MAX_PIN), "Z3_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z3_MAX_PIN);
#endif
#endif
@@ -228,7 +228,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z3_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z3_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(Z3_MIN_PIN), "Z3_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z3_MIN_PIN), "Z3_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z3_MIN_PIN);
#endif
#endif
@@ -236,7 +236,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z4_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z4_MAX_PIN);
#else
static_assert(digitalPinHasPCICR(Z4_MAX_PIN), "Z4_MAX_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z4_MAX_PIN), "Z4_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z4_MAX_PIN);
#endif
#endif
@@ -244,7 +244,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z4_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z4_MIN_PIN);
#else
static_assert(digitalPinHasPCICR(Z4_MIN_PIN), "Z4_MIN_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z4_MIN_PIN), "Z4_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z4_MIN_PIN);
#endif
#endif
@@ -252,7 +252,7 @@ void setup_endstop_interrupts() {
#if (digitalPinToInterrupt(Z_MIN_PROBE_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z_MIN_PROBE_PIN);
#else
static_assert(digitalPinHasPCICR(Z_MIN_PROBE_PIN), "Z_MIN_PROBE_PIN is not interrupt-capable");
static_assert(digitalPinHasPCICR(Z_MIN_PROBE_PIN), "Z_MIN_PROBE_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
pciSetup(Z_MIN_PROBE_PIN);
#endif
#endif
+2 -2
View File
@@ -185,8 +185,8 @@ void set_pwm_frequency(const pin_t pin, int f_desired) {
res_temp_phase_correct = rtf / 2;
}
LIMIT(res_temp_fast, 1u, size);
LIMIT(res_temp_phase_correct, 1u, size);
LIMIT(res_temp_fast, 1U, size);
LIMIT(res_temp_phase_correct, 1U, size);
// Calculate frequencies of test prescaler and resolution values
const int f_temp_fast = (F_CPU) / (prescaler[i] * (1 + res_temp_fast)),
f_temp_phase_correct = (F_CPU) / (2 * prescaler[i] * res_temp_phase_correct),
+11 -5
View File
@@ -29,11 +29,17 @@
#include <avr/io.h>
#define AVR_AT90USB1286_FAMILY (defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1286P__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB646P__) || defined(__AVR_AT90USB647__))
#define AVR_ATmega1284_FAMILY (defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284P__))
#define AVR_ATmega2560_FAMILY (defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__))
#define AVR_ATmega2561_FAMILY (defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__))
#define AVR_ATmega328_FAMILY (defined(__AVR_ATmega168__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__))
#if defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1286P__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB646P__) || defined(__AVR_AT90USB647__)
#define AVR_AT90USB1286_FAMILY 1
#elif defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284P__)
#define AVR_ATmega1284_FAMILY 1
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define AVR_ATmega2560_FAMILY 1
#elif defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
#define AVR_ATmega2561_FAMILY 1
#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__)
#define AVR_ATmega328_FAMILY 1
#endif
/**
* Include Ports and Functions
+10 -16
View File
@@ -26,7 +26,9 @@
#define NUMBER_PINS_TOTAL NUM_DIGITAL_PINS
#define AVR_ATmega2560_FAMILY_PLUS_70 MB(BQ_ZUM_MEGA_3D, MIGHTYBOARD_REVE, MINIRAMBO, SCOOVO_X9H)
#if MB(BQ_ZUM_MEGA_3D, MIGHTYBOARD_REVE, MINIRAMBO, SCOOVO_X9H, TRIGORILLA_14)
#define AVR_ATmega2560_FAMILY_PLUS_70 1
#endif
#if AVR_AT90USB1286_FAMILY
@@ -233,8 +235,8 @@ static void print_is_also_tied() { SERIAL_ECHOPGM(" is also tied to this pin");
inline void com_print(const uint8_t N, const uint8_t Z) {
const uint8_t *TCCRA = (uint8_t*)TCCR_A(N);
SERIAL_ECHOPGM(" COM");
SERIAL_CHAR('0' + N, Z);
SERIAL_ECHOPAIR(" COM", AS_CHAR('0' + N));
SERIAL_CHAR(Z);
SERIAL_ECHOPAIR(": ", int((*TCCRA >> (6 - Z * 2)) & 0x03));
}
@@ -245,8 +247,8 @@ void timer_prefix(uint8_t T, char L, uint8_t N) { // T - timer L - pwm N -
uint8_t WGM = (((*TCCRB & _BV(WGM_2)) >> 1) | (*TCCRA & (_BV(WGM_0) | _BV(WGM_1))));
if (N == 4) WGM |= ((*TCCRB & _BV(WGM_3)) >> 1);
SERIAL_ECHOPGM(" TIMER");
SERIAL_CHAR(T + '0', L);
SERIAL_ECHOPAIR(" TIMER", AS_CHAR(T + '0'));
SERIAL_CHAR(L);
SERIAL_ECHO_SP(3);
if (N == 3) {
@@ -260,19 +262,11 @@ void timer_prefix(uint8_t T, char L, uint8_t N) { // T - timer L - pwm N -
SERIAL_ECHOPAIR(" WGM: ", WGM);
com_print(T,L);
SERIAL_ECHOPAIR(" CS: ", (*TCCRB & (_BV(CS_0) | _BV(CS_1) | _BV(CS_2)) ));
SERIAL_ECHOPGM(" TCCR");
SERIAL_CHAR(T + '0');
SERIAL_ECHOPAIR("A: ", *TCCRA);
SERIAL_ECHOPGM(" TCCR");
SERIAL_CHAR(T + '0');
SERIAL_ECHOPAIR("B: ", *TCCRB);
SERIAL_ECHOPAIR(" TCCR", AS_CHAR(T + '0'), "A: ", *TCCRA);
SERIAL_ECHOPAIR(" TCCR", AS_CHAR(T + '0'), "B: ", *TCCRB);
const uint8_t *TMSK = (uint8_t*)TIMSK(T);
SERIAL_ECHOPGM(" TIMSK");
SERIAL_CHAR(T + '0');
SERIAL_ECHOPAIR(": ", *TMSK);
SERIAL_ECHOPAIR(" TIMSK", AS_CHAR(T + '0'), ": ", *TMSK);
const uint8_t OCIE = L - 'A' + 1;
if (N == 3) { if (WGM == 0 || WGM == 2 || WGM == 4 || WGM == 6) err_is_counter(); }
+3 -6
View File
@@ -22,15 +22,12 @@
* Structures for 2560 family boards that use more than 70 pins
*/
#undef NUM_DIGITAL_PINS
#if MB(BQ_ZUM_MEGA_3D)
#if MB(BQ_ZUM_MEGA_3D, MINIRAMBO, SCOOVO_X9H, TRIGORILLA_14)
#undef NUM_DIGITAL_PINS
#define NUM_DIGITAL_PINS 85
#elif MB(MIGHTYBOARD_REVE)
#undef NUM_DIGITAL_PINS
#define NUM_DIGITAL_PINS 80
#elif MB(MINIRAMBO)
#define NUM_DIGITAL_PINS 85
#elif MB(SCOOVO_X9H)
#define NUM_DIGITAL_PINS 85
#endif
#define PA 1
+8 -8
View File
@@ -51,15 +51,15 @@
#define AVR_SS_PIN 16
#endif
#ifndef SCK_PIN
#define SCK_PIN AVR_SCK_PIN
#ifndef SD_SCK_PIN
#define SD_SCK_PIN AVR_SCK_PIN
#endif
#ifndef MISO_PIN
#define MISO_PIN AVR_MISO_PIN
#ifndef SD_MISO_PIN
#define SD_MISO_PIN AVR_MISO_PIN
#endif
#ifndef MOSI_PIN
#define MOSI_PIN AVR_MOSI_PIN
#ifndef SD_MOSI_PIN
#define SD_MOSI_PIN AVR_MOSI_PIN
#endif
#ifndef SS_PIN
#define SS_PIN AVR_SS_PIN
#ifndef SD_SS_PIN
#define SD_SS_PIN AVR_SS_PIN
#endif
+1
View File
@@ -15,6 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
@@ -57,7 +57,7 @@
#include "../../inc/MarlinConfigPre.h"
#if HAS_GRAPHICAL_LCD
#if HAS_MARLINUI_U8GLIB
#include "../shared/Marduino.h"
#include "../shared/Delay.h"
@@ -189,5 +189,5 @@ uint8_t u8g_com_HAL_AVR_sw_sp_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void
return 1;
}
#endif // HAS_GRAPHICAL_LCD
#endif // HAS_MARLINUI_U8GLIB
#endif // ARDUINO_ARCH_SAM
+8 -3
View File
@@ -19,9 +19,7 @@
*/
/**
* Description: HAL for Arduino Due and compatible (SAM3X8E)
*
* For ARDUINO_ARCH_SAM
* HAL for Arduino Due and compatible (SAM3X8E)
*/
#ifdef ARDUINO_ARCH_SAM
@@ -104,4 +102,11 @@ uint16_t HAL_adc_get_result() {
return HAL_adc_result;
}
// Forward the default serial port
DefaultSerial MSerial(false, Serial);
DefaultSerial1 MSerial1(false, Serial1);
DefaultSerial2 MSerial2(false, Serial2);
DefaultSerial3 MSerial3(false, Serial3);
#endif // ARDUINO_ARCH_SAM
+47 -55
View File
@@ -22,9 +22,7 @@
#pragma once
/**
* Description: HAL for Arduino Due and compatible (SAM3X8E)
*
* For ARDUINO_ARCH_SAM
* HAL for Arduino Due and compatible (SAM3X8E)
*/
#define CPU_32_BIT
@@ -38,59 +36,55 @@
#include <stdint.h>
#include "../../core/serial_hook.h"
typedef ForwardSerial0Type< decltype(Serial) > DefaultSerial;
extern DefaultSerial MSerial;
typedef ForwardSerial0Type< decltype(Serial1) > DefaultSerial1;
typedef ForwardSerial0Type< decltype(Serial2) > DefaultSerial2;
typedef ForwardSerial0Type< decltype(Serial3) > DefaultSerial3;
extern DefaultSerial1 MSerial1;
extern DefaultSerial2 MSerial2;
extern DefaultSerial3 MSerial3;
#define _MSERIAL(X) MSerial##X
#define MSERIAL(X) _MSERIAL(X)
#define MSerial0 MSerial
// Define MYSERIAL0/1 before MarlinSerial includes!
#if SERIAL_PORT == -1 || ENABLED(EMERGENCY_PARSER)
#define MYSERIAL0 customizedSerial1
#elif SERIAL_PORT == 0
#define MYSERIAL0 Serial
#elif SERIAL_PORT == 1
#define MYSERIAL0 Serial1
#elif SERIAL_PORT == 2
#define MYSERIAL0 Serial2
#elif SERIAL_PORT == 3
#define MYSERIAL0 Serial3
#elif WITHIN(SERIAL_PORT, 0, 3)
#define MYSERIAL0 MSERIAL(SERIAL_PORT)
#else
#error "The required SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#ifdef SERIAL_PORT_2
#if SERIAL_PORT_2 == SERIAL_PORT
#error "SERIAL_PORT_2 must be different from SERIAL_PORT. Please update your configuration."
#elif SERIAL_PORT_2 == -1 || ENABLED(EMERGENCY_PARSER)
#if SERIAL_PORT_2 == -1 || ENABLED(EMERGENCY_PARSER)
#define MYSERIAL1 customizedSerial2
#elif SERIAL_PORT_2 == 0
#define MYSERIAL1 Serial
#elif SERIAL_PORT_2 == 1
#define MYSERIAL1 Serial1
#elif SERIAL_PORT_2 == 2
#define MYSERIAL1 Serial2
#elif SERIAL_PORT_2 == 3
#define MYSERIAL1 Serial3
#elif WITHIN(SERIAL_PORT_2, 0, 3)
#define MYSERIAL1 MSERIAL(SERIAL_PORT_2)
#else
#error "SERIAL_PORT_2 must be from -1 to 3. Please update your configuration."
#endif
#define NUM_SERIAL 2
#else
#define NUM_SERIAL 1
#endif
#ifdef DGUS_SERIAL_PORT
#if DGUS_SERIAL_PORT == SERIAL_PORT
#error "DGUS_SERIAL_PORT must be different from SERIAL_PORT. Please update your configuration."
#elif defined(SERIAL_PORT_2) && DGUS_SERIAL_PORT == SERIAL_PORT_2
#error "DGUS_SERIAL_PORT must be different than SERIAL_PORT_2. Please update your configuration."
#elif DGUS_SERIAL_PORT == -1
#define DGUS_SERIAL internalDgusSerial
#elif DGUS_SERIAL_PORT == 0
#define DGUS_SERIAL Serial
#elif DGUS_SERIAL_PORT == 1
#define DGUS_SERIAL Serial1
#elif DGUS_SERIAL_PORT == 2
#define DGUS_SERIAL Serial2
#elif DGUS_SERIAL_PORT == 3
#define DGUS_SERIAL Serial3
#ifdef MMU2_SERIAL_PORT
#if WITHIN(MMU2_SERIAL_PORT, 0, 3)
#define MMU2_SERIAL MSERIAL(MMU2_SERIAL_PORT)
#else
#error "DGUS_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#error "MMU2_SERIAL_PORT must be from 0 to 3. Please update your configuration."
#endif
#endif
#ifdef LCD_SERIAL_PORT
#if LCD_SERIAL_PORT == -1
#define LCD_SERIAL lcdSerial
#elif WITHIN(LCD_SERIAL_PORT, 0, 3)
#define LCD_SERIAL MSERIAL(LCD_SERIAL_PORT)
#else
#error "LCD_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#endif
@@ -100,16 +94,6 @@
// On AVR this is in math.h?
#define square(x) ((x)*(x))
#ifndef strncpy_P
#define strncpy_P(dest, src, num) strncpy((dest), (src), (num))
#endif
// Fix bug in pgm_read_ptr
#undef pgm_read_ptr
#define pgm_read_ptr(addr) (*((void**)(addr)))
#undef pgm_read_word
#define pgm_read_word(addr) (*((uint16_t*)(addr)))
typedef int8_t pin_t;
#define SHARED_SERVOS HAS_SERVOS
@@ -130,13 +114,15 @@ void sei(); // Enable interrupts
void HAL_clear_reset_source(); // clear reset reason
uint8_t HAL_get_reset_source(); // get reset reason
inline void HAL_reboot() {} // reboot the board or restart the bootloader
//
// ADC
//
extern uint16_t HAL_adc_result; // result of last ADC conversion
#ifndef analogInputToDigitalPin
#define analogInputToDigitalPin(p) ((p < 12u) ? (p) + 54u : -1)
#define analogInputToDigitalPin(p) ((p < 12U) ? (p) + 54U : -1)
#endif
#define HAL_ANALOG_SELECT(ch)
@@ -176,10 +162,16 @@ void HAL_init();
//
void _delay_ms(const int delay);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif
int freeMemory();
#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif
#ifdef __cplusplus
extern "C" {
+50 -51
View File
@@ -30,7 +30,7 @@
*/
/**
* Description: HAL for Arduino Due and compatible (SAM3X8E)
* HAL for Arduino Due and compatible (SAM3X8E)
*
* For ARDUINO_ARCH_SAM
*/
@@ -69,10 +69,10 @@
// run at ~8 .. ~10Mhz - Tx version (Rx data discarded)
static uint8_t spiTransferTx0(uint8_t bout) { // using Mode 0
uint32_t MOSI_PORT_PLUS30 = ((uint32_t) PORT(MOSI_PIN)) + 0x30; /* SODR of port */
uint32_t MOSI_MASK = PIN_MASK(MOSI_PIN);
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SCK_PIN);
uint32_t MOSI_PORT_PLUS30 = ((uint32_t) PORT(SD_MOSI_PIN)) + 0x30; /* SODR of port */
uint32_t MOSI_MASK = PIN_MASK(SD_MOSI_PIN);
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SD_SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SD_SCK_PIN);
uint32_t idx = 0;
/* Negate bout, as the assembler requires a negated value */
@@ -154,9 +154,9 @@
static uint8_t spiTransferRx0(uint8_t) { // using Mode 0
uint32_t bin = 0;
uint32_t work = 0;
uint32_t BITBAND_MISO_PORT = BITBAND_ADDRESS( ((uint32_t)PORT(MISO_PIN))+0x3C, PIN_SHIFT(MISO_PIN)); /* PDSR of port in bitband area */
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SCK_PIN);
uint32_t BITBAND_MISO_PORT = BITBAND_ADDRESS( ((uint32_t)PORT(SD_MISO_PIN))+0x3C, PIN_SHIFT(SD_MISO_PIN)); /* PDSR of port in bitband area */
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SD_SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SD_SCK_PIN);
/* The software SPI routine */
__asm__ __volatile__(
@@ -225,36 +225,36 @@
static uint8_t spiTransfer1(uint8_t b) { // using Mode 0
int bits = 8;
do {
WRITE(MOSI_PIN, b & 0x80);
WRITE(SD_MOSI_PIN, b & 0x80);
b <<= 1; // little setup time
WRITE(SCK_PIN, HIGH);
WRITE(SD_SCK_PIN, HIGH);
DELAY_NS(125); // 10 cycles @ 84mhz
b |= (READ(MISO_PIN) != 0);
b |= (READ(SD_MISO_PIN) != 0);
WRITE(SCK_PIN, LOW);
WRITE(SD_SCK_PIN, LOW);
DELAY_NS(125); // 10 cycles @ 84mhz
} while (--bits);
return b;
}
// all the others
static uint32_t spiDelayCyclesX4 = (F_CPU) / 1000000; // 4µs => 125khz
static uint32_t spiDelayCyclesX4 = 4 * (F_CPU) / 1000000; // 4µs => 125khz
static uint8_t spiTransferX(uint8_t b) { // using Mode 0
int bits = 8;
do {
WRITE(MOSI_PIN, b & 0x80);
WRITE(SD_MOSI_PIN, b & 0x80);
b <<= 1; // little setup time
WRITE(SCK_PIN, HIGH);
__delay_4cycles(spiDelayCyclesX4);
WRITE(SD_SCK_PIN, HIGH);
DELAY_CYCLES(spiDelayCyclesX4);
b |= (READ(MISO_PIN) != 0);
b |= (READ(SD_MISO_PIN) != 0);
WRITE(SCK_PIN, LOW);
__delay_4cycles(spiDelayCyclesX4);
WRITE(SD_SCK_PIN, LOW);
DELAY_CYCLES(spiDelayCyclesX4);
} while (--bits);
return b;
}
@@ -271,10 +271,10 @@
// Block transfers run at ~8 .. ~10Mhz - Tx version (Rx data discarded)
static void spiTxBlock0(const uint8_t* ptr, uint32_t todo) {
uint32_t MOSI_PORT_PLUS30 = ((uint32_t) PORT(MOSI_PIN)) + 0x30; /* SODR of port */
uint32_t MOSI_MASK = PIN_MASK(MOSI_PIN);
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SCK_PIN);
uint32_t MOSI_PORT_PLUS30 = ((uint32_t) PORT(SD_MOSI_PIN)) + 0x30; /* SODR of port */
uint32_t MOSI_MASK = PIN_MASK(SD_MOSI_PIN);
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SD_SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SD_SCK_PIN);
uint32_t work = 0;
uint32_t txval = 0;
@@ -352,9 +352,9 @@
static void spiRxBlock0(uint8_t* ptr, uint32_t todo) {
uint32_t bin = 0;
uint32_t work = 0;
uint32_t BITBAND_MISO_PORT = BITBAND_ADDRESS( ((uint32_t)PORT(MISO_PIN))+0x3C, PIN_SHIFT(MISO_PIN)); /* PDSR of port in bitband area */
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SCK_PIN);
uint32_t BITBAND_MISO_PORT = BITBAND_ADDRESS( ((uint32_t)PORT(SD_MISO_PIN))+0x3C, PIN_SHIFT(SD_MISO_PIN)); /* PDSR of port in bitband area */
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SD_SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SD_SCK_PIN);
/* The software SPI routine */
__asm__ __volatile__(
@@ -442,22 +442,22 @@
static pfnSpiRxBlock spiRxBlock = (pfnSpiRxBlock)spiRxBlockX;
#if MB(ALLIGATOR)
#define _SS_WRITE(S) WRITE(SS_PIN, S)
#define _SS_WRITE(S) WRITE(SD_SS_PIN, S)
#else
#define _SS_WRITE(S) NOOP
#endif
void spiBegin() {
SET_OUTPUT(SS_PIN);
SET_OUTPUT(SD_SS_PIN);
_SS_WRITE(HIGH);
SET_OUTPUT(SCK_PIN);
SET_INPUT(MISO_PIN);
SET_OUTPUT(MOSI_PIN);
SET_OUTPUT(SD_SCK_PIN);
SET_INPUT(SD_MISO_PIN);
SET_OUTPUT(SD_MOSI_PIN);
}
uint8_t spiRec() {
_SS_WRITE(LOW);
WRITE(MOSI_PIN, HIGH); // Output 1s 1
WRITE(SD_MOSI_PIN, HIGH); // Output 1s 1
uint8_t b = spiTransferRx(0xFF);
_SS_WRITE(HIGH);
return b;
@@ -466,7 +466,7 @@
void spiRead(uint8_t* buf, uint16_t nbyte) {
if (nbyte) {
_SS_WRITE(LOW);
WRITE(MOSI_PIN, HIGH); // Output 1s 1
WRITE(SD_MOSI_PIN, HIGH); // Output 1s 1
spiRxBlock(buf, nbyte);
_SS_WRITE(HIGH);
}
@@ -510,7 +510,7 @@
spiRxBlock = (pfnSpiRxBlock)spiRxBlockX;
break;
default:
spiDelayCyclesX4 = ((F_CPU) / 1000000) >> (6 - spiRate);
spiDelayCyclesX4 = ((F_CPU) / 1000000) >> (6 - spiRate) << 2; // spiRate of 2 gives the maximum error with current CPU
spiTransferTx = (pfnSpiTransfer)spiTransferX;
spiTransferRx = (pfnSpiTransfer)spiTransferX;
spiTxBlock = (pfnSpiTxBlock)spiTxBlockX;
@@ -519,8 +519,8 @@
}
_SS_WRITE(HIGH);
WRITE(MOSI_PIN, HIGH);
WRITE(SCK_PIN, LOW);
WRITE(SD_MOSI_PIN, HIGH);
WRITE(SD_SCK_PIN, LOW);
}
/** Begin SPI transaction, set clock, bit order, data mode */
@@ -575,27 +575,27 @@
// Configure SPI pins
PIO_Configure(
g_APinDescription[SCK_PIN].pPort,
g_APinDescription[SCK_PIN].ulPinType,
g_APinDescription[SCK_PIN].ulPin,
g_APinDescription[SCK_PIN].ulPinConfiguration);
g_APinDescription[SD_SCK_PIN].pPort,
g_APinDescription[SD_SCK_PIN].ulPinType,
g_APinDescription[SD_SCK_PIN].ulPin,
g_APinDescription[SD_SCK_PIN].ulPinConfiguration);
PIO_Configure(
g_APinDescription[MOSI_PIN].pPort,
g_APinDescription[MOSI_PIN].ulPinType,
g_APinDescription[MOSI_PIN].ulPin,
g_APinDescription[MOSI_PIN].ulPinConfiguration);
g_APinDescription[SD_MOSI_PIN].pPort,
g_APinDescription[SD_MOSI_PIN].ulPinType,
g_APinDescription[SD_MOSI_PIN].ulPin,
g_APinDescription[SD_MOSI_PIN].ulPinConfiguration);
PIO_Configure(
g_APinDescription[MISO_PIN].pPort,
g_APinDescription[MISO_PIN].ulPinType,
g_APinDescription[MISO_PIN].ulPin,
g_APinDescription[MISO_PIN].ulPinConfiguration);
g_APinDescription[SD_MISO_PIN].pPort,
g_APinDescription[SD_MISO_PIN].ulPinType,
g_APinDescription[SD_MISO_PIN].ulPin,
g_APinDescription[SD_MISO_PIN].ulPinConfiguration);
// set master mode, peripheral select, fault detection
SPI_Configure(SPI0, ID_SPI0, SPI_MR_MSTR | SPI_MR_MODFDIS | SPI_MR_PS);
SPI_Enable(SPI0);
SET_OUTPUT(DAC0_SYNC);
#if EXTRUDERS > 1
#if HAS_MULTI_EXTRUDER
SET_OUTPUT(DAC1_SYNC);
WRITE(DAC1_SYNC, HIGH);
#endif
@@ -606,7 +606,7 @@
WRITE(SPI_EEPROM1_CS, HIGH);
WRITE(SPI_EEPROM2_CS, HIGH);
WRITE(SPI_FLASH_CS, HIGH);
WRITE(SS_PIN, HIGH);
WRITE(SD_SS_PIN, HIGH);
OUT_WRITE(SDSS, LOW);
@@ -759,7 +759,6 @@
*
* All of the above can be avoided by defining FORCE_SOFT_SPI to force the
* display to use software SPI.
*
*/
void spiInit(uint8_t spiRate=6) { // Default to slowest rate if not specified)
+7 -159
View File
@@ -382,7 +382,7 @@ void MarlinSerial<Cfg>::flush() {
}
template<typename Cfg>
void MarlinSerial<Cfg>::write(const uint8_t c) {
size_t MarlinSerial<Cfg>::write(const uint8_t c) {
_written = true;
if (Cfg::TX_SIZE == 0) {
@@ -400,7 +400,7 @@ void MarlinSerial<Cfg>::write(const uint8_t c) {
// XOFF char at the RX isr, but it is properly handled there
if (!(HWUART->UART_IMR & UART_IMR_TXRDY) && (HWUART->UART_SR & UART_SR_TXRDY)) {
HWUART->UART_THR = c;
return;
return 1;
}
const uint8_t i = (tx_buffer.head + 1) & (Cfg::TX_SIZE - 1);
@@ -428,6 +428,7 @@ void MarlinSerial<Cfg>::write(const uint8_t c) {
// Enable TX isr - Non atomic, but it will eventually enable TX isr
HWUART->UART_IER = UART_IER_TXRDY;
}
return 1;
}
template<typename Cfg>
@@ -473,169 +474,16 @@ void MarlinSerial<Cfg>::flushTX() {
}
}
/**
* Imports from print.h
*/
template<typename Cfg>
void MarlinSerial<Cfg>::print(char c, int base) {
print((long)c, base);
}
template<typename Cfg>
void MarlinSerial<Cfg>::print(unsigned char b, int base) {
print((unsigned long)b, base);
}
template<typename Cfg>
void MarlinSerial<Cfg>::print(int n, int base) {
print((long)n, base);
}
template<typename Cfg>
void MarlinSerial<Cfg>::print(unsigned int n, int base) {
print((unsigned long)n, base);
}
template<typename Cfg>
void MarlinSerial<Cfg>::print(long n, int base) {
if (base == 0) write(n);
else if (base == 10) {
if (n < 0) { print('-'); n = -n; }
printNumber(n, 10);
}
else
printNumber(n, base);
}
template<typename Cfg>
void MarlinSerial<Cfg>::print(unsigned long n, int base) {
if (base == 0) write(n);
else printNumber(n, base);
}
template<typename Cfg>
void MarlinSerial<Cfg>::print(double n, int digits) {
printFloat(n, digits);
}
template<typename Cfg>
void MarlinSerial<Cfg>::println() {
print('\r');
print('\n');
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(const String& s) {
print(s);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(const char c[]) {
print(c);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(char c, int base) {
print(c, base);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(unsigned char b, int base) {
print(b, base);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(int n, int base) {
print(n, base);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(unsigned int n, int base) {
print(n, base);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(long n, int base) {
print(n, base);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(unsigned long n, int base) {
print(n, base);
println();
}
template<typename Cfg>
void MarlinSerial<Cfg>::println(double n, int digits) {
print(n, digits);
println();
}
// Private Methods
template<typename Cfg>
void MarlinSerial<Cfg>::printNumber(unsigned long n, uint8_t base) {
if (n) {
unsigned char buf[8 * sizeof(long)]; // Enough space for base 2
int8_t i = 0;
while (n) {
buf[i++] = n % base;
n /= base;
}
while (i--)
print((char)(buf[i] + (buf[i] < 10 ? '0' : 'A' - 10)));
}
else
print('0');
}
template<typename Cfg>
void MarlinSerial<Cfg>::printFloat(double number, uint8_t digits) {
// Handle negative numbers
if (number < 0.0) {
print('-');
number = -number;
}
// Round correctly so that print(1.999, 2) prints as "2.00"
double rounding = 0.5;
LOOP_L_N(i, digits) rounding *= 0.1;
number += rounding;
// Extract the integer part of the number and print it
unsigned long int_part = (unsigned long)number;
double remainder = number - (double)int_part;
print(int_part);
// Print the decimal point, but only if there are digits beyond
if (digits) {
print('.');
// Extract digits from the remainder one at a time
while (digits--) {
remainder *= 10.0;
int toPrint = int(remainder);
print(toPrint);
remainder -= toPrint;
}
}
}
// If not using the USB port as serial port
#if SERIAL_PORT >= 0
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>; // Define
MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1; // Instantiate
template class MarlinSerial< MarlinSerialCfg<SERIAL_PORT> >;
MSerialT customizedSerial1(MarlinSerialCfg<SERIAL_PORT>::EMERGENCYPARSER);
#endif
#if defined(SERIAL_PORT_2) && SERIAL_PORT_2 >= 0
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>; // Define
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2; // Instantiate
template class MarlinSerial< MarlinSerialCfg<SERIAL_PORT_2> >;
MSerialT2 customizedSerial2(MarlinSerialCfg<SERIAL_PORT_2>::EMERGENCYPARSER);
#endif
#endif // ARDUINO_ARCH_SAM
+8 -37
View File
@@ -30,11 +30,7 @@
#include <WString.h>
#include "../../inc/MarlinConfigPre.h"
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
#include "../../core/serial_hook.h"
// Define constants and variables for buffering incoming serial data. We're
// using a ring buffer (I think), in which rx_buffer_head is the index of the
@@ -119,42 +115,15 @@ public:
static int read();
static void flush();
static ring_buffer_pos_t available();
static void write(const uint8_t c);
static size_t write(const uint8_t c);
static void flushTX();
static inline bool emergency_parser_enabled() { return Cfg::EMERGENCYPARSER; }
FORCE_INLINE static uint8_t dropped() { return Cfg::DROPPED_RX ? rx_dropped_bytes : 0; }
FORCE_INLINE static uint8_t buffer_overruns() { return Cfg::RX_OVERRUNS ? rx_buffer_overruns : 0; }
FORCE_INLINE static uint8_t framing_errors() { return Cfg::RX_FRAMING_ERRORS ? rx_framing_errors : 0; }
FORCE_INLINE static ring_buffer_pos_t rxMaxEnqueued() { return Cfg::MAX_RX_QUEUED ? rx_max_enqueued : 0; }
FORCE_INLINE static void write(const char* str) { while (*str) write(*str++); }
FORCE_INLINE static void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
FORCE_INLINE static void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
FORCE_INLINE static void print(const char* str) { write(str); }
static void print(char, int = 0);
static void print(unsigned char, int = 0);
static void print(int, int = DEC);
static void print(unsigned int, int = DEC);
static void print(long, int = DEC);
static void print(unsigned long, int = DEC);
static void print(double, int = 2);
static void println(const String& s);
static void println(const char[]);
static void println(char, int = 0);
static void println(unsigned char, int = 0);
static void println(int, int = DEC);
static void println(unsigned int, int = DEC);
static void println(long, int = DEC);
static void println(unsigned long, int = DEC);
static void println(double, int = 2);
static void println();
operator bool() { return true; }
private:
static void printNumber(unsigned long, const uint8_t);
static void printFloat(double, uint8_t);
};
// Serial port configuration
@@ -172,9 +141,11 @@ struct MarlinSerialCfg {
};
#if SERIAL_PORT >= 0
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
typedef Serial0Type< MarlinSerial< MarlinSerialCfg<SERIAL_PORT> > > MSerialT;
extern MSerialT customizedSerial1;
#endif
#if defined(SERIAL_PORT_2) && SERIAL_PORT_2 >= 0
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
typedef Serial0Type< MarlinSerial< MarlinSerialCfg<SERIAL_PORT_2> > > MSerialT2;
extern MSerialT2 customizedSerial2;
#endif
+8 -158
View File
@@ -33,10 +33,6 @@
#include "MarlinSerialUSB.h"
#if ENABLED(EMERGENCY_PARSER)
#include "../../feature/e_parser.h"
#endif
// Imports from Atmel USB Stack/CDC implementation
extern "C" {
bool usb_task_cdc_isenabled();
@@ -50,10 +46,6 @@ extern "C" {
// Pending character
static int pending_char = -1;
#if ENABLED(EMERGENCY_PARSER)
static EmergencyParser::State emergency_state; // = EP_RESET
#endif
// Public Methods
void MarlinSerialUSB::begin(const long) {}
@@ -73,7 +65,7 @@ int MarlinSerialUSB::peek() {
pending_char = udi_cdc_getc();
TERN_(EMERGENCY_PARSER, emergency_parser.update(emergency_state, (char)pending_char));
TERN_(EMERGENCY_PARSER, emergency_parser.update(static_cast<MSerialT*>(this)->emergency_state, (char)pending_char));
return pending_char;
}
@@ -95,7 +87,7 @@ int MarlinSerialUSB::read() {
int c = udi_cdc_getc();
TERN_(EMERGENCY_PARSER, emergency_parser.update(emergency_state, (char)c));
TERN_(EMERGENCY_PARSER, emergency_parser.update(static_cast<MSerialT*>(this)->emergency_state, (char)c));
return c;
}
@@ -109,15 +101,14 @@ bool MarlinSerialUSB::available() {
}
void MarlinSerialUSB::flush() { }
void MarlinSerialUSB::flushTX() { }
void MarlinSerialUSB::write(const uint8_t c) {
size_t MarlinSerialUSB::write(const uint8_t c) {
/* Do not even bother sending anything if USB CDC is not enumerated
or not configured on the PC side or there is no program on the PC
listening to our messages */
if (!usb_task_cdc_isenabled() || !usb_task_cdc_dtr_active())
return;
return 0;
/* Wait until the PC has read the pending to be sent data */
while (usb_task_cdc_isenabled() &&
@@ -129,161 +120,20 @@ void MarlinSerialUSB::write(const uint8_t c) {
or not configured on the PC side or there is no program on the PC
listening to our messages at this point */
if (!usb_task_cdc_isenabled() || !usb_task_cdc_dtr_active())
return;
return 0;
// Fifo full
// udi_cdc_signal_overrun();
udi_cdc_putc(c);
}
/**
* Imports from print.h
*/
void MarlinSerialUSB::print(char c, int base) {
print((long)c, base);
}
void MarlinSerialUSB::print(unsigned char b, int base) {
print((unsigned long)b, base);
}
void MarlinSerialUSB::print(int n, int base) {
print((long)n, base);
}
void MarlinSerialUSB::print(unsigned int n, int base) {
print((unsigned long)n, base);
}
void MarlinSerialUSB::print(long n, int base) {
if (base == 0)
write(n);
else if (base == 10) {
if (n < 0) {
print('-');
n = -n;
}
printNumber(n, 10);
}
else
printNumber(n, base);
}
void MarlinSerialUSB::print(unsigned long n, int base) {
if (base == 0) write(n);
else printNumber(n, base);
}
void MarlinSerialUSB::print(double n, int digits) {
printFloat(n, digits);
}
void MarlinSerialUSB::println() {
print('\r');
print('\n');
}
void MarlinSerialUSB::println(const String& s) {
print(s);
println();
}
void MarlinSerialUSB::println(const char c[]) {
print(c);
println();
}
void MarlinSerialUSB::println(char c, int base) {
print(c, base);
println();
}
void MarlinSerialUSB::println(unsigned char b, int base) {
print(b, base);
println();
}
void MarlinSerialUSB::println(int n, int base) {
print(n, base);
println();
}
void MarlinSerialUSB::println(unsigned int n, int base) {
print(n, base);
println();
}
void MarlinSerialUSB::println(long n, int base) {
print(n, base);
println();
}
void MarlinSerialUSB::println(unsigned long n, int base) {
print(n, base);
println();
}
void MarlinSerialUSB::println(double n, int digits) {
print(n, digits);
println();
}
// Private Methods
void MarlinSerialUSB::printNumber(unsigned long n, uint8_t base) {
if (n) {
unsigned char buf[8 * sizeof(long)]; // Enough space for base 2
int8_t i = 0;
while (n) {
buf[i++] = n % base;
n /= base;
}
while (i--)
print((char)(buf[i] + (buf[i] < 10 ? '0' : 'A' - 10)));
}
else
print('0');
}
void MarlinSerialUSB::printFloat(double number, uint8_t digits) {
// Handle negative numbers
if (number < 0.0) {
print('-');
number = -number;
}
// Round correctly so that print(1.999, 2) prints as "2.00"
double rounding = 0.5;
LOOP_L_N(i, digits)
rounding *= 0.1;
number += rounding;
// Extract the integer part of the number and print it
unsigned long int_part = (unsigned long)number;
double remainder = number - (double)int_part;
print(int_part);
// Print the decimal point, but only if there are digits beyond
if (digits) {
print('.');
// Extract digits from the remainder one at a time
while (digits--) {
remainder *= 10.0;
int toPrint = int(remainder);
print(toPrint);
remainder -= toPrint;
}
}
return 1;
}
// Preinstantiate
#if SERIAL_PORT == -1
MarlinSerialUSB customizedSerial1;
MSerialT customizedSerial1(TERN0(EMERGENCY_PARSER, true));
#endif
#if SERIAL_PORT_2 == -1
MarlinSerialUSB customizedSerial2;
MSerialT customizedSerial2(TERN0(EMERGENCY_PARSER, true));
#endif
#endif // HAS_USB_SERIAL
+14 -50
View File
@@ -27,73 +27,37 @@
*/
#include "../../inc/MarlinConfig.h"
#if HAS_USB_SERIAL
#include <WString.h>
#include "../../core/serial_hook.h"
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
class MarlinSerialUSB {
public:
MarlinSerialUSB() {};
static void begin(const long);
static void end();
static int peek();
static int read();
static void flush();
static void flushTX();
static bool available();
static void write(const uint8_t c);
struct MarlinSerialUSB {
void begin(const long);
void end();
int peek();
int read();
void flush();
bool available();
size_t write(const uint8_t c);
#if ENABLED(SERIAL_STATS_DROPPED_RX)
FORCE_INLINE static uint32_t dropped() { return 0; }
FORCE_INLINE uint32_t dropped() { return 0; }
#endif
#if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
FORCE_INLINE static int rxMaxEnqueued() { return 0; }
FORCE_INLINE int rxMaxEnqueued() { return 0; }
#endif
FORCE_INLINE static void write(const char* str) { while (*str) write(*str++); }
FORCE_INLINE static void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
FORCE_INLINE static void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
FORCE_INLINE static void print(const char* str) { write(str); }
static void print(char, int = 0);
static void print(unsigned char, int = 0);
static void print(int, int = DEC);
static void print(unsigned int, int = DEC);
static void print(long, int = DEC);
static void print(unsigned long, int = DEC);
static void print(double, int = 2);
static void println(const String& s);
static void println(const char[]);
static void println(char, int = 0);
static void println(unsigned char, int = 0);
static void println(int, int = DEC);
static void println(unsigned int, int = DEC);
static void println(long, int = DEC);
static void println(unsigned long, int = DEC);
static void println(double, int = 2);
static void println();
operator bool() { return true; }
private:
static void printNumber(unsigned long, const uint8_t);
static void printFloat(double, uint8_t);
};
typedef Serial0Type<MarlinSerialUSB> MSerialT;
#if SERIAL_PORT == -1
extern MarlinSerialUSB customizedSerial1;
extern MSerialT customizedSerial1;
#endif
#if SERIAL_PORT_2 == -1
extern MarlinSerialUSB customizedSerial2;
extern MSerialT customizedSerial2;
#endif
#endif // HAS_USB_SERIAL
@@ -52,25 +52,23 @@
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef __SAM3X8E__
#include "../../../inc/MarlinConfigPre.h"
#if HAS_GRAPHICAL_LCD
#if HAS_MARLINUI_U8GLIB
#include <U8glib.h>
#include "../../../MarlinCore.h"
void spiBegin();
void spiInit(uint8_t spiRate);
void spiSend(uint8_t b);
void spiSend(const uint8_t* buf, size_t n);
#ifndef LCD_SPI_SPEED
#define LCD_SPI_SPEED SPI_QUARTER_SPEED
#endif
#include "../../shared/Marduino.h"
#include "../../shared/HAL_SPI.h"
#include "../fastio.h"
void u8g_SetPIOutput_DUE_hw_spi(u8g_t *u8g, uint8_t pin_index) {
@@ -101,11 +99,7 @@ uint8_t u8g_com_HAL_DUE_shared_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_va
spiBegin();
#ifndef SPI_SPEED
#define SPI_SPEED SPI_FULL_SPEED // use same SPI speed as SD card
#endif
spiInit(2);
spiInit(LCD_SPI_SPEED);
break;
case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */
@@ -145,6 +139,6 @@ uint8_t u8g_com_HAL_DUE_shared_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_va
return 1;
}
#endif // HAS_GRAPHICAL_LCD
#endif // HAS_MARLINUI_U8GLIB
#endif //__SAM3X8E__
#endif // __SAM3X8E__
@@ -59,6 +59,7 @@
#if ENABLED(U8GLIB_ST7920)
#include "../../../inc/MarlinConfig.h"
#include "../../shared/Delay.h"
#include <U8glib.h>
@@ -145,7 +146,7 @@ uint8_t u8g_com_HAL_DUE_ST7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_va
}
#if ENABLED(LIGHTWEIGHT_UI)
#include "../../../lcd/ultralcd.h"
#include "../../../lcd/marlinui.h"
#include "../../shared/HAL_ST7920.h"
#define ST7920_CS_PIN LCD_PINS_RS
@@ -57,10 +57,7 @@
#include "../../../inc/MarlinConfigPre.h"
#if HAS_GRAPHICAL_LCD && DISABLED(U8GLIB_ST7920)
#undef SPI_SPEED
#define SPI_SPEED 2 // About 2 MHz
#if HAS_MARLINUI_U8GLIB && DISABLED(U8GLIB_ST7920)
#include "u8g_com_HAL_DUE_sw_spi_shared.h"
@@ -144,5 +141,5 @@ uint8_t u8g_com_HAL_DUE_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void
return 1;
}
#endif // HAS_GRAPHICAL_LCD && !U8GLIB_ST7920
#endif // HAS_MARLINUI_U8GLIB && !U8GLIB_ST7920
#endif // ARDUINO_ARCH_SAM
@@ -57,8 +57,9 @@
#include "../../../inc/MarlinConfigPre.h"
#if HAS_GRAPHICAL_LCD
#if HAS_MARLINUI_U8GLIB
#include "../../../inc/MarlinConfig.h"
#include "../../shared/Delay.h"
#include <U8glib.h>
@@ -108,5 +109,5 @@ void u8g_spiSend_sw_DUE_mode_3(uint8_t val) { // 3.5MHz
}
}
#endif // HAS_GRAPHICAL_LCD
#endif // HAS_MARLINUI_U8GLIB
#endif // ARDUINO_ARCH_SAM
+2 -3
View File
@@ -53,7 +53,6 @@
* per page. We can't emulate EE endurance with FLASH for all
* bytes, but we can emulate endurance for a given percent of
* bytes.
*
*/
//#define EE_EMU_DEBUG
@@ -61,7 +60,7 @@
#define EEPROMSize 4096
#define PagesPerGroup 128
#define GroupCount 2
#define PageSize 256u
#define PageSize 256U
/* Flash storage */
typedef struct FLASH_SECTOR {
@@ -997,7 +996,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return false;
}
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
do {
uint8_t c = ee_Read(uint32_t(pos));
if (writing) *value = c;
+1 -1
View File
@@ -62,7 +62,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return false;
}
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
do {
uint8_t c = eeprom_read_byte((uint8_t*)pos);
if (writing) *value = c;
+5 -2
View File
@@ -50,7 +50,7 @@
#define PWM_PIN(P) WITHIN(P, 2, 13)
#ifndef MASK
#define MASK(PIN) (1 << PIN)
#define MASK(PIN) _BV(PIN)
#endif
/**
@@ -163,6 +163,9 @@
#define SET_INPUT(IO) _SET_INPUT(IO)
// Set pin as input with pullup (wrapper)
#define SET_INPUT_PULLUP(IO) do{ _SET_INPUT(IO); _PULLUP(IO, HIGH); }while(0)
// Set pin as input with pulldown (substitution)
#define SET_INPUT_PULLDOWN SET_INPUT
// Set pin as output (wrapper) - reads the pin and sets the output to that value
#define SET_OUTPUT(IO) _SET_OUTPUT(IO)
// Set pin as PWM
@@ -477,7 +480,7 @@
#define DIO91_PIN 15
#define DIO91_WPORT PIOB
#if ARDUINO_SAM_ARCHIM
#ifdef ARDUINO_SAM_ARCHIM
#define DIO92_PIN 11
#define DIO92_WPORT PIOC
+1 -1
View File
@@ -154,7 +154,7 @@ void Stepper::digipot_init() {
NVIC_SetPriority(PWM_IRQn, NVIC_EncodePriority(0, 10, 0)); // normal priority for PWM module (can stand some jitter on the Vref signals)
}
void Stepper::digipot_current(const uint8_t driver, const int16_t current) {
void Stepper::set_digipot_current(const uint8_t driver, const int16_t current) {
if (!(PWM->PWM_CH_NUM[0].PWM_CPRD == PWM_PERIOD_US)) digipot_init(); // Init PWM system if needed
+1 -1
View File
@@ -40,7 +40,7 @@
* Usually the hardware SPI pins are only available to the LCD. This makes the DUE hard SPI used at the same time
* as the TMC2130 soft SPI the most common setup.
*/
#define _IS_HW_SPI(P) (defined(TMC_SW_##P) && (TMC_SW_##P == MOSI_PIN || TMC_SW_##P == MISO_PIN || TMC_SW_##P == SCK_PIN))
#define _IS_HW_SPI(P) (defined(TMC_SW_##P) && (TMC_SW_##P == SD_MOSI_PIN || TMC_SW_##P == SD_MISO_PIN || TMC_SW_##P == SD_SCK_PIN))
#if ENABLED(SDSUPPORT) && HAS_DRIVER(TMC2130)
#if ENABLED(TMC_USE_SW_SPI)
-1
View File
@@ -179,5 +179,4 @@ void pwm_details(int32_t pin) {
* ----------------+--------
* ID | PB11
* VBOF | PB10
*
*/
+10 -10
View File
@@ -43,22 +43,22 @@
#define SPI_PIN 87
#define SPI_CHAN 1
#endif
#define SCK_PIN 76
#define MISO_PIN 74
#define MOSI_PIN 75
#define SD_SCK_PIN 76
#define SD_MISO_PIN 74
#define SD_MOSI_PIN 75
#else
// defaults
#define DUE_SOFTWARE_SPI
#ifndef SCK_PIN
#define SCK_PIN 52
#ifndef SD_SCK_PIN
#define SD_SCK_PIN 52
#endif
#ifndef MISO_PIN
#define MISO_PIN 50
#ifndef SD_MISO_PIN
#define SD_MISO_PIN 50
#endif
#ifndef MOSI_PIN
#define MOSI_PIN 51
#ifndef SD_MOSI_PIN
#define SD_MOSI_PIN 51
#endif
#endif
/* A.28, A.29, B.21, C.26, C.29 */
#define SS_PIN SDSS
#define SD_SS_PIN SDSS
+2 -4
View File
@@ -21,9 +21,7 @@
*/
/**
* Description: HAL for Arduino Due and compatible (SAM3X8E)
*
* For ARDUINO_ARCH_SAM
* HAL Timers for Arduino Due and compatible (SAM3X8E)
*/
#ifdef ARDUINO_ARCH_SAM
@@ -123,7 +121,7 @@ void HAL_timer_disable_interrupt(const uint8_t timer_num) {
// missing from CMSIS: Check if interrupt is enabled or not
static bool NVIC_GetEnabledIRQ(IRQn_Type IRQn) {
return (NVIC->ISER[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) != 0;
return TEST(NVIC->ISER[uint32_t(IRQn) >> 5], uint32_t(IRQn) & 0x1F);
}
bool HAL_timer_interrupt_enabled(const uint8_t timer_num) {
+1 -3
View File
@@ -21,9 +21,7 @@
#pragma once
/**
* HAL for Arduino Due and compatible (SAM3X8E)
*
* For ARDUINO_ARCH_SAM
* HAL Timers for Arduino Due and compatible (SAM3X8E)
*/
#include <stdint.h>
+1 -1
View File
@@ -14,5 +14,5 @@ if current_OS == 'Windows':
# Use bossac.exe on Windows
env.Replace(
UPLOADCMD="bossac --info --unlock --write --verify --reset --erase -U false --boot"
UPLOADCMD="bossac --info --unlock --write --verify --reset --erase -U false --boot $SOURCE"
)
+82 -83
View File
@@ -173,11 +173,11 @@
# define __always_inline __forceinline
#elif (defined __GNUC__)
#ifdef __always_inline
# undef __always_inline
# undef __always_inline
#endif
# define __always_inline inline __attribute__((__always_inline__))
# define __always_inline inline __attribute__((__always_inline__))
#elif (defined __ICCARM__)
# define __always_inline _Pragma("inline=forced")
# define __always_inline _Pragma("inline=forced")
#endif
/**
@@ -188,11 +188,11 @@
* heuristics and not inline the function.
*/
#ifdef __CC_ARM
# define __no_inline __attribute__((noinline))
# define __no_inline __attribute__((noinline))
#elif (defined __GNUC__)
# define __no_inline __attribute__((__noinline__))
# define __no_inline __attribute__((__noinline__))
#elif (defined __ICCARM__)
# define __no_inline _Pragma("inline=never")
# define __no_inline _Pragma("inline=never")
#endif
/*! \brief This macro is used to test fatal errors.
@@ -211,9 +211,9 @@
# else
#undef TEST_SUITE_DEFINE_ASSERT_MACRO
# define Assert(expr) \
{\
if (!(expr)) while (true);\
}
{\
if (!(expr)) while (true);\
}
# endif
#else
# define Assert(expr) ((void) 0)
@@ -609,37 +609,37 @@ typedef struct
# define clz(u) ((u) ? __CLZ(u) : 32)
#else
# define clz(u) (((u) == 0) ? 32 : \
((u) & (1ul << 31)) ? 0 : \
((u) & (1ul << 30)) ? 1 : \
((u) & (1ul << 29)) ? 2 : \
((u) & (1ul << 28)) ? 3 : \
((u) & (1ul << 27)) ? 4 : \
((u) & (1ul << 26)) ? 5 : \
((u) & (1ul << 25)) ? 6 : \
((u) & (1ul << 24)) ? 7 : \
((u) & (1ul << 23)) ? 8 : \
((u) & (1ul << 22)) ? 9 : \
((u) & (1ul << 21)) ? 10 : \
((u) & (1ul << 20)) ? 11 : \
((u) & (1ul << 19)) ? 12 : \
((u) & (1ul << 18)) ? 13 : \
((u) & (1ul << 17)) ? 14 : \
((u) & (1ul << 16)) ? 15 : \
((u) & (1ul << 15)) ? 16 : \
((u) & (1ul << 14)) ? 17 : \
((u) & (1ul << 13)) ? 18 : \
((u) & (1ul << 12)) ? 19 : \
((u) & (1ul << 11)) ? 20 : \
((u) & (1ul << 10)) ? 21 : \
((u) & (1ul << 9)) ? 22 : \
((u) & (1ul << 8)) ? 23 : \
((u) & (1ul << 7)) ? 24 : \
((u) & (1ul << 6)) ? 25 : \
((u) & (1ul << 5)) ? 26 : \
((u) & (1ul << 4)) ? 27 : \
((u) & (1ul << 3)) ? 28 : \
((u) & (1ul << 2)) ? 29 : \
((u) & (1ul << 1)) ? 30 : \
((u) & (1UL << 31)) ? 0 : \
((u) & (1UL << 30)) ? 1 : \
((u) & (1UL << 29)) ? 2 : \
((u) & (1UL << 28)) ? 3 : \
((u) & (1UL << 27)) ? 4 : \
((u) & (1UL << 26)) ? 5 : \
((u) & (1UL << 25)) ? 6 : \
((u) & (1UL << 24)) ? 7 : \
((u) & (1UL << 23)) ? 8 : \
((u) & (1UL << 22)) ? 9 : \
((u) & (1UL << 21)) ? 10 : \
((u) & (1UL << 20)) ? 11 : \
((u) & (1UL << 19)) ? 12 : \
((u) & (1UL << 18)) ? 13 : \
((u) & (1UL << 17)) ? 14 : \
((u) & (1UL << 16)) ? 15 : \
((u) & (1UL << 15)) ? 16 : \
((u) & (1UL << 14)) ? 17 : \
((u) & (1UL << 13)) ? 18 : \
((u) & (1UL << 12)) ? 19 : \
((u) & (1UL << 11)) ? 20 : \
((u) & (1UL << 10)) ? 21 : \
((u) & (1UL << 9)) ? 22 : \
((u) & (1UL << 8)) ? 23 : \
((u) & (1UL << 7)) ? 24 : \
((u) & (1UL << 6)) ? 25 : \
((u) & (1UL << 5)) ? 26 : \
((u) & (1UL << 4)) ? 27 : \
((u) & (1UL << 3)) ? 28 : \
((u) & (1UL << 2)) ? 29 : \
((u) & (1UL << 1)) ? 30 : \
31)
#endif
#endif
@@ -654,38 +654,38 @@ typedef struct
#if (defined __GNUC__) || (defined __CC_ARM)
# define ctz(u) ((u) ? __builtin_ctz(u) : 32)
#else
# define ctz(u) ((u) & (1ul << 0) ? 0 : \
(u) & (1ul << 1) ? 1 : \
(u) & (1ul << 2) ? 2 : \
(u) & (1ul << 3) ? 3 : \
(u) & (1ul << 4) ? 4 : \
(u) & (1ul << 5) ? 5 : \
(u) & (1ul << 6) ? 6 : \
(u) & (1ul << 7) ? 7 : \
(u) & (1ul << 8) ? 8 : \
(u) & (1ul << 9) ? 9 : \
(u) & (1ul << 10) ? 10 : \
(u) & (1ul << 11) ? 11 : \
(u) & (1ul << 12) ? 12 : \
(u) & (1ul << 13) ? 13 : \
(u) & (1ul << 14) ? 14 : \
(u) & (1ul << 15) ? 15 : \
(u) & (1ul << 16) ? 16 : \
(u) & (1ul << 17) ? 17 : \
(u) & (1ul << 18) ? 18 : \
(u) & (1ul << 19) ? 19 : \
(u) & (1ul << 20) ? 20 : \
(u) & (1ul << 21) ? 21 : \
(u) & (1ul << 22) ? 22 : \
(u) & (1ul << 23) ? 23 : \
(u) & (1ul << 24) ? 24 : \
(u) & (1ul << 25) ? 25 : \
(u) & (1ul << 26) ? 26 : \
(u) & (1ul << 27) ? 27 : \
(u) & (1ul << 28) ? 28 : \
(u) & (1ul << 29) ? 29 : \
(u) & (1ul << 30) ? 30 : \
(u) & (1ul << 31) ? 31 : \
# define ctz(u) ((u) & (1UL << 0) ? 0 : \
(u) & (1UL << 1) ? 1 : \
(u) & (1UL << 2) ? 2 : \
(u) & (1UL << 3) ? 3 : \
(u) & (1UL << 4) ? 4 : \
(u) & (1UL << 5) ? 5 : \
(u) & (1UL << 6) ? 6 : \
(u) & (1UL << 7) ? 7 : \
(u) & (1UL << 8) ? 8 : \
(u) & (1UL << 9) ? 9 : \
(u) & (1UL << 10) ? 10 : \
(u) & (1UL << 11) ? 11 : \
(u) & (1UL << 12) ? 12 : \
(u) & (1UL << 13) ? 13 : \
(u) & (1UL << 14) ? 14 : \
(u) & (1UL << 15) ? 15 : \
(u) & (1UL << 16) ? 16 : \
(u) & (1UL << 17) ? 17 : \
(u) & (1UL << 18) ? 18 : \
(u) & (1UL << 19) ? 19 : \
(u) & (1UL << 20) ? 20 : \
(u) & (1UL << 21) ? 21 : \
(u) & (1UL << 22) ? 22 : \
(u) & (1UL << 23) ? 23 : \
(u) & (1UL << 24) ? 24 : \
(u) & (1UL << 25) ? 25 : \
(u) & (1UL << 26) ? 26 : \
(u) & (1UL << 27) ? 27 : \
(u) & (1UL << 28) ? 28 : \
(u) & (1UL << 29) ? 29 : \
(u) & (1UL << 30) ? 30 : \
(u) & (1UL << 31) ? 31 : \
32)
#endif
#endif
@@ -1106,17 +1106,16 @@ static inline uint16_t convert_byte_array_to_16_bit(uint8_t *data)
/* Converts a 8 Byte array into a 32-Bit value */
static inline uint32_t convert_byte_array_to_32_bit(uint8_t *data)
{
union
{
uint32_t u32;
uint8_t u8[8];
}long_addr;
uint8_t index;
for (index = 0; index < 4; index++)
{
long_addr.u8[index] = *data++;
}
return long_addr.u32;
union
{
uint32_t u32;
uint8_t u8[8];
}long_addr;
uint8_t index;
for (index = 0; index < 4; index++) {
long_addr.u8[index] = *data++;
}
return long_addr.u32;
}
/**
+4 -4
View File
@@ -68,7 +68,7 @@ Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
{
char buffer[80];
sprintf_P(buffer, PSTR("SDRD: %d @ 0x%08x\n"), nb_sector, addr);
PORT_REDIRECT(0);
PORT_REDIRECT(SERIAL_PORTMASK(0));
SERIAL_ECHO(buffer);
}
#endif
@@ -84,7 +84,7 @@ Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
card.getSd2Card().readData(sector_buf);
// RAM -> USB
if (!udi_msc_trans_block(true, sector_buf, SD_MMC_BLOCK_SIZE, NULL)) {
if (!udi_msc_trans_block(true, sector_buf, SD_MMC_BLOCK_SIZE, nullptr)) {
card.getSd2Card().readStop();
return CTRL_FAIL;
}
@@ -108,7 +108,7 @@ Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) {
{
char buffer[80];
sprintf_P(buffer, PSTR("SDWR: %d @ 0x%08x\n"), nb_sector, addr);
PORT_REDIRECT(0);
PORT_REDIRECT(SERIAL_PORTMASK(0));
SERIAL_ECHO(buffer);
}
#endif
@@ -120,7 +120,7 @@ Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) {
while (nb_sector--) {
// USB -> RAM
if (!udi_msc_trans_block(false, sector_buf, SD_MMC_BLOCK_SIZE, NULL)) {
if (!udi_msc_trans_block(false, sector_buf, SD_MMC_BLOCK_SIZE, nullptr)) {
card.getSd2Card().writeStop();
return CTRL_FAIL;
}
+1 -1
View File
@@ -36,7 +36,7 @@ void watchdogSetup() {
#if ENABLED(USE_WATCHDOG)
// 4 seconds timeout
uint32_t timeout = 4000;
uint32_t timeout = TERN(WATCHDOG_DURATION_8S, 8000, 4000);
// Calculate timeout value in WDT counter ticks: This assumes
// the slow clock is running at 32.768 kHz watchdog
@@ -24,10 +24,7 @@
#ifdef ARDUINO_ARCH_ESP32
FlushableHardwareSerial::FlushableHardwareSerial(int uart_nr)
: HardwareSerial(uart_nr)
{}
FlushableHardwareSerial flushableSerial(0);
Serial0Type<FlushableHardwareSerial> flushableSerial(false, 0);
#endif // ARDUINO_ARCH_ESP32
@@ -24,14 +24,13 @@
#ifdef ARDUINO_ARCH_ESP32
#include <HardwareSerial.h>
#include "../../core/serial_hook.h"
class FlushableHardwareSerial : public HardwareSerial {
public:
FlushableHardwareSerial(int uart_nr);
inline void flushTX() { /* No need to flush the hardware serial, but defined here for compatibility. */ }
FlushableHardwareSerial(int uart_nr) : HardwareSerial(uart_nr) {}
};
extern FlushableHardwareSerial flushableSerial;
extern Serial0Type<FlushableHardwareSerial> flushableSerial;
#endif // ARDUINO_ARCH_ESP32
+8 -2
View File
@@ -40,6 +40,10 @@
#endif
#endif
#if ENABLED(ESP3D_WIFISUPPORT)
DefaultSerial MSerial(false, Serial2Socket);
#endif
// ------------------------
// Externs
// ------------------------
@@ -86,8 +90,6 @@ volatile int numPWMUsed = 0,
#endif
void HAL_init() { i2s_init(); }
void HAL_init_board() {
#if ENABLED(ESP3D_WIFISUPPORT)
@@ -122,6 +124,10 @@ void HAL_init_board() {
#endif
#endif
// Initialize the i2s peripheral only if the I2S stepper stream is enabled.
// The following initialization is performed after Serial1 and Serial2 are defined as
// their native pins might conflict with the i2s stream even when they are remapped.
TERN_(I2S_STEPPER_STREAM, i2s_init());
}
void HAL_idletask() {
+26 -15
View File
@@ -15,11 +15,12 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* Description: HAL for Espressif ESP32 WiFi
* HAL for Espressif ESP32 WiFi
*/
#define CPU_32_BIT
@@ -54,13 +55,12 @@ extern portMUX_TYPE spinlock;
#if EITHER(WIFISUPPORT, ESP3D_WIFISUPPORT)
#if ENABLED(ESP3D_WIFISUPPORT)
#define MYSERIAL1 Serial2Socket
typedef ForwardSerial0Type< decltype(Serial2Socket) > DefaultSerial;
extern DefaultSerial MSerial;
#define MYSERIAL1 MSerial
#else
#define MYSERIAL1 webSocketSerial
#endif
#define NUM_SERIAL 2
#else
#define NUM_SERIAL 1
#endif
#define CRITICAL_SECTION_START() portENTER_CRITICAL(&spinlock)
@@ -69,10 +69,6 @@ extern portMUX_TYPE spinlock;
#define ENABLE_ISRS() if (spinlock.owner != portMUX_FREE_VAL) portEXIT_CRITICAL(&spinlock)
#define DISABLE_ISRS() portENTER_CRITICAL(&spinlock)
// Fix bug in pgm_read_ptr
#undef pgm_read_ptr
#define pgm_read_ptr(addr) (*(addr))
// ------------------------
// Types
// ------------------------
@@ -92,18 +88,33 @@ extern uint16_t HAL_adc_result;
// Public functions
// ------------------------
//
// Tone
//
void toneInit();
void tone(const pin_t _pin, const unsigned int frequency, const unsigned long duration=0);
void noTone(const pin_t _pin);
// clear reset reason
void HAL_clear_reset_source();
// reset reason
uint8_t HAL_get_reset_source();
inline void HAL_reboot() {} // reboot the board or restart the bootloader
void _delay_ms(int delay);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif
int freeMemory();
#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif
void analogWrite(pin_t pin, int value);
@@ -128,7 +139,7 @@ void HAL_adc_start_conversion(const uint8_t adc_pin);
#define HAL_IDLETASK 1
#define BOARD_INIT() HAL_init_board();
void HAL_idletask();
void HAL_init();
inline void HAL_init() {}
void HAL_init_board();
//
@@ -157,14 +168,14 @@ FORCE_INLINE static void DELAY_CYCLES(uint32_t x) {
if (stop >= start) {
// no overflow, so only loop while in between start and stop:
// 0x00000000 -----------------start****stop-- 0xffffffff
// 0x00000000 -----------------start****stop-- 0xFFFFFFFF
while (ccount >= start && ccount < stop) {
__asm__ __volatile__ ( "rsr %0, ccount" : "=a" (ccount) );
}
}
else {
// stop did overflow, so only loop while outside of stop and start:
// 0x00000000 **stop-------------------start** 0xffffffff
// 0x00000000 **stop-------------------start** 0xFFFFFFFF
while (ccount >= start || ccount < stop) {
__asm__ __volatile__ ( "rsr %0, ccount" : "=a" (ccount) );
}
+3 -3
View File
@@ -53,11 +53,11 @@ static SPISettings spiConfig;
// ------------------------
void spiBegin() {
#if !PIN_EXISTS(SS)
#error "SS_PIN not defined!"
#if !PIN_EXISTS(SD_SS)
#error "SD_SS_PIN not defined!"
#endif
OUT_WRITE(SS_PIN, HIGH);
OUT_WRITE(SD_SS_PIN, HIGH);
}
void spiInit(uint8_t spiRate) {
+1 -1
View File
@@ -30,7 +30,7 @@ class Servo {
MAX_PULSE_WIDTH = 2400, // Longest pulse sent to a servo
TAU_MSEC = 20,
TAU_USEC = (TAU_MSEC * 1000),
MAX_COMPARE = ((1 << 16) - 1), // 65535
MAX_COMPARE = _BV(16) - 1, // 65535
CHANNEL_MAX_NUM = 16;
public:
+59
View File
@@ -0,0 +1,59 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* Copypaste of SAMD51 HAL developed by Giuliano Zaro (AKA GMagician)
*
* 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 <https://www.gnu.org/licenses/>.
*
*/
/**
* Description: Tone function for ESP32
* Derived from https://forum.arduino.cc/index.php?topic=136500.msg2903012#msg2903012
*/
#ifdef ARDUINO_ARCH_ESP32
#include "../../inc/MarlinConfig.h"
#include "HAL.h"
static pin_t tone_pin;
volatile static int32_t toggles;
void tone(const pin_t _pin, const unsigned int frequency, const unsigned long duration) {
tone_pin = _pin;
toggles = 2 * frequency * duration / 1000;
HAL_timer_start(TONE_TIMER_NUM, 2 * frequency);
}
void noTone(const pin_t _pin) {
HAL_timer_disable_interrupt(TONE_TIMER_NUM);
WRITE(_pin, LOW);
}
HAL_TONE_TIMER_ISR() {
HAL_timer_isr_prologue(TONE_TIMER_NUM);
if (toggles) {
toggles--;
TOGGLE(tone_pin);
}
else noTone(tone_pin); // turn off interrupt
}
#endif // ARDUINO_ARCH_ESP32
+3 -8
View File
@@ -29,7 +29,7 @@
#include "wifi.h"
#include <ESPAsyncWebServer.h>
WebSocketSerial webSocketSerial;
MSerialT webSocketSerial(false);
AsyncWebSocket ws("/ws"); // TODO Move inside the class.
// RingBuffer impl
@@ -86,7 +86,7 @@ int RingBuffer::read() {
ring_buffer_pos_t RingBuffer::read(uint8_t *buffer) {
ring_buffer_pos_t len = available();
for(ring_buffer_pos_t i = 0; read_index != write_index; i++) {
for (ring_buffer_pos_t i = 0; read_index != write_index; i++) {
buffer[i] = data[read_index];
read_index = NEXT_INDEX(read_index, size);
}
@@ -139,15 +139,10 @@ size_t WebSocketSerial::write(const uint8_t c) {
size_t WebSocketSerial::write(const uint8_t* buffer, size_t size) {
size_t written = 0;
for(size_t i = 0; i < size; i++) {
for (size_t i = 0; i < size; i++)
written += write(buffer[i]);
}
return written;
}
void WebSocketSerial::flushTX() {
// No need to do anything as there's no benefit to sending partial lines over the websocket connection.
}
#endif // WIFISUPPORT
#endif // ARDUINO_ARCH_ESP32
+3 -4
View File
@@ -22,6 +22,7 @@
#pragma once
#include "../../inc/MarlinConfig.h"
#include "../../core/serial_hook.h"
#include <Stream.h>
@@ -68,12 +69,9 @@ public:
int peek();
int read();
void flush();
void flushTX();
size_t write(const uint8_t c);
size_t write(const uint8_t* buffer, size_t size);
operator bool() { return true; }
#if ENABLED(SERIAL_STATS_DROPPED_RX)
FORCE_INLINE uint32_t dropped() { return 0; }
#endif
@@ -83,4 +81,5 @@ public:
#endif
};
extern WebSocketSerial webSocketSerial;
typedef Serial0Type<WebSocketSerial> MSerialT;
extern MSerialT webSocketSerial;
+1 -1
View File
@@ -44,7 +44,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return false;
}
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
for (size_t i = 0; i < size; i++) {
uint8_t c = EEPROM.read(pos++);
if (writing) value[i] = c;
+3
View File
@@ -52,6 +52,9 @@
// Set pin as input with pullup wrapper
#define SET_INPUT_PULLUP(IO) do{ _SET_INPUT(IO); _PULLUP(IO, HIGH); }while(0)
// Set pin as input with pulldown (substitution)
#define SET_INPUT_PULLDOWN SET_INPUT
// Set pin as output wrapper
#define SET_OUTPUT(IO) do{ _SET_OUTPUT(IO); }while(0)
+2 -2
View File
@@ -184,7 +184,7 @@ int i2s_init() {
// Allocate the array of pointers to the buffers
dma.buffers = (uint32_t **)malloc(sizeof(uint32_t*) * DMA_BUF_COUNT);
if (dma.buffers == nullptr) return -1;
if (!dma.buffers) return -1;
// Allocate each buffer that can be used by the DMA controller
for (int buf_idx = 0; buf_idx < DMA_BUF_COUNT; buf_idx++) {
@@ -194,7 +194,7 @@ int i2s_init() {
// Allocate the array of DMA descriptors
dma.desc = (lldesc_t**) malloc(sizeof(lldesc_t*) * DMA_BUF_COUNT);
if (dma.desc == nullptr) return -1;
if (!dma.desc) return -1;
// Allocate each DMA descriptor that will be used by the DMA controller
for (int buf_idx = 0; buf_idx < DMA_BUF_COUNT; buf_idx++) {
+1
View File
@@ -15,6 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
+4 -4
View File
@@ -18,7 +18,7 @@
*/
#pragma once
#define SS_PIN SDSS
#define SCK_PIN 18
#define MISO_PIN 19
#define MOSI_PIN 23
#define SD_SS_PIN SDSS
#define SD_SCK_PIN 18
#define SD_MISO_PIN 19
#define SD_MOSI_PIN 23
+1 -1
View File
@@ -45,7 +45,7 @@ const tTimerConfig TimerConfig [NUM_HARDWARE_TIMERS] = {
{ TIMER_GROUP_0, TIMER_0, STEPPER_TIMER_PRESCALE, stepTC_Handler }, // 0 - Stepper
{ TIMER_GROUP_0, TIMER_1, TEMP_TIMER_PRESCALE, tempTC_Handler }, // 1 - Temperature
{ TIMER_GROUP_1, TIMER_0, PWM_TIMER_PRESCALE, pwmTC_Handler }, // 2 - PWM
{ TIMER_GROUP_1, TIMER_1, 1, nullptr }, // 3
{ TIMER_GROUP_1, TIMER_1, TONE_TIMER_PRESCALE, toneTC_Handler }, // 3 - Tone
};
// ------------------------
+14 -9
View File
@@ -24,15 +24,9 @@
#include <stdint.h>
#include <driver/timer.h>
// Includes needed to get I2S_STEPPER_STREAM. Note that pins.h
// is included in case this header is being included early.
#include "../../inc/MarlinConfig.h"
#include "../../pins/pins.h"
// ------------------------
// Defines
// ------------------------
//
#define FORCE_INLINE __attribute__((always_inline)) inline
typedef uint64_t hal_timer_t;
@@ -50,6 +44,9 @@ typedef uint64_t hal_timer_t;
#ifndef PWM_TIMER_NUM
#define PWM_TIMER_NUM 2 // index of timer to use for PWM outputs
#endif
#ifndef TONE_TIMER_NUM
#define TONE_TIMER_NUM 3 // index of timer for beeper tones
#endif
#define HAL_TIMER_RATE APB_CLK_FREQ // frequency of timer peripherals
@@ -65,6 +62,8 @@ typedef uint64_t hal_timer_t;
#define STEP_TIMER_MIN_INTERVAL 8 // minimum time in µs between stepper interrupts
#define TONE_TIMER_PRESCALE 1000 // Arbitrary value, no idea what i'm doing here
#define TEMP_TIMER_PRESCALE 1000 // prescaler for setting Temp timer, 72Khz
#define TEMP_TIMER_FREQUENCY 1000 // temperature interrupt frequency
@@ -96,10 +95,16 @@ typedef uint64_t hal_timer_t;
#ifndef HAL_PWM_TIMER_ISR
#define HAL_PWM_TIMER_ISR() extern "C" void pwmTC_Handler()
#endif
#ifndef HAL_TONE_TIMER_ISR
#define HAL_TONE_TIMER_ISR() extern "C" void toneTC_Handler()
#endif
extern "C" void tempTC_Handler();
extern "C" void stepTC_Handler();
extern "C" void pwmTC_Handler();
extern "C" {
void tempTC_Handler();
void stepTC_Handler();
void pwmTC_Handler();
void toneTC_Handler();
}
// ------------------------
// Types
+2
View File
@@ -25,6 +25,8 @@
#if ENABLED(USE_WATCHDOG)
#define WDT_TIMEOUT_US TERN(WATCHDOG_DURATION_8S, 8000000, 4000000) // 4 or 8 second timeout
#include "watchdog.h"
void watchdogSetup() {
+11 -1
View File
@@ -23,12 +23,22 @@
#include "platforms.h"
#ifndef GCC_VERSION
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
#include HAL_PATH(.,HAL.h)
#ifdef SERIAL_PORT_2
#define NUM_SERIAL 2
#else
#define NUM_SERIAL 1
#endif
#define HAL_ADC_RANGE _BV(HAL_ADC_RESOLUTION)
#ifndef I2C_ADDRESS
#define I2C_ADDRESS(A) (A)
#define I2C_ADDRESS(A) uint8_t(A)
#endif
// Needed for AVR sprintf_P PROGMEM extension
+7 -12
View File
@@ -24,21 +24,16 @@
#include "../../inc/MarlinConfig.h"
#include "../shared/Delay.h"
HalSerial usb_serial;
MSerialT usb_serial(TERN0(EMERGENCY_PARSER, true));
// U8glib required functions
extern "C" void u8g_xMicroDelay(uint16_t val) {
DELAY_US(val);
}
extern "C" void u8g_MicroDelay() {
u8g_xMicroDelay(1);
}
extern "C" void u8g_10MicroDelay() {
u8g_xMicroDelay(10);
}
extern "C" void u8g_Delay(uint16_t val) {
delay(val);
extern "C" {
void u8g_xMicroDelay(uint16_t val) { DELAY_US(val); }
void u8g_MicroDelay() { u8g_xMicroDelay(1); }
void u8g_10MicroDelay() { u8g_xMicroDelay(10); }
void u8g_Delay(uint16_t val) { delay(val); }
}
//************************//
// return free heap space
+13 -11
View File
@@ -23,7 +23,7 @@
#define CPU_32_BIT
#define F_CPU 100000000
#define F_CPU 100000000UL
#define SystemCoreClock F_CPU
#include <iostream>
#include <stdint.h>
@@ -60,9 +60,8 @@ uint8_t _getc();
#define SHARED_SERVOS HAS_SERVOS
extern HalSerial usb_serial;
extern MSerialT usb_serial;
#define MYSERIAL0 usb_serial
#define NUM_SERIAL 1
#define ST7920_DELAY_1 DELAY_NS(600)
#define ST7920_DELAY_2 DELAY_NS(750)
@@ -80,10 +79,16 @@ extern HalSerial usb_serial;
inline void HAL_init() {}
// Utility functions
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif
int freeMemory();
#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif
// ADC
#define HAL_ADC_VREF 5.0
@@ -102,12 +107,9 @@ uint16_t HAL_adc_get_result();
inline void HAL_clear_reset_source(void) {}
inline uint8_t HAL_get_reset_source(void) { return RST_POWER_ON; }
inline void HAL_reboot() {} // reboot the board or restart the bootloader
/* ---------------- Delay in cycles */
FORCE_INLINE static void DELAY_CYCLES(uint64_t x) {
Clock::delayCycles(x);
}
// Add strcmp_P if missing
#ifndef strcmp_P
#define strcmp_P(a, b) strcmp((a), (b))
#endif
+3 -3
View File
@@ -40,7 +40,7 @@ size_t PersistentStore::capacity() { return MARLIN_EEPROM_SIZE; }
bool PersistentStore::access_start() {
const char eeprom_erase_value = 0xFF;
FILE * eeprom_file = fopen(filename, "rb");
if (eeprom_file == nullptr) return false;
if (!eeprom_file) return false;
fseek(eeprom_file, 0L, SEEK_END);
std::size_t file_size = ftell(eeprom_file);
@@ -59,7 +59,7 @@ bool PersistentStore::access_start() {
bool PersistentStore::access_finish() {
FILE * eeprom_file = fopen(filename, "wb");
if (eeprom_file == nullptr) return false;
if (!eeprom_file) return false;
fwrite(buffer, sizeof(uint8_t), sizeof(buffer), eeprom_file);
fclose(eeprom_file);
return true;
@@ -78,7 +78,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return (bytes_written != size); // return true for any error
}
bool PersistentStore::read_data(int &pos, uint8_t* value, const size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, const size_t size, uint16_t *crc, const bool writing/*=true*/) {
std::size_t bytes_read = 0;
if (writing) {
for (std::size_t i = 0; i < size; i++) {
+6 -6
View File
@@ -86,10 +86,10 @@ public:
GpioEvent::Type evt_type = value > 1 ? GpioEvent::SET_VALUE : value > pin_map[pin].value ? GpioEvent::RISE : value < pin_map[pin].value ? GpioEvent::FALL : GpioEvent::NOP;
pin_map[pin].value = value;
GpioEvent evt(Clock::nanos(), pin, evt_type);
if (pin_map[pin].cb != nullptr) {
if (pin_map[pin].cb) {
pin_map[pin].cb->interrupt(evt);
}
if (Gpio::logger != nullptr) Gpio::logger->log(evt);
if (Gpio::logger) Gpio::logger->log(evt);
}
static uint16_t get(pin_type pin) {
@@ -105,8 +105,8 @@ public:
if (!valid_pin(pin)) return;
pin_map[pin].mode = value;
GpioEvent evt(Clock::nanos(), pin, GpioEvent::Type::SETM);
if (pin_map[pin].cb != nullptr) pin_map[pin].cb->interrupt(evt);
if (Gpio::logger != nullptr) Gpio::logger->log(evt);
if (pin_map[pin].cb) pin_map[pin].cb->interrupt(evt);
if (Gpio::logger) Gpio::logger->log(evt);
}
static uint8_t getMode(pin_type pin) {
@@ -118,8 +118,8 @@ public:
if (!valid_pin(pin)) return;
pin_map[pin].dir = value;
GpioEvent evt(Clock::nanos(), pin, GpioEvent::Type::SETD);
if (pin_map[pin].cb != nullptr) pin_map[pin].cb->interrupt(evt);
if (Gpio::logger != nullptr) Gpio::logger->log(evt);
if (pin_map[pin].cb) pin_map[pin].cb->interrupt(evt);
if (Gpio::logger) Gpio::logger->log(evt);
}
static uint8_t getDir(pin_type pin) {
+5 -25
View File
@@ -67,34 +67,14 @@ void cli(); // Disable
void sei(); // Enable
void attachInterrupt(uint32_t pin, void (*callback)(), uint32_t mode);
void detachInterrupt(uint32_t pin);
extern "C" void GpioEnableInt(uint32_t port, uint32_t pin, uint32_t mode);
extern "C" void GpioDisableInt(uint32_t port, uint32_t pin);
// Program Memory
#define pgm_read_ptr(addr) (*((void**)(addr)))
#define pgm_read_byte_near(addr) (*((uint8_t*)(addr)))
#define pgm_read_float_near(addr) (*((float*)(addr)))
#define pgm_read_word_near(addr) (*((uint16_t*)(addr)))
#define pgm_read_dword_near(addr) (*((uint32_t*)(addr)))
#define pgm_read_byte(addr) pgm_read_byte_near(addr)
#define pgm_read_float(addr) pgm_read_float_near(addr)
#define pgm_read_word(addr) pgm_read_word_near(addr)
#define pgm_read_dword(addr) pgm_read_dword_near(addr)
using std::memcpy;
#define memcpy_P memcpy
#define sprintf_P sprintf
#define strstr_P strstr
#define strncpy_P strncpy
#define vsnprintf_P vsnprintf
#define strcpy_P strcpy
#define snprintf_P snprintf
#define strlen_P strlen
extern "C" {
void GpioEnableInt(uint32_t port, uint32_t pin, uint32_t mode);
void GpioDisableInt(uint32_t port, uint32_t pin);
}
// Time functions
extern "C" {
void delay(const int milis);
}
extern "C" void delay(const int milis);
void _delay_ms(const int delay);
void delayMicroseconds(unsigned long);
uint32_t millis();
+6 -96
View File
@@ -25,6 +25,7 @@
#if ENABLED(EMERGENCY_PARSER)
#include "../../../feature/e_parser.h"
#endif
#include "../../../core/serial_hook.h"
#include <stdarg.h>
#include <stdio.h>
@@ -33,7 +34,6 @@
* Generic RingBuffer
* T type of the buffer array
* S size of the buffer (must be power of 2)
*
*/
template <typename T, uint32_t S> class RingBuffer {
public:
@@ -74,18 +74,11 @@ private:
volatile uint32_t index_read;
};
class HalSerial {
public:
#if ENABLED(EMERGENCY_PARSER)
EmergencyParser::State emergency_state;
#endif
struct HalSerial {
HalSerial() { host_connected = true; }
void begin(int32_t) {}
void end() {}
void end() {}
int peek() {
uint8_t value;
@@ -100,7 +93,7 @@ public:
return transmit_buffer.write(c);
}
operator bool() { return host_connected; }
bool connected() { return host_connected; }
uint16_t available() {
return (uint16_t)receive_buffer.available();
@@ -117,92 +110,9 @@ public:
while (transmit_buffer.available()) { /* nada */ }
}
void printf(const char *format, ...) {
static char buffer[256];
va_list vArgs;
va_start(vArgs, format);
int length = vsnprintf((char *) buffer, 256, (char const *) format, vArgs);
va_end(vArgs);
if (length > 0 && length < 256) {
if (host_connected) {
for (int i = 0; i < length;) {
if (transmit_buffer.write(buffer[i])) {
++i;
}
}
}
}
}
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
void print_bin(uint32_t value, uint8_t num_digits) {
uint32_t mask = 1 << (num_digits -1);
for (uint8_t i = 0; i < num_digits; i++) {
if (!(i % 4) && i) write(' ');
if (!(i % 16) && i) write(' ');
if (value & mask) write('1');
else write('0');
value <<= 1;
}
}
void print(const char value[]) { printf("%s" , value); }
void print(char value, int nbase = 0) {
if (nbase == BIN) print_bin(value, 8);
else if (nbase == OCT) printf("%3o", value);
else if (nbase == HEX) printf("%2X", value);
else if (nbase == DEC ) printf("%d", value);
else printf("%c" , value);
}
void print(unsigned char value, int nbase = 0) {
if (nbase == BIN) print_bin(value, 8);
else if (nbase == OCT) printf("%3o", value);
else if (nbase == HEX) printf("%2X", value);
else printf("%u" , value);
}
void print(int value, int nbase = 0) {
if (nbase == BIN) print_bin(value, 16);
else if (nbase == OCT) printf("%6o", value);
else if (nbase == HEX) printf("%4X", value);
else printf("%d", value);
}
void print(unsigned int value, int nbase = 0) {
if (nbase == BIN) print_bin(value, 16);
else if (nbase == OCT) printf("%6o", value);
else if (nbase == HEX) printf("%4X", value);
else printf("%u" , value);
}
void print(long value, int nbase = 0) {
if (nbase == BIN) print_bin(value, 32);
else if (nbase == OCT) printf("%11o", value);
else if (nbase == HEX) printf("%8X", value);
else printf("%ld" , value);
}
void print(unsigned long value, int nbase = 0) {
if (nbase == BIN) print_bin(value, 32);
else if (nbase == OCT) printf("%11o", value);
else if (nbase == HEX) printf("%8X", value);
else printf("%lu" , value);
}
void print(float value, int round = 6) { printf("%f" , value); }
void print(double value, int round = 6) { printf("%f" , value); }
void println(const char value[]) { printf("%s\n" , value); }
void println(char value, int nbase = 0) { print(value, nbase); println(); }
void println(unsigned char value, int nbase = 0) { print(value, nbase); println(); }
void println(int value, int nbase = 0) { print(value, nbase); println(); }
void println(unsigned int value, int nbase = 0) { print(value, nbase); println(); }
void println(long value, int nbase = 0) { print(value, nbase); println(); }
void println(unsigned long value, int nbase = 0) { print(value, nbase); println(); }
void println(float value, int round = 6) { printf("%f\n" , value); }
void println(double value, int round = 6) { printf("%f\n" , value); }
void println() { print('\n'); }
volatile RingBuffer<uint8_t, 128> receive_buffer;
volatile RingBuffer<uint8_t, 128> transmit_buffer;
volatile bool host_connected;
};
typedef Serial0Type<HalSerial> MSerialT;
+12 -14
View File
@@ -1,6 +1,5 @@
/**
* Marlin 3D Printer Firmware
*
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* This program is free software: you can redistribute it and/or modify
@@ -19,22 +18,23 @@
*/
#ifdef __PLAT_LINUX__
extern void setup();
extern void loop();
#include <thread>
#include <iostream>
#include <fstream>
//#define GPIO_LOGGING // Full GPIO and Positional Logging
#include "../../inc/MarlinConfig.h"
#include <stdio.h>
#include <stdarg.h>
#include "../shared/Delay.h"
#include "hardware/IOLoggerCSV.h"
#include "hardware/Heater.h"
#include "hardware/LinearAxis.h"
#include <stdio.h>
#include <stdarg.h>
#include <thread>
#include <iostream>
#include <fstream>
extern void setup();
extern void loop();
// simple stdout / stdin implementation for fake serial port
void write_serial_thread() {
for (;;) {
@@ -64,8 +64,6 @@ void simulation_loop() {
LinearAxis z_axis(Z_ENABLE_PIN, Z_DIR_PIN, Z_STEP_PIN, Z_MIN_PIN, Z_MAX_PIN);
LinearAxis extruder0(E0_ENABLE_PIN, E0_DIR_PIN, E0_STEP_PIN, P_NC, P_NC);
//#define GPIO_LOGGING // Full GPIO and Positional Logging
#ifdef GPIO_LOGGING
IOLoggerCSV logger("all_gpio_log.csv");
Gpio::attachLogger(&logger);
@@ -88,7 +86,7 @@ void simulation_loop() {
#ifdef GPIO_LOGGING
if (x_axis.position != x || y_axis.position != y || z_axis.position != z) {
uint64_t update = MAX3(x_axis.last_update, y_axis.last_update, z_axis.last_update);
uint64_t update = _MAX(x_axis.last_update, y_axis.last_update, z_axis.last_update);
position_log << update << ", " << x_axis.position << ", " << y_axis.position << ", " << z_axis.position << std::endl;
position_log.flush();
x = x_axis.position;
@@ -107,7 +105,7 @@ int main() {
std::thread write_serial (write_serial_thread);
std::thread read_serial (read_serial_thread);
#if NUM_SERIAL > 0
#ifdef MYSERIAL0
MYSERIAL0.begin(BAUDRATE);
SERIAL_ECHOLNPGM("x86_64 Initialized");
SERIAL_FLUSHTX();
+6 -6
View File
@@ -26,15 +26,15 @@
*/
#define NUMBER_PINS_TOTAL NUM_DIGITAL_PINS
#define pwm_details(pin) pin = pin // do nothing // print PWM details
#define pwm_status(pin) false //Print a pin's PWM status. Return true if it's currently a PWM pin.
#define IS_ANALOG(P) (DIGITAL_PIN_TO_ANALOG_PIN(P) >= 0 ? 1 : 0)
#define pwm_details(pin) NOOP // (do nothing)
#define pwm_status(pin) false // Print a pin's PWM status. Return true if it's currently a PWM pin.
#define IS_ANALOG(P) (DIGITAL_PIN_TO_ANALOG_PIN(P) >= 0 ? 1 : 0)
#define digitalRead_mod(p) digitalRead(p)
#define PRINT_PORT(p)
#define GET_ARRAY_PIN(p) pin_array[p].pin
#define GET_ARRAY_PIN(p) pin_array[p].pin
#define PRINT_ARRAY_NAME(x) do{ sprintf_P(buffer, PSTR("%-" STRINGIFY(MAX_NAME_LENGTH) "s"), pin_array[x].name); SERIAL_ECHO(buffer); }while(0)
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%3d "), p); SERIAL_ECHO(buffer); }while(0)
#define MULTI_NAME_PAD 16 // space needed to be pretty if not first name assigned to a pin
#define PRINT_PIN(p) do{ sprintf_P(buffer, PSTR("%3d "), p); SERIAL_ECHO(buffer); }while(0)
#define MULTI_NAME_PAD 16 // space needed to be pretty if not first name assigned to a pin
// active ADC function/mode/code values for PINSEL registers
constexpr int8_t ADC_pin_mode(pin_t pin) {
-1
View File
@@ -45,7 +45,6 @@
* Version 2 Copyright (c) 2009 Michael Margolis. All right reserved.
*
* The only modification was to update/delete macros to match the LPC176x.
*
*/
#include <stdint.h>
+17 -16
View File
@@ -24,31 +24,32 @@
#include "../../core/macros.h"
#include "../../inc/MarlinConfigPre.h"
#if BOTH(HAS_GRAPHICAL_LCD, SDSUPPORT) && (LCD_PINS_D4 == SCK_PIN || LCD_PINS_ENABLE == MOSI_PIN || DOGLCD_SCK == SCK_PIN || DOGLCD_MOSI == MOSI_PIN)
#if BOTH(HAS_MARLINUI_U8GLIB, SDSUPPORT) && (LCD_PINS_D4 == SD_SCK_PIN || LCD_PINS_ENABLE == SD_MOSI_PIN || DOGLCD_SCK == SD_SCK_PIN || DOGLCD_MOSI == SD_MOSI_PIN)
#define LPC_SOFTWARE_SPI // If the SD card and LCD adapter share the same SPI pins, then software SPI is currently
// needed due to the speed and mode required for communicating with each device being different.
// This requirement can be removed if the SPI access to these devices is updated to use
// spiBeginTransaction.
#endif
/** onboard SD card */
//#define SCK_PIN P0_07
//#define MISO_PIN P0_08
//#define MOSI_PIN P0_09
//#define SS_PIN P0_06
/** external */
#ifndef SCK_PIN
#define SCK_PIN 50
// Onboard SD
//#define SD_SCK_PIN P0_07
//#define SD_MISO_PIN P0_08
//#define SD_MOSI_PIN P0_09
//#define SD_SS_PIN P0_06
// External SD
#ifndef SD_SCK_PIN
#define SD_SCK_PIN 50
#endif
#ifndef MISO_PIN
#define MISO_PIN 51
#ifndef SD_MISO_PIN
#define SD_MISO_PIN 51
#endif
#ifndef MOSI_PIN
#define MOSI_PIN 52
#ifndef SD_MOSI_PIN
#define SD_MOSI_PIN 52
#endif
#ifndef SS_PIN
#define SS_PIN 53
#ifndef SD_SS_PIN
#define SD_SS_PIN 53
#endif
#ifndef SDSS
#define SDSS SS_PIN
#define SDSS SD_SS_PIN
#endif
+2
View File
@@ -27,6 +27,8 @@
#include "watchdog.h"
#define WDT_TIMEOUT_US TERN(WATCHDOG_DURATION_8S, 8000000, 4000000) // 4 or 8 second timeout
void watchdog_init() {}
void HAL_watchdog_refresh() {}
-2
View File
@@ -21,7 +21,5 @@
*/
#pragma once
#define WDT_TIMEOUT 4000000 // 4 second timeout
void watchdog_init();
void HAL_watchdog_refresh();
+14 -12
View File
@@ -29,21 +29,18 @@
#include "watchdog.h"
#endif
DefaultSerial USBSerial(false, UsbSerial);
uint32_t HAL_adc_reading = 0;
// U8glib required functions
extern "C" void u8g_xMicroDelay(uint16_t val) {
DELAY_US(val);
}
extern "C" void u8g_MicroDelay() {
u8g_xMicroDelay(1);
}
extern "C" void u8g_10MicroDelay() {
u8g_xMicroDelay(10);
}
extern "C" void u8g_Delay(uint16_t val) {
delay(val);
extern "C" {
void u8g_xMicroDelay(uint16_t val) { DELAY_US(val); }
void u8g_MicroDelay() { u8g_xMicroDelay(1); }
void u8g_10MicroDelay() { u8g_xMicroDelay(10); }
void u8g_Delay(uint16_t val) { delay(val); }
}
//************************//
// return free heap space
@@ -66,7 +63,12 @@ int16_t PARSED_PIN_INDEX(const char code, const int16_t dval) {
return ind > -1 ? ind : dval;
}
void flashFirmware(const int16_t) { NVIC_SystemReset(); }
void flashFirmware(const int16_t) {
delay(500); // Give OS time to disconnect
USB_Connect(false); // USB clear connection
delay(1000); // Give OS time to notice
NVIC_SystemReset();
}
void HAL_clear_reset_source(void) {
TERN_(USE_WATCHDOG, watchdog_clear_timeout_flag());
+40 -50
View File
@@ -47,9 +47,6 @@ extern "C" volatile uint32_t _millis;
#include <pinmapping.h>
#include <CDCSerial.h>
// i2c uses 8-bit shifted address
#define I2C_ADDRESS(A) uint8_t((A) << 1)
//
// Default graphical display delays
//
@@ -63,58 +60,48 @@ extern "C" volatile uint32_t _millis;
#define ST7920_DELAY_3 DELAY_NS(750)
#endif
typedef ForwardSerial0Type< decltype(UsbSerial) > DefaultSerial;
extern DefaultSerial USBSerial;
#define _MSERIAL(X) MSerial##X
#define MSERIAL(X) _MSERIAL(X)
#define MSerial0 MSerial
#if SERIAL_PORT == -1
#define MYSERIAL0 UsbSerial
#elif SERIAL_PORT == 0
#define MYSERIAL0 MSerial
#elif SERIAL_PORT == 1
#define MYSERIAL0 MSerial1
#elif SERIAL_PORT == 2
#define MYSERIAL0 MSerial2
#elif SERIAL_PORT == 3
#define MYSERIAL0 MSerial3
#define MYSERIAL0 USBSerial
#elif WITHIN(SERIAL_PORT, 0, 3)
#define MYSERIAL0 MSERIAL(SERIAL_PORT)
#else
#error "SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#ifdef SERIAL_PORT_2
#if SERIAL_PORT_2 == SERIAL_PORT
#error "SERIAL_PORT_2 must be different than SERIAL_PORT. Please update your configuration."
#elif SERIAL_PORT_2 == -1
#define MYSERIAL1 UsbSerial
#elif SERIAL_PORT_2 == 0
#define MYSERIAL1 MSerial
#elif SERIAL_PORT_2 == 1
#define MYSERIAL1 MSerial1
#elif SERIAL_PORT_2 == 2
#define MYSERIAL1 MSerial2
#elif SERIAL_PORT_2 == 3
#define MYSERIAL1 MSerial3
#if SERIAL_PORT_2 == -1
#define MYSERIAL1 USBSerial
#elif WITHIN(SERIAL_PORT_2, 0, 3)
#define MYSERIAL1 MSERIAL(SERIAL_PORT_2)
#else
#error "SERIAL_PORT_2 must be from -1 to 3. Please update your configuration."
#endif
#define NUM_SERIAL 2
#else
#define NUM_SERIAL 1
#endif
#ifdef DGUS_SERIAL_PORT
#if DGUS_SERIAL_PORT == SERIAL_PORT
#error "DGUS_SERIAL_PORT must be different than SERIAL_PORT. Please update your configuration."
#elif defined(SERIAL_PORT_2) && DGUS_SERIAL_PORT == SERIAL_PORT_2
#error "DGUS_SERIAL_PORT must be different than SERIAL_PORT_2. Please update your configuration."
#elif DGUS_SERIAL_PORT == -1
#define DGUS_SERIAL UsbSerial
#elif DGUS_SERIAL_PORT == 0
#define DGUS_SERIAL MSerial
#elif DGUS_SERIAL_PORT == 1
#define DGUS_SERIAL MSerial1
#elif DGUS_SERIAL_PORT == 2
#define DGUS_SERIAL MSerial2
#elif DGUS_SERIAL_PORT == 3
#define DGUS_SERIAL MSerial3
#ifdef MMU2_SERIAL_PORT
#if MMU2_SERIAL_PORT == -1
#define MMU2_SERIAL USBSerial
#elif WITHIN(MMU2_SERIAL_PORT, 0, 3)
#define MMU2_SERIAL MSERIAL(MMU2_SERIAL_PORT)
#else
#error "DGUS_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#error "MMU2_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#endif
#ifdef LCD_SERIAL_PORT
#if LCD_SERIAL_PORT == -1
#define LCD_SERIAL USBSerial
#elif WITHIN(LCD_SERIAL_PORT, 0, 3)
#define LCD_SERIAL MSERIAL(LCD_SERIAL_PORT)
#else
#error "LCD_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#endif
#endif
@@ -130,10 +117,16 @@ extern "C" volatile uint32_t _millis;
//
// Utility functions
//
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif
int freeMemory();
#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif
//
// ADC API
@@ -223,7 +216,4 @@ void set_pwm_duty(const pin_t pin, const uint16_t v, const uint16_t v_size=255,
void HAL_clear_reset_source(void);
uint8_t HAL_get_reset_source(void);
// Add strcmp_P if missing
#ifndef strcmp_P
#define strcmp_P(a, b) strcmp((a), (b))
#endif
inline void HAL_reboot() {} // reboot the board or restart the bootloader
+127 -159
View File
@@ -39,10 +39,10 @@
* Some of the LCD interfaces/adapters result in the LCD SPI and the SD card
* SPI sharing pins. The SCK, MOSI & MISO pins can NOT be set/cleared with
* WRITE nor digitalWrite when the hardware SPI module within the LPC17xx is
* active. If any of these pins are shared then the software SPI must be used.
* active. If any of these pins are shared then the software SPI must be used.
*
* A more sophisticated hardware SPI can be found at the following link. This
* implementation has not been fully debugged.
* A more sophisticated hardware SPI can be found at the following link.
* This implementation has not been fully debugged.
* https://github.com/MarlinFirmware/Marlin/tree/071c7a78f27078fd4aee9a3ef365fcf5e143531e
*/
@@ -55,27 +55,33 @@
#include <lpc17xx_pinsel.h>
#include <lpc17xx_clkpwr.h>
#include "../shared/HAL_SPI.h"
// ------------------------
// Public functions
// ------------------------
#if ENABLED(LPC_SOFTWARE_SPI)
#include <SoftwareSPI.h>
// Software SPI
static uint8_t SPI_speed = 0;
#include <SoftwareSPI.h>
#ifndef HAL_SPI_SPEED
#define HAL_SPI_SPEED SPI_FULL_SPEED
#endif
static uint8_t SPI_speed = HAL_SPI_SPEED;
static uint8_t spiTransfer(uint8_t b) {
return swSpiTransfer(b, SPI_speed, SCK_PIN, MISO_PIN, MOSI_PIN);
return swSpiTransfer(b, SPI_speed, SD_SCK_PIN, SD_MISO_PIN, SD_MOSI_PIN);
}
void spiBegin() {
swSpiBegin(SCK_PIN, MISO_PIN, MOSI_PIN);
swSpiBegin(SD_SCK_PIN, SD_MISO_PIN, SD_MOSI_PIN);
}
void spiInit(uint8_t spiRate) {
SPI_speed = swSpiInit(spiRate, SCK_PIN, MOSI_PIN);
SPI_speed = swSpiInit(spiRate, SD_SCK_PIN, SD_MOSI_PIN);
}
uint8_t spiRec() { return spiTransfer(0xFF); }
@@ -100,72 +106,31 @@
#else
// decide which HW SPI device to use
#ifndef LPC_HW_SPI_DEV
#if (SCK_PIN == P0_07 && MISO_PIN == P0_08 && MOSI_PIN == P0_09)
#define LPC_HW_SPI_DEV 1
#ifndef HAL_SPI_SPEED
#ifdef SD_SPI_SPEED
#define HAL_SPI_SPEED SD_SPI_SPEED
#else
#if (SCK_PIN == P0_15 && MISO_PIN == P0_17 && MOSI_PIN == P0_18)
#define LPC_HW_SPI_DEV 0
#else
#error "Invalid pins selected for hardware SPI"
#endif
#define HAL_SPI_SPEED SPI_FULL_SPEED
#endif
#endif
#if LPC_HW_SPI_DEV == 0
#define LPC_SSPn LPC_SSP0
#else
#define LPC_SSPn LPC_SSP1
#endif
void spiBegin() { // setup SCK, MOSI & MISO pins for SSP0
PINSEL_CFG_Type PinCfg; // data structure to hold init values
PinCfg.Funcnum = 2;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Pinnum = LPC176x::pin_bit(SCK_PIN);
PinCfg.Portnum = LPC176x::pin_port(SCK_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(SCK_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(MISO_PIN);
PinCfg.Portnum = LPC176x::pin_port(MISO_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_INPUT(MISO_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(MOSI_PIN);
PinCfg.Portnum = LPC176x::pin_port(MOSI_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(MOSI_PIN);
// divide PCLK by 2 for SSP0
CLKPWR_SetPCLKDiv(LPC_HW_SPI_DEV == 0 ? CLKPWR_PCLKSEL_SSP0 : CLKPWR_PCLKSEL_SSP1, CLKPWR_PCLKSEL_CCLK_DIV_2);
spiInit(0);
SSP_Cmd(LPC_SSPn, ENABLE); // start SSP running
}
void spiBegin() { spiInit(HAL_SPI_SPEED); } // Set up SCK, MOSI & MISO pins for SSP0
void spiInit(uint8_t spiRate) {
// table to convert Marlin spiRates (0-5 plus default) into bit rates
uint32_t Marlin_speed[7]; // CPSR is always 2
Marlin_speed[0] = 8333333; //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
Marlin_speed[1] = 4166667; //(SCR: 5) desired: 4,000,000 actual: 4,166,667 +4.2% SPI_HALF_SPEED
Marlin_speed[2] = 2083333; //(SCR: 11) desired: 2,000,000 actual: 2,083,333 +4.2% SPI_QUARTER_SPEED
Marlin_speed[3] = 1000000; //(SCR: 24) desired: 1,000,000 actual: 1,000,000 SPI_EIGHTH_SPEED
Marlin_speed[4] = 500000; //(SCR: 49) desired: 500,000 actual: 500,000 SPI_SPEED_5
Marlin_speed[5] = 250000; //(SCR: 99) desired: 250,000 actual: 250,000 SPI_SPEED_6
Marlin_speed[6] = 125000; //(SCR:199) desired: 125,000 actual: 125,000 Default from HAL.h
// setup for SPI mode
SSP_CFG_Type HW_SPI_init; // data structure to hold init values
SSP_ConfigStructInit(&HW_SPI_init); // set values for SPI mode
HW_SPI_init.ClockRate = Marlin_speed[_MIN(spiRate, 6)]; // put in the specified bit rate
HW_SPI_init.Mode |= SSP_CR1_SSP_EN;
SSP_Init(LPC_SSPn, &HW_SPI_init); // puts the values into the proper bits in the SSP0 registers
#if SD_MISO_PIN == BOARD_SPI1_MISO_PIN
SPI.setModule(1);
#elif SD_MISO_PIN == BOARD_SPI2_MISO_PIN
SPI.setModule(2);
#endif
SPI.setDataSize(DATA_SIZE_8BIT);
SPI.setDataMode(SPI_MODE0);
SPI.setClock(SPISettings::spiRate2Clock(spiRate));
SPI.begin();
}
static uint8_t doio(uint8_t b) {
/* send and receive a single byte */
SSP_SendData(LPC_SSPn, b & 0x00FF);
while (SSP_GetStatus(LPC_SSPn, SSP_STAT_BUSY)); // wait for it to finish
return SSP_ReceiveData(LPC_SSPn) & 0x00FF;
return SPI.transfer(b & 0x00FF) & 0x00FF;
}
void spiSend(uint8_t b) { doio(b); }
@@ -174,11 +139,9 @@
for (uint16_t i = 0; i < nbyte; i++) doio(buf[i]);
}
void spiSend(uint32_t chan, byte b) {
}
void spiSend(uint32_t chan, byte b) {}
void spiSend(uint32_t chan, const uint8_t* buf, size_t nbyte) {
}
void spiSend(uint32_t chan, const uint8_t* buf, size_t nbyte) {}
// Read single byte from SPI
uint8_t spiRec() { return doio(0xFF); }
@@ -190,9 +153,7 @@
for (uint16_t i = 0; i < nbyte; i++) buf[i] = doio(0xFF);
}
uint8_t spiTransfer(uint8_t b) {
return doio(b);
}
uint8_t spiTransfer(uint8_t b) { return doio(b); }
// Write from buffer to SPI
void spiSendBlock(uint8_t token, const uint8_t* buf) {
@@ -201,10 +162,9 @@
(void)spiTransfer(buf[i]);
}
/** Begin SPI transaction, set clock, bit order, data mode */
// Begin SPI transaction, set clock, bit order, data mode
void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode) {
// TODO: to be implemented
// TODO: Implement this method
}
#endif // LPC_SOFTWARE_SPI
@@ -217,63 +177,83 @@ static inline void waitSpiTxEnd(LPC_SSP_TypeDef *spi_d) {
while (SSP_GetStatus(spi_d, SSP_STAT_BUSY) == SET) { /* nada */ } // wait until BSY=0
}
// Retain the pin init state of the SPI, to avoid init more than once,
// even if more instances of SPIClass exist
static bool spiInitialised[BOARD_NR_SPI] = { false };
SPIClass::SPIClass(uint8_t device) {
// Init things specific to each SPI device
// clock divider setup is a bit of hack, and needs to be improved at a later date.
PINSEL_CFG_Type PinCfg; // data structure to hold init values
#if BOARD_NR_SPI >= 1
_settings[0].spi_d = LPC_SSP0;
// _settings[0].clockDivider = determine_baud_rate(_settings[0].spi_d, _settings[0].clock);
PinCfg.Funcnum = 2;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_SCK_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_SCK_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(BOARD_SPI1_SCK_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_MISO_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_MISO_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_INPUT(BOARD_SPI1_MISO_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_MOSI_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_MOSI_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(BOARD_SPI1_MOSI_PIN);
_settings[0].dataMode = SPI_MODE0;
_settings[0].dataSize = DATA_SIZE_8BIT;
_settings[0].clock = SPI_CLOCK_MAX;
//_settings[0].clockDivider = determine_baud_rate(_settings[0].spi_d, _settings[0].clock);
#endif
#if BOARD_NR_SPI >= 2
_settings[1].spi_d = LPC_SSP1;
// _settings[1].clockDivider = determine_baud_rate(_settings[1].spi_d, _settings[1].clock);
PinCfg.Funcnum = 2;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI2_SCK_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI2_SCK_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(BOARD_SPI2_SCK_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI2_MISO_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI2_MISO_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_INPUT(BOARD_SPI2_MISO_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI2_MOSI_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI2_MOSI_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(BOARD_SPI2_MOSI_PIN);
_settings[1].dataMode = SPI_MODE0;
_settings[1].dataSize = DATA_SIZE_8BIT;
_settings[1].clock = SPI_CLOCK_MAX;
//_settings[1].clockDivider = determine_baud_rate(_settings[1].spi_d, _settings[1].clock);
#endif
setModule(device);
/* Initialize GPDMA controller */
//TODO: call once in the constructor? or each time?
// Init the GPDMA controller
// TODO: call once in the constructor? or each time?
GPDMA_Init();
}
SPIClass::SPIClass(pin_t mosi, pin_t miso, pin_t sclk, pin_t ssel) {
#if BOARD_NR_SPI >= 1
if (mosi == BOARD_SPI1_MOSI_PIN) SPIClass(1);
#endif
#if BOARD_NR_SPI >= 2
if (mosi == BOARD_SPI2_MOSI_PIN) SPIClass(2);
#endif
}
void SPIClass::begin() {
// Init the SPI pins in the first begin call
if ((_currentSetting->spi_d == LPC_SSP0 && spiInitialised[0] == false) ||
(_currentSetting->spi_d == LPC_SSP1 && spiInitialised[1] == false)) {
pin_t sck, miso, mosi;
if (_currentSetting->spi_d == LPC_SSP0) {
sck = BOARD_SPI1_SCK_PIN;
miso = BOARD_SPI1_MISO_PIN;
mosi = BOARD_SPI1_MOSI_PIN;
spiInitialised[0] = true;
}
else if (_currentSetting->spi_d == LPC_SSP1) {
sck = BOARD_SPI2_SCK_PIN;
miso = BOARD_SPI2_MISO_PIN;
mosi = BOARD_SPI2_MOSI_PIN;
spiInitialised[1] = true;
}
PINSEL_CFG_Type PinCfg; // data structure to hold init values
PinCfg.Funcnum = 2;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Pinnum = LPC176x::pin_bit(sck);
PinCfg.Portnum = LPC176x::pin_port(sck);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(sck);
PinCfg.Pinnum = LPC176x::pin_bit(miso);
PinCfg.Portnum = LPC176x::pin_port(miso);
PINSEL_ConfigPin(&PinCfg);
SET_INPUT(miso);
PinCfg.Pinnum = LPC176x::pin_bit(mosi);
PinCfg.Portnum = LPC176x::pin_port(mosi);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(mosi);
}
updateSettings();
SSP_Cmd(_currentSetting->spi_d, ENABLE); // start SSP running
}
@@ -287,7 +267,7 @@ void SPIClass::beginTransaction(const SPISettings &cfg) {
}
uint8_t SPIClass::transfer(const uint16_t b) {
/* send and receive a single byte */
// Send and receive a single byte
SSP_ReceiveData(_currentSetting->spi_d); // read any previous data
SSP_SendData(_currentSetting->spi_d, b);
waitSpiTxEnd(_currentSetting->spi_d); // wait for it to finish
@@ -295,13 +275,13 @@ uint8_t SPIClass::transfer(const uint16_t b) {
}
uint16_t SPIClass::transfer16(const uint16_t data) {
return (transfer((data >> 8) & 0xFF) << 8)
| (transfer(data & 0xFF) & 0xFF);
return (transfer((data >> 8) & 0xFF) << 8) | (transfer(data & 0xFF) & 0xFF);
}
void SPIClass::end() {
// SSP_Cmd(_currentSetting->spi_d, DISABLE); // stop device or SSP_DeInit?
SSP_DeInit(_currentSetting->spi_d);
// Neither is needed for Marlin
//SSP_Cmd(_currentSetting->spi_d, DISABLE);
//SSP_DeInit(_currentSetting->spi_d);
}
void SPIClass::send(uint8_t data) {
@@ -320,7 +300,7 @@ void SPIClass::dmaSend(void *buf, uint16_t length, bool minc) {
// Destination memory - Not used
GPDMACfg.DstMemAddr = 0;
// Transfer size
GPDMACfg.TransferSize = (minc ? length : 1);
GPDMACfg.TransferSize = length;
// Transfer width
GPDMACfg.TransferWidth = (_currentSetting->dataSize == DATA_SIZE_16BIT) ? GPDMA_WIDTH_HALFWORD : GPDMA_WIDTH_BYTE;
// Transfer type
@@ -335,26 +315,24 @@ void SPIClass::dmaSend(void *buf, uint16_t length, bool minc) {
// Enable dma on SPI
SSP_DMACmd(_currentSetting->spi_d, SSP_DMA_TX, ENABLE);
// if minc=false, I'm repeating the same byte 'length' times, as I could not find yet how do GPDMA without memory increment
do {
// Setup channel with given parameter
GPDMA_Setup(&GPDMACfg);
// Only increase memory if minc is true
GPDMACfg.MemoryIncrease = (minc ? GPDMA_DMACCxControl_SI : 0);
// enabled dma
GPDMA_ChannelCmd(0, ENABLE);
// Setup channel with given parameter
GPDMA_Setup(&GPDMACfg);
// wait data transfer
while (!GPDMA_IntGetStatus(GPDMA_STAT_INTTC, 0) && !GPDMA_IntGetStatus(GPDMA_STAT_INTERR, 0)) { }
// Enable DMA
GPDMA_ChannelCmd(0, ENABLE);
// clear err and int
GPDMA_ClearIntPending (GPDMA_STATCLR_INTTC, 0);
GPDMA_ClearIntPending (GPDMA_STATCLR_INTERR, 0);
// Wait for data transfer
while (!GPDMA_IntGetStatus(GPDMA_STAT_RAWINTTC, 0) && !GPDMA_IntGetStatus(GPDMA_STAT_RAWINTERR, 0)) { }
// dma disable
GPDMA_ChannelCmd(0, DISABLE);
// Clear err and int
GPDMA_ClearIntPending (GPDMA_STATCLR_INTTC, 0);
GPDMA_ClearIntPending (GPDMA_STATCLR_INTERR, 0);
--length;
} while (!minc && length > 0);
// Disable DMA
GPDMA_ChannelCmd(0, DISABLE);
waitSpiTxEnd(_currentSetting->spi_d);
@@ -369,25 +347,15 @@ void SPIClass::read(uint8_t *buf, uint32_t len) {
for (uint16_t i = 0; i < len; i++) buf[i] = transfer(0xFF);
}
void SPIClass::setClock(uint32_t clock) {
_currentSetting->clock = clock;
}
void SPIClass::setClock(uint32_t clock) { _currentSetting->clock = clock; }
void SPIClass::setModule(uint8_t device) {
_currentSetting = &_settings[device - 1];// SPI channels are called 1 2 and 3 but the array is zero indexed
}
void SPIClass::setModule(uint8_t device) { _currentSetting = &_settings[device - 1]; } // SPI channels are called 1, 2, and 3 but the array is zero-indexed
void SPIClass::setBitOrder(uint8_t bitOrder) {
_currentSetting->bitOrder = bitOrder;
}
void SPIClass::setBitOrder(uint8_t bitOrder) { _currentSetting->bitOrder = bitOrder; }
void SPIClass::setDataMode(uint8_t dataMode) {
_currentSetting->dataSize = dataMode;
}
void SPIClass::setDataMode(uint8_t dataMode) { _currentSetting->dataMode = dataMode; }
void SPIClass::setDataSize(uint32_t ds) {
_currentSetting->dataSize = ds;
}
void SPIClass::setDataSize(uint32_t dataSize) { _currentSetting->dataSize = dataSize; }
/**
* Set up/tear down
@@ -395,8 +363,8 @@ void SPIClass::setDataSize(uint32_t ds) {
void SPIClass::updateSettings() {
//SSP_DeInit(_currentSetting->spi_d); //todo: need force de init?!
// divide PCLK by 2 for SSP0
CLKPWR_SetPCLKDiv(_currentSetting->spi_d == LPC_SSP0 ? CLKPWR_PCLKSEL_SSP0 : CLKPWR_PCLKSEL_SSP1, CLKPWR_PCLKSEL_CCLK_DIV_2);
// Divide PCLK by 2 for SSP0
//CLKPWR_SetPCLKDiv(_currentSetting->spi_d == LPC_SSP0 ? CLKPWR_PCLKSEL_SSP0 : CLKPWR_PCLKSEL_SSP1, CLKPWR_PCLKSEL_CCLK_DIV_2);
SSP_CFG_Type HW_SPI_init; // data structure to hold init values
SSP_ConfigStructInit(&HW_SPI_init); // set values for SPI mode
@@ -413,19 +381,19 @@ void SPIClass::updateSettings() {
switch (_currentSetting->dataMode) {
case SPI_MODE0:
HW_SPI_init.CPHA = SSP_CPHA_FIRST;
HW_SPI_init.CPOL = SSP_CPOL_HI;
HW_SPI_init.CPOL = SSP_CPOL_HI;
break;
case SPI_MODE1:
HW_SPI_init.CPHA = SSP_CPHA_SECOND;
HW_SPI_init.CPOL = SSP_CPOL_HI;
HW_SPI_init.CPOL = SSP_CPOL_HI;
break;
case SPI_MODE2:
HW_SPI_init.CPHA = SSP_CPHA_FIRST;
HW_SPI_init.CPOL = SSP_CPOL_LO;
HW_SPI_init.CPOL = SSP_CPOL_LO;
break;
case SPI_MODE3:
HW_SPI_init.CPHA = SSP_CPHA_SECOND;
HW_SPI_init.CPOL = SSP_CPOL_LO;
HW_SPI_init.CPOL = SSP_CPOL_LO;
break;
default:
break;
@@ -435,9 +403,9 @@ void SPIClass::updateSettings() {
SSP_Init(_currentSetting->spi_d, &HW_SPI_init); // puts the values into the proper bits in the SSP0 registers
}
#if MISO_PIN == BOARD_SPI1_MISO_PIN
#if SD_MISO_PIN == BOARD_SPI1_MISO_PIN
SPIClass SPI(1);
#elif MISO_PIN == BOARD_SPI2_MISO_PIN
#elif SD_MISO_PIN == BOARD_SPI2_MISO_PIN
SPIClass SPI(2);
#endif
+45
View File
@@ -0,0 +1,45 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
*
*/
#pragma once
#include <SPI.h>
/**
* Marlin currently requires 3 SPI classes:
*
* SPIClass:
* This class is normally provided by frameworks and has a semi-default interface.
* This is needed because some libraries reference it globally.
*
* SPISettings:
* Container for SPI configs for SPIClass. As above, libraries may reference it globally.
*
* These two classes are often provided by frameworks so we cannot extend them to add
* useful methods for Marlin.
*
* MarlinSPI:
* Provides the default SPIClass interface plus some Marlin goodies such as a simplified
* interface for SPI DMA transfer.
*
*/
using MarlinSPI = SPIClass;
+12 -23
View File
@@ -24,32 +24,21 @@
#include "../../inc/MarlinConfigPre.h"
#include "MarlinSerial.h"
#if (defined(SERIAL_PORT) && SERIAL_PORT == 0) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == 0) || (defined(DGUS_SERIAL_PORT) && DGUS_SERIAL_PORT == 0)
MarlinSerial MSerial(LPC_UART0);
extern "C" void UART0_IRQHandler() {
MSerial.IRQHandler();
}
#if ANY_SERIAL_IS(0)
MSerialT MSerial(true, LPC_UART0);
extern "C" void UART0_IRQHandler() { MSerial.IRQHandler(); }
#endif
#if SERIAL_PORT == 1 || SERIAL_PORT_2 == 1 || DGUS_SERIAL_PORT == 1
MarlinSerial MSerial1((LPC_UART_TypeDef *) LPC_UART1);
extern "C" void UART1_IRQHandler() {
MSerial1.IRQHandler();
}
#if ANY_SERIAL_IS(1)
MSerialT MSerial1(true, (LPC_UART_TypeDef *) LPC_UART1);
extern "C" void UART1_IRQHandler() { MSerial1.IRQHandler(); }
#endif
#if SERIAL_PORT == 2 || SERIAL_PORT_2 == 2 || DGUS_SERIAL_PORT == 2
MarlinSerial MSerial2(LPC_UART2);
extern "C" void UART2_IRQHandler() {
MSerial2.IRQHandler();
}
#if ANY_SERIAL_IS(2)
MSerialT MSerial2(true, LPC_UART2);
extern "C" void UART2_IRQHandler() { MSerial2.IRQHandler(); }
#endif
#if SERIAL_PORT == 3 || SERIAL_PORT_2 == 3 || DGUS_SERIAL_PORT == 3
MarlinSerial MSerial3(LPC_UART3);
extern "C" void UART3_IRQHandler() {
MSerial3.IRQHandler();
}
#if ANY_SERIAL_IS(3)
MSerialT MSerial3(true, LPC_UART3);
extern "C" void UART3_IRQHandler() { MSerial3.IRQHandler(); }
#endif
#endif // TARGET_LPC1768
+8 -13
View File
@@ -28,6 +28,7 @@
#if ENABLED(EMERGENCY_PARSER)
#include "../../feature/e_parser.h"
#endif
#include "../../core/serial_hook.h"
#ifndef SERIAL_PORT
#define SERIAL_PORT 0
@@ -41,26 +42,20 @@
class MarlinSerial : public HardwareSerial<RX_BUFFER_SIZE, TX_BUFFER_SIZE> {
public:
MarlinSerial(LPC_UART_TypeDef *UARTx) :
HardwareSerial<RX_BUFFER_SIZE, TX_BUFFER_SIZE>(UARTx)
#if ENABLED(EMERGENCY_PARSER)
, emergency_state(EmergencyParser::State::EP_RESET)
#endif
{ }
MarlinSerial(LPC_UART_TypeDef *UARTx) : HardwareSerial<RX_BUFFER_SIZE, TX_BUFFER_SIZE>(UARTx) { }
void end() {}
#if ENABLED(EMERGENCY_PARSER)
bool recv_callback(const char c) override {
emergency_parser.update(emergency_state, c);
emergency_parser.update(static_cast<Serial0Type<MarlinSerial> *>(this)->emergency_state, c);
return true; // do not discard character
}
EmergencyParser::State emergency_state;
#endif
};
extern MarlinSerial MSerial;
extern MarlinSerial MSerial1;
extern MarlinSerial MSerial2;
extern MarlinSerial MSerial3;
typedef Serial0Type<MarlinSerial> MSerialT;
extern MSerialT MSerial;
extern MSerialT MSerial1;
extern MSerialT MSerial2;
extern MSerialT MSerial3;
-1
View File
@@ -46,7 +46,6 @@
* Version 2 Copyright (c) 2009 Michael Margolis. All right reserved.
*
* The only modification was to update/delete macros to match the LPC176x.
*
*/
#include <Servo.h>
+2 -2
View File
@@ -25,7 +25,7 @@
* Emulate EEPROM storage using Flash Memory
*
* Use a single 32K flash sector to store EEPROM data. To reduce the
* number of erase operations a simple "levelling" scheme is used that
* number of erase operations a simple "leveling" scheme is used that
* maintains a number of EEPROM "slots" within the larger flash sector.
* Each slot is used in turn and the entire sector is only erased when all
* slots have been used.
@@ -119,7 +119,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return false; // return true for any error
}
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
const uint8_t * const buff = writing ? &value[0] : &ram_eeprom[pos];
if (writing) for (size_t i = 0; i < size; i++) value[i] = ram_eeprom[pos + i];
crc16(crc, buff, size);
+4 -4
View File
@@ -84,16 +84,16 @@ static void debug_rw(const bool write, int &pos, const uint8_t *value, const siz
PGM_P const rw_str = write ? PSTR("write") : PSTR("read");
SERIAL_CHAR(' ');
serialprintPGM(rw_str);
SERIAL_ECHOLNPAIR("_data(", pos, ",", int(value), ",", int(size), ", ...)");
SERIAL_ECHOLNPAIR("_data(", pos, ",", value, ",", size, ", ...)");
if (total) {
SERIAL_ECHOPGM(" f_");
serialprintPGM(rw_str);
SERIAL_ECHOPAIR("()=", int(s), "\n size=", int(size), "\n bytes_");
SERIAL_ECHOPAIR("()=", s, "\n size=", size, "\n bytes_");
serialprintPGM(write ? PSTR("written=") : PSTR("read="));
SERIAL_ECHOLN(total);
}
else
SERIAL_ECHOLNPAIR(" f_lseek()=", int(s));
SERIAL_ECHOLNPAIR(" f_lseek()=", s);
}
// File function return codes for type FRESULT. This goes away soon, but
@@ -143,7 +143,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return bytes_written != size; // return true for any error
}
bool PersistentStore::read_data(int &pos, uint8_t* value, const size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, const size_t size, uint16_t *crc, const bool writing/*=true*/) {
if (!eeprom_file_open) return true;
UINT bytes_read = 0;
FRESULT s;
+1 -1
View File
@@ -64,7 +64,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
return false;
}
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
bool PersistentStore::read_data(int &pos, uint8_t *value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
do {
// Read from external EEPROM
const uint8_t c = eeprom_read_byte((uint8_t*)pos);
+13 -13
View File
@@ -46,79 +46,79 @@ void setup_endstop_interrupts() {
#if HAS_X_MAX
#if !LPC1768_PIN_INTERRUPT_M(X_MAX_PIN)
#error "X_MAX_PIN is not INTERRUPT-capable."
#error "X_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(X_MAX_PIN);
#endif
#if HAS_X_MIN
#if !LPC1768_PIN_INTERRUPT_M(X_MIN_PIN)
#error "X_MIN_PIN is not INTERRUPT-capable."
#error "X_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(X_MIN_PIN);
#endif
#if HAS_Y_MAX
#if !LPC1768_PIN_INTERRUPT_M(Y_MAX_PIN)
#error "Y_MAX_PIN is not INTERRUPT-capable."
#error "Y_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Y_MAX_PIN);
#endif
#if HAS_Y_MIN
#if !LPC1768_PIN_INTERRUPT_M(Y_MIN_PIN)
#error "Y_MIN_PIN is not INTERRUPT-capable."
#error "Y_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Y_MIN_PIN);
#endif
#if HAS_Z_MAX
#if !LPC1768_PIN_INTERRUPT_M(Z_MAX_PIN)
#error "Z_MAX_PIN is not INTERRUPT-capable."
#error "Z_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z_MAX_PIN);
#endif
#if HAS_Z_MIN
#if !LPC1768_PIN_INTERRUPT_M(Z_MIN_PIN)
#error "Z_MIN_PIN is not INTERRUPT-capable."
#error "Z_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z_MIN_PIN);
#endif
#if HAS_Z2_MAX
#if !LPC1768_PIN_INTERRUPT_M(Z2_MAX_PIN)
#error "Z2_MAX_PIN is not INTERRUPT-capable."
#error "Z2_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z2_MAX_PIN);
#endif
#if HAS_Z2_MIN
#if !LPC1768_PIN_INTERRUPT_M(Z2_MIN_PIN)
#error "Z2_MIN_PIN is not INTERRUPT-capable."
#error "Z2_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z2_MIN_PIN);
#endif
#if HAS_Z3_MAX
#if !LPC1768_PIN_INTERRUPT_M(Z3_MAX_PIN)
#error "Z3_MIN_PIN is not INTERRUPT-capable."
#error "Z3_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z3_MAX_PIN);
#endif
#if HAS_Z3_MIN
#if !LPC1768_PIN_INTERRUPT_M(Z3_MIN_PIN)
#error "Z3_MIN_PIN is not INTERRUPT-capable."
#error "Z3_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z3_MIN_PIN);
#endif
#if HAS_Z4_MAX
#if !LPC1768_PIN_INTERRUPT_M(Z4_MAX_PIN)
#error "Z4_MIN_PIN is not INTERRUPT-capable."
#error "Z4_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z4_MAX_PIN);
#endif
#if HAS_Z4_MIN
#if !LPC1768_PIN_INTERRUPT_M(Z4_MIN_PIN)
#error "Z4_MIN_PIN is not INTERRUPT-capable."
#error "Z4_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z4_MIN_PIN);
#endif
#if HAS_Z_MIN_PROBE_PIN
#if !LPC1768_PIN_INTERRUPT_M(Z_MIN_PROBE_PIN)
#error "Z_MIN_PROBE_PIN is not INTERRUPT-capable."
#error "Z_MIN_PROBE_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
#endif
_ATTACH(Z_MIN_PROBE_PIN);
#endif
@@ -24,10 +24,3 @@
#if HAS_FSMC_TFT
#error "Sorry! FSMC TFT displays are not current available for HAL/LPC1768."
#endif
// This emulated DOGM has 'touch/xpt2046', not 'tft/xpt2046'
#if ENABLED(TOUCH_SCREEN) && !HAS_GRAPHICAL_TFT
#undef TOUCH_SCREEN
#undef TOUCH_SCREEN_CALIBRATION
#define HAS_TOUCH_XPT2046 1
#endif
@@ -20,3 +20,7 @@
*
*/
#pragma once
#if DISABLED(NO_SD_HOST_DRIVE)
#define HAS_SD_HOST_DRIVE 1
#endif
@@ -26,3 +26,10 @@
#elif EITHER(I2C_EEPROM, SPI_EEPROM)
#define USE_SHARED_EEPROM 1
#endif
// LPC1768 boards seem to lose steps when saving to EEPROM during print (issue #20785)
// TODO: Which other boards are incompatible?
#if defined(MCU_LPC1768) && PRINTCOUNTER_SAVE_INTERVAL > 0
#warning "To prevent step loss, motion will pause for PRINTCOUNTER auto-save."
#define PRINTCOUNTER_SYNC 1
#endif
+43 -30
View File
@@ -24,14 +24,14 @@
#if PIO_PLATFORM_VERSION < 1001
#error "nxplpc-arduino-lpc176x package is out of date, Please update the PlatformIO platforms, frameworks and libraries. You may need to remove the platform and let it reinstall automatically."
#endif
#if PIO_FRAMEWORK_VERSION < 2002
#if PIO_FRAMEWORK_VERSION < 2006
#error "framework-arduino-lpc176x package is out of date, Please update the PlatformIO platforms, frameworks and libraries."
#endif
/**
* Detect an old pins file by checking for old ADC pins values.
*/
#define _OLD_TEMP_PIN(P) PIN_EXISTS(P) && _CAT(P,_PIN) <= 7 && _CAT(P,_PIN) != 2 && _CAT(P,_PIN) != 3
#define _OLD_TEMP_PIN(P) PIN_EXISTS(P) && _CAT(P,_PIN) <= 7 && !WITHIN(_CAT(P,_PIN), TERN(LPC1768_IS_SKRV1_3, 0, 2), 3) // Include P0_00 and P0_01 for SKR V1.3 board
#if _OLD_TEMP_PIN(TEMP_BED)
#error "TEMP_BED_PIN must be defined using the Pn_nn or Pn_nn_An format. (See the included pins files)."
#elif _OLD_TEMP_PIN(TEMP_0)
@@ -72,7 +72,7 @@ static_assert(!(NUM_SERVOS && ENABLED(FAST_PWM_FAN)), "BLTOUCH and Servos are in
//#endif
#if MB(RAMPS_14_RE_ARM_EFB, RAMPS_14_RE_ARM_EEB, RAMPS_14_RE_ARM_EFF, RAMPS_14_RE_ARM_EEF, RAMPS_14_RE_ARM_SF)
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && HAS_DRIVER(TMC2130) && DISABLED(TMC_USE_SW_SPI)
#if IS_RRD_FG_SC && HAS_DRIVER(TMC2130) && DISABLED(TMC_USE_SW_SPI)
#error "Re-ARM with REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER and TMC2130 requires TMC_USE_SW_SPI."
#endif
#endif
@@ -89,13 +89,16 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
* Serial2 | P0_10 | P0_11 |
* Serial3 | P0_00 | P0_01 |
*/
#if (defined(SERIAL_PORT) && SERIAL_PORT == 0) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == 0) || (defined(DGUS_SERIAL_PORT) && DGUS_SERIAL_PORT == 0)
#define ANY_TX(N,V...) DO(IS_TX##N,||,V)
#define ANY_RX(N,V...) DO(IS_RX##N,||,V)
#if ANY_SERIAL_IS(0)
#define IS_TX0(P) (P == P0_02)
#define IS_RX0(P) (P == P0_03)
#if IS_TX0(TMC_SW_MISO) || IS_RX0(TMC_SW_MOSI)
#error "Serial port pins (0) conflict with Trinamic SPI pins!"
#elif ENABLED(MK2_MULTIPLEXER) && (IS_TX0(E_MUX1_PIN) || IS_RX0(E_MUX0_PIN))
#error "Serial port pins (0) conflict with MK2 multiplexer pins!"
#elif HAS_PRUSA_MMU1 && (IS_TX0(E_MUX1_PIN) || IS_RX0(E_MUX0_PIN))
#error "Serial port pins (0) conflict with Multi-Material-Unit multiplexer pins!"
#elif (AXIS_HAS_SPI(X) && IS_TX0(X_CS_PIN)) || (AXIS_HAS_SPI(Y) && IS_RX0(Y_CS_PIN))
#error "Serial port pins (0) conflict with X/Y axis SPI pins!"
#endif
@@ -103,60 +106,67 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
#undef IS_RX0
#endif
#if SERIAL_PORT == 1 || SERIAL_PORT_2 == 1 || DGUS_SERIAL_PORT == 1
#if ANY_SERIAL_IS(1)
#define IS_TX1(P) (P == P0_15)
#define IS_RX1(P) (P == P0_16)
#define _IS_TX1_1 IS_TX1
#define _IS_RX1_1 IS_RX1
#if IS_TX1(TMC_SW_SCK)
#error "Serial port pins (1) conflict with other pins!"
#elif HAS_SPI_LCD
#elif HAS_WIRED_LCD
#if IS_TX1(BTN_EN2) || IS_RX1(BTN_EN1)
#error "Serial port pins (1) conflict with Encoder Buttons!"
#elif IS_TX1(SCK_PIN) || IS_TX1(LCD_PINS_D4) || IS_TX1(DOGLCD_SCK) || IS_TX1(LCD_RESET_PIN) || IS_TX1(LCD_PINS_RS) || IS_TX1(SHIFT_CLK) \
|| IS_RX1(LCD_SDSS) || IS_RX1(LCD_PINS_RS) || IS_RX1(MISO_PIN) || IS_RX1(DOGLCD_A0) || IS_RX1(SS_PIN) || IS_RX1(LCD_SDSS) || IS_RX1(DOGLCD_CS) || IS_RX1(LCD_RESET_PIN) || IS_RX1(LCD_BACKLIGHT_PIN)
#elif ANY_TX(1, SD_SCK_PIN, LCD_PINS_D4, DOGLCD_SCK, LCD_RESET_PIN, LCD_PINS_RS, SHIFT_CLK_PIN) \
|| ANY_RX(1, LCD_SDSS, LCD_PINS_RS, SD_MISO_PIN, DOGLCD_A0, SD_SS_PIN, LCD_SDSS, DOGLCD_CS, LCD_RESET_PIN, LCD_BACKLIGHT_PIN)
#error "Serial port pins (1) conflict with LCD pins!"
#endif
#endif
#undef IS_TX1
#undef IS_RX1
#undef _IS_TX1_1
#undef _IS_RX1_1
#endif
#if SERIAL_PORT == 2 || SERIAL_PORT_2 == 2 || DGUS_SERIAL_PORT == 2
#if ANY_SERIAL_IS(2)
#define IS_TX2(P) (P == P0_10)
#define IS_RX2(P) (P == P0_11)
#if IS_TX2(X2_ENABLE_PIN) || IS_RX2(X2_DIR_PIN) || IS_RX2(X2_STEP_PIN) || (AXIS_HAS_SPI(X2) && IS_TX2(X2_CS_PIN))
#define _IS_TX2_1 IS_TX2
#define _IS_RX2_1 IS_RX2
#if IS_TX2(X2_ENABLE_PIN) || ANY_RX(2, X2_DIR_PIN, X2_STEP_PIN) || (AXIS_HAS_SPI(X2) && IS_TX2(X2_CS_PIN))
#error "Serial port pins (2) conflict with X2 pins!"
#elif IS_TX2(Y2_ENABLE_PIN) || IS_RX2(Y2_DIR_PIN) || IS_RX2(Y2_STEP_PIN) || (AXIS_HAS_SPI(Y2) && IS_TX2(Y2_CS_PIN))
#elif IS_TX2(Y2_ENABLE_PIN) || ANY_RX(2, Y2_DIR_PIN, Y2_STEP_PIN) || (AXIS_HAS_SPI(Y2) && IS_TX2(Y2_CS_PIN))
#error "Serial port pins (2) conflict with Y2 pins!"
#elif IS_TX2(Z2_ENABLE_PIN) || IS_RX2(Z2_DIR_PIN) || IS_RX2(Z2_STEP_PIN) || (AXIS_HAS_SPI(Z2) && IS_TX2(Z2_CS_PIN))
#elif IS_TX2(Z2_ENABLE_PIN) || ANY_RX(2, Z2_DIR_PIN, Z2_STEP_PIN) || (AXIS_HAS_SPI(Z2) && IS_TX2(Z2_CS_PIN))
#error "Serial port pins (2) conflict with Z2 pins!"
#elif IS_TX2(Z3_ENABLE_PIN) || IS_RX2(Z3_DIR_PIN) || IS_RX2(Z3_STEP_PIN) || (AXIS_HAS_SPI(Z3) && IS_TX2(Z3_CS_PIN))
#elif IS_TX2(Z3_ENABLE_PIN) || ANY_RX(2, Z3_DIR_PIN, Z3_STEP_PIN) || (AXIS_HAS_SPI(Z3) && IS_TX2(Z3_CS_PIN))
#error "Serial port pins (2) conflict with Z3 pins!"
#elif IS_TX2(Z4_ENABLE_PIN) || IS_RX2(Z4_DIR_PIN) || IS_RX2(Z4_STEP_PIN) || (AXIS_HAS_SPI(Z4) && IS_TX2(Z4_CS_PIN))
#elif IS_TX2(Z4_ENABLE_PIN) || ANY_RX(2, Z4_DIR_PIN, Z4_STEP_PIN) || (AXIS_HAS_SPI(Z4) && IS_TX2(Z4_CS_PIN))
#error "Serial port pins (2) conflict with Z4 pins!"
#elif IS_RX2(X_DIR_PIN) || IS_RX2(Y_DIR_PIN)
#elif ANY_RX(2, X_DIR_PIN, Y_DIR_PIN)
#error "Serial port pins (2) conflict with other pins!"
#elif Y_HOME_DIR < 0 && IS_TX2(Y_STOP_PIN)
#error "Serial port pins (2) conflict with Y endstop pin!"
#elif HAS_CUSTOM_PROBE_PIN && IS_TX2(Z_MIN_PROBE_PIN)
#error "Serial port pins (2) conflict with probe pin!"
#elif IS_TX2(X_ENABLE_PIN) || IS_RX2(X_DIR_PIN) || IS_TX2(Y_ENABLE_PIN) || IS_RX2(Y_DIR_PIN)
#elif ANY_TX(2, X_ENABLE_PIN, Y_ENABLE_PIN) || ANY_RX(2, X_DIR_PIN, Y_DIR_PIN)
#error "Serial port pins (2) conflict with X/Y stepper pins!"
#elif EXTRUDERS > 1 && (IS_TX2(E1_ENABLE_PIN) || (AXIS_HAS_SPI(E1) && IS_TX2(E1_CS_PIN)))
#elif HAS_MULTI_EXTRUDER && (IS_TX2(E1_ENABLE_PIN) || (AXIS_HAS_SPI(E1) && IS_TX2(E1_CS_PIN)))
#error "Serial port pins (2) conflict with E1 stepper pins!"
#elif EXTRUDERS && (IS_RX2(E0_DIR_PIN) || IS_RX2(E0_STEP_PIN))
#elif EXTRUDERS && ANY_RX(2, E0_DIR_PIN, E0_STEP_PIN)
#error "Serial port pins (2) conflict with E stepper pins!"
#endif
#undef IS_TX2
#undef IS_RX2
#undef _IS_TX2_1
#undef _IS_RX2_1
#endif
#if SERIAL_PORT == 3 || SERIAL_PORT_2 == 3 || DGUS_SERIAL_PORT == 3
#if ANY_SERIAL_IS(3)
#define PIN_IS_TX3(P) (PIN_EXISTS(P) && P##_PIN == P0_00)
#define PIN_IS_RX3(P) (P##_PIN == P0_01)
#if PIN_IS_TX3(X_MIN) || PIN_IS_RX3(X_MAX)
#error "Serial port pins (3) conflict with X endstop pins!"
#elif PIN_IS_TX3(Y_SERIAL_TX) || PIN_IS_TX3(Y_SERIAL_RX) \
|| PIN_IS_RX3(X_SERIAL_TX) || PIN_IS_RX3(X_SERIAL_RX)
#elif PIN_IS_TX3(Y_SERIAL_TX) || PIN_IS_TX3(Y_SERIAL_RX) || PIN_IS_RX3(X_SERIAL_TX) || PIN_IS_RX3(X_SERIAL_RX)
#error "Serial port pins (3) conflict with X/Y axis UART pins!"
#elif PIN_IS_TX3(X2_DIR) || PIN_IS_RX3(X2_STEP)
#error "Serial port pins (3) conflict with X2 pins!"
@@ -168,17 +178,20 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
#error "Serial port pins (3) conflict with Z3 pins!"
#elif PIN_IS_TX3(Z4_DIR) || PIN_IS_RX3(Z4_STEP)
#error "Serial port pins (3) conflict with Z4 pins!"
#elif EXTRUDERS > 1 && (PIN_IS_TX3(E1_DIR) || PIN_IS_RX3(E1_STEP))
#elif HAS_MULTI_EXTRUDER && (PIN_IS_TX3(E1_DIR) || PIN_IS_RX3(E1_STEP))
#error "Serial port pins (3) conflict with E1 pins!"
#endif
#undef PIN_IS_TX3
#undef PIN_IS_RX3
#endif
#undef ANY_TX
#undef ANY_RX
//
// Flag any i2c pin conflicts
//
#if ANY(HAS_I2C_DIGIPOT, DAC_STEPPER_CURRENT, EXPERIMENTAL_I2CBUS, I2C_POSITION_ENCODERS, PCA9632, I2C_EEPROM)
#if ANY(HAS_MOTOR_CURRENT_I2C, HAS_MOTOR_CURRENT_DAC, EXPERIMENTAL_I2CBUS, I2C_POSITION_ENCODERS, PCA9632, I2C_EEPROM)
#define USEDI2CDEV_M 1 // <Arduino>/Wire.cpp
#if USEDI2CDEV_M == 0 // P0_27 [D57] (AUX-1) .......... P0_28 [D58] (AUX-1)
@@ -192,8 +205,8 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
#error "SDA0 overlaps with BEEPER_PIN!"
#elif IS_SCL0(BTN_ENC)
#error "SCL0 overlaps with Encoder Button!"
#elif IS_SCL0(SS_PIN)
#error "SCL0 overlaps with SS_PIN!"
#elif IS_SCL0(SD_SS_PIN)
#error "SCL0 overlaps with SD_SS_PIN!"
#elif IS_SCL0(LCD_SDSS)
#error "SCL0 overlaps with LCD_SDSS!"
#endif
@@ -214,7 +227,7 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
#error "One or more i2c (1) pins overlaps with Z3 pins! Disable i2c peripherals."
#elif PIN_IS_SDA1(Z4_DIR) || PIN_IS_SCL1(Z4_STEP)
#error "One or more i2c (1) pins overlaps with Z4 pins! Disable i2c peripherals."
#elif EXTRUDERS > 1 && (PIN_IS_SDA1(E1_DIR) || PIN_IS_SCL1(E1_STEP))
#elif HAS_MULTI_EXTRUDER && (PIN_IS_SDA1(E1_DIR) || PIN_IS_SCL1(E1_STEP))
#error "One or more i2c (1) pins overlaps with E1 pins! Disable i2c peripherals."
#endif
#undef PIN_IS_SDA1
@@ -240,9 +253,9 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o
#error "i2c SDA2 overlaps with Z3 enable pin! Disable i2c peripherals."
#elif PIN_IS_SDA2(Z4_ENABLE)
#error "i2c SDA2 overlaps with Z4 enable pin! Disable i2c peripherals."
#elif EXTRUDERS > 1 && PIN_IS_SDA2(E1_ENABLE)
#elif HAS_MULTI_EXTRUDER && PIN_IS_SDA2(E1_ENABLE)
#error "i2c SDA2 overlaps with E1 enable pin! Disable i2c peripherals."
#elif EXTRUDERS > 1 && AXIS_HAS_SPI(E1) && PIN_IS_SDA2(E1_CS)
#elif HAS_MULTI_EXTRUDER && AXIS_HAS_SPI(E1) && PIN_IS_SDA2(E1_CS)
#error "i2c SDA2 overlaps with E1 CS pin! Disable i2c peripherals."
#elif EXTRUDERS && (PIN_IS_SDA2(E0_STEP) || PIN_IS_SDA2(E0_DIR))
#error "i2c SCL2 overlaps with E0 STEP/DIR pin! Disable i2c peripherals."
+31 -11
View File
@@ -37,13 +37,14 @@
#define DATA_SIZE_8BIT SSP_DATABIT_8
#define DATA_SIZE_16BIT SSP_DATABIT_16
#define SPI_CLOCK_DIV2 8333333 //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
#define SPI_CLOCK_DIV4 4166667 //(SCR: 5) desired: 4,000,000 actual: 4,166,667 +4.2% SPI_HALF_SPEED
#define SPI_CLOCK_DIV8 2083333 //(SCR: 11) desired: 2,000,000 actual: 2,083,333 +4.2% SPI_QUARTER_SPEED
#define SPI_CLOCK_DIV16 1000000 //(SCR: 24) desired: 1,000,000 actual: 1,000,000 SPI_EIGHTH_SPEED
#define SPI_CLOCK_DIV32 500000 //(SCR: 49) desired: 500,000 actual: 500,000 SPI_SPEED_5
#define SPI_CLOCK_DIV64 250000 //(SCR: 99) desired: 250,000 actual: 250,000 SPI_SPEED_6
#define SPI_CLOCK_DIV128 125000 //(SCR:199) desired: 125,000 actual: 125,000 Default from HAL.h
#define SPI_CLOCK_MAX_TFT 30000000UL
#define SPI_CLOCK_DIV2 8333333 //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
#define SPI_CLOCK_DIV4 4166667 //(SCR: 5) desired: 4,000,000 actual: 4,166,667 +4.2% SPI_HALF_SPEED
#define SPI_CLOCK_DIV8 2083333 //(SCR: 11) desired: 2,000,000 actual: 2,083,333 +4.2% SPI_QUARTER_SPEED
#define SPI_CLOCK_DIV16 1000000 //(SCR: 24) desired: 1,000,000 actual: 1,000,000 SPI_EIGHTH_SPEED
#define SPI_CLOCK_DIV32 500000 //(SCR: 49) desired: 500,000 actual: 500,000 SPI_SPEED_5
#define SPI_CLOCK_DIV64 250000 //(SCR: 99) desired: 250,000 actual: 250,000 SPI_SPEED_6
#define SPI_CLOCK_DIV128 125000 //(SCR:199) desired: 125,000 actual: 125,000 Default from HAL.h
#define SPI_CLOCK_MAX SPI_CLOCK_DIV2
@@ -61,7 +62,9 @@
class SPISettings {
public:
SPISettings(uint32_t speed, int, int) : spi_speed(speed) {};
SPISettings(uint32_t spiRate, int inBitOrder, int inDataMode) {
init_AlwaysInline(spiRate2Clock(spiRate), inBitOrder, inDataMode, DATA_SIZE_8BIT);
}
SPISettings(uint32_t inClock, uint8_t inBitOrder, uint8_t inDataMode, uint32_t inDataSize) {
if (__builtin_constant_p(inClock))
init_AlwaysInline(inClock, inBitOrder, inDataMode, inDataSize);
@@ -72,7 +75,19 @@ public:
init_AlwaysInline(4000000, MSBFIRST, SPI_MODE0, DATA_SIZE_8BIT);
}
uint32_t spiRate() const { return spi_speed; }
//uint32_t spiRate() const { return spi_speed; }
static inline uint32_t spiRate2Clock(uint32_t spiRate) {
uint32_t Marlin_speed[7]; // CPSR is always 2
Marlin_speed[0] = 8333333; //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
Marlin_speed[1] = 4166667; //(SCR: 5) desired: 4,000,000 actual: 4,166,667 +4.2% SPI_HALF_SPEED
Marlin_speed[2] = 2083333; //(SCR: 11) desired: 2,000,000 actual: 2,083,333 +4.2% SPI_QUARTER_SPEED
Marlin_speed[3] = 1000000; //(SCR: 24) desired: 1,000,000 actual: 1,000,000 SPI_EIGHTH_SPEED
Marlin_speed[4] = 500000; //(SCR: 49) desired: 500,000 actual: 500,000 SPI_SPEED_5
Marlin_speed[5] = 250000; //(SCR: 99) desired: 250,000 actual: 250,000 SPI_SPEED_6
Marlin_speed[6] = 125000; //(SCR:199) desired: 125,000 actual: 125,000 Default from HAL.h
return Marlin_speed[spiRate > 6 ? 6 : spiRate];
}
private:
void init_MightInline(uint32_t inClock, uint8_t inBitOrder, uint8_t inDataMode, uint32_t inDataSize) {
@@ -85,7 +100,7 @@ private:
dataSize = inDataSize;
}
uint32_t spi_speed;
//uint32_t spi_speed;
uint32_t clock;
uint32_t dataSize;
//uint32_t clockDivider;
@@ -111,6 +126,11 @@ public:
*/
SPIClass(uint8_t spiPortNumber);
/**
* Init using pins
*/
SPIClass(pin_t mosi, pin_t miso, pin_t sclk, pin_t ssel = (pin_t)-1);
/**
* Select and configure the current selected SPI device to use
*/
@@ -122,7 +142,7 @@ public:
void end();
void beginTransaction(const SPISettings&);
void endTransaction() {};
void endTransaction() {}
// Transfer using 1 "Data Size"
uint8_t transfer(uint16_t data);
+14 -13
View File
@@ -31,17 +31,18 @@
#include <CDCSerial.h>
#include <usb/mscuser.h>
extern "C" {
#include <debug_frmwrk.h>
}
#include "../../sd/cardreader.h"
#include "../../inc/MarlinConfig.h"
#include "../../core/millis_t.h"
#include "../../sd/cardreader.h"
extern uint32_t MSC_SD_Init(uint8_t pdrv);
extern "C" int isLPC1769();
extern "C" void disk_timerproc();
extern "C" {
#include <debug_frmwrk.h>
extern "C" int isLPC1769();
extern "C" void disk_timerproc();
}
void SysTick_Callback() { disk_timerproc(); }
@@ -89,11 +90,11 @@ void HAL_init() {
//debug_frmwrk_init();
//_DBG("\n\nDebug running\n");
// Initialize the SD card chip select pins as soon as possible
#if PIN_EXISTS(SS)
OUT_WRITE(SS_PIN, HIGH);
#if PIN_EXISTS(SD_SS)
OUT_WRITE(SD_SS_PIN, HIGH);
#endif
#if PIN_EXISTS(ONBOARD_SD_CS) && ONBOARD_SD_CS_PIN != SS_PIN
#if PIN_EXISTS(ONBOARD_SD_CS) && ONBOARD_SD_CS_PIN != SD_SS_PIN
OUT_WRITE(ONBOARD_SD_CS_PIN, HIGH);
#endif
@@ -118,11 +119,11 @@ void HAL_init() {
#endif
USB_Init(); // USB Initialization
USB_Connect(FALSE); // USB clear connection
USB_Connect(false); // USB clear connection
delay(1000); // Give OS time to notice
USB_Connect(TRUE);
USB_Connect(true);
#if DISABLED(NO_SD_HOST_DRIVE)
#if HAS_SD_HOST_DRIVE
MSC_SD_Init(0); // Enable USB SD card access
#endif
+14 -14
View File
@@ -23,7 +23,7 @@
#include "../../core/macros.h"
#if BOTH(SDSUPPORT, HAS_GRAPHICAL_LCD) && (LCD_PINS_D4 == SCK_PIN || LCD_PINS_ENABLE == MOSI_PIN || DOGLCD_SCK == SCK_PIN || DOGLCD_MOSI == MOSI_PIN)
#if BOTH(SDSUPPORT, HAS_MARLINUI_U8GLIB) && (LCD_PINS_D4 == SD_SCK_PIN || LCD_PINS_ENABLE == SD_MOSI_PIN || DOGLCD_SCK == SD_SCK_PIN || DOGLCD_MOSI == SD_MOSI_PIN)
#define LPC_SOFTWARE_SPI // If the SD card and LCD adapter share the same SPI pins, then software SPI is currently
// needed due to the speed and mode required for communicating with each device being different.
// This requirement can be removed if the SPI access to these devices is updated to use
@@ -31,24 +31,24 @@
#endif
/** onboard SD card */
//#define SCK_PIN P0_07
//#define MISO_PIN P0_08
//#define MOSI_PIN P0_09
//#define SS_PIN P0_06
//#define SD_SCK_PIN P0_07
//#define SD_MISO_PIN P0_08
//#define SD_MOSI_PIN P0_09
//#define SD_SS_PIN P0_06
/** external */
#ifndef SCK_PIN
#define SCK_PIN P0_15
#ifndef SD_SCK_PIN
#define SD_SCK_PIN P0_15
#endif
#ifndef MISO_PIN
#define MISO_PIN P0_17
#ifndef SD_MISO_PIN
#define SD_MISO_PIN P0_17
#endif
#ifndef MOSI_PIN
#define MOSI_PIN P0_18
#ifndef SD_MOSI_PIN
#define SD_MOSI_PIN P0_18
#endif
#ifndef SS_PIN
#define SS_PIN P1_23
#ifndef SD_SS_PIN
#define SD_SS_PIN P1_23
#endif
#if !defined(SDSS) || SDSS == P_NC // gets defaulted in pins.h
#undef SDSS
#define SDSS SS_PIN
#define SDSS SD_SS_PIN
#endif
+2 -2
View File
@@ -89,7 +89,7 @@ void TFT_SPI::Init() {
#elif TFT_MISO_PIN == BOARD_SPI2_MISO_PIN
SPIx.setModule(2);
#endif
SPIx.setClock(SPI_CLOCK_MAX);
SPIx.setClock(SPI_CLOCK_MAX_TFT);
SPIx.setBitOrder(MSBFIRST);
SPIx.setDataMode(SPI_MODE0);
}
@@ -125,7 +125,7 @@ uint32_t TFT_SPI::ReadID(uint16_t Reg) {
}
DataTransferEnd();
SPIx.setClock(SPI_CLOCK_MAX);
SPIx.setClock(SPI_CLOCK_MAX_TFT);
#endif
return data >> 7;
+1 -1
View File
@@ -36,7 +36,7 @@
#define DATASIZE_8BIT SSP_DATABIT_8
#define DATASIZE_16BIT SSP_DATABIT_16
#define TFT_IO TFT_SPI
#define TFT_IO_DRIVER TFT_SPI
#define DMA_MINC_ENABLE 1
#define DMA_MINC_DISABLE 0
+5 -3
View File
@@ -1,6 +1,9 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,7 +22,7 @@
#include "../../../inc/MarlinConfig.h"
#if HAS_TFT_XPT2046 || HAS_TOUCH_XPT2046
#if HAS_TFT_XPT2046 || HAS_TOUCH_BUTTONS
#include "xpt2046.h"
#include <SPI.h>
@@ -72,7 +75,6 @@ bool XPT2046::getRawPoint(int16_t *x, int16_t *y) {
if (!isTouched()) return false;
*x = getRawData(XPT2046_X);
*y = getRawData(XPT2046_Y);
SERIAL_ECHOLNPAIR("X: ", *x, ", Y: ", *y);
return isTouched();
}
+8 -5
View File
@@ -1,6 +1,9 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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
@@ -25,16 +28,16 @@
#endif
#ifndef TOUCH_MISO_PIN
#define TOUCH_MISO_PIN MISO_PIN
#define TOUCH_MISO_PIN SD_MISO_PIN
#endif
#ifndef TOUCH_MOSI_PIN
#define TOUCH_MOSI_PIN MOSI_PIN
#define TOUCH_MOSI_PIN SD_MOSI_PIN
#endif
#ifndef TOUCH_SCK_PIN
#define TOUCH_SCK_PIN SCK_PIN
#define TOUCH_SCK_PIN SD_SCK_PIN
#endif
#ifndef TOUCH_CS_PIN
#define TOUCH_CS_PIN CS_PIN
#define TOUCH_CS_PIN SD_SS_PIN
#endif
#ifndef TOUCH_INT_PIN
#define TOUCH_INT_PIN -1

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