Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix more STM32F1 Serial hangs due to overflows #19464

Merged

Conversation

sjasonsmith
Copy link
Contributor

Description

Earlier changes to the STM32F1 serial ISR has eliminated hanging due to serial overflows when using serial 1-5 for Marlin or DGUS communication.

These changes missed the following two usages of Serial, which could still hang:

  1. Malyan LCD, which hard-coded Serial1 in its cpp file.
  2. TMC Hardware Serial

To resolve this, several changes were made:

  1. Add MALYAN_LCD_SERIAL_PORT to Configuration.h.
  2. Update STM32F1 HAL.h to handle this new port like it does for other ports which may control the printer.
  3. Always instantiate all MSerial ports (1-3 or 1-5, depending on board) to allow them to be easily used from pins files.
  4. Make emergency parser optional in MSerial class, so it won't be enabled for MALYAN_LCD or TMC.
  5. Update all STM32F1 pins files to use MSerial instead of Serial.
  6. Add static asserts that detect anything using Serial classes, since they can cause the board to hang.

Benefits

Avoid potentially unsafe hangs when using hardware serial for a Malyan LCD or TMC UART communication.

Configurations

These configurations are for an SKR E3 DIP with TMC 2209 drivers and a Malyan LCD attached to the TFT port.
Using this I was able to reproduce hangs while printing prior to this change, even though this is using SoftwareSerial for the TMC Drivers.

Configurations_Malyan.zip

Related Issues

#18358

@sjasonsmith
Copy link
Contributor Author

I believe the TMC Hardware Serial changes will work, but I have not tested them yet.

This also needs some more work to let this MALYAN_LCD_SERIAL_PORT option work on other HALs, most importantly STM32.

@sjasonsmith
Copy link
Contributor Author

It is building for the STM32 HAL now, but I have not yet tested it. I need to test the following:

  1. Actual behavior using a Malyan LCD with a Malyan control board

  2. STM32F1 Emergency Parser functionality (to make sure I didn't accidentally break it)

@sjasonsmith
Copy link
Contributor Author

@minosg did the original investigation into the Serial hangs and was the remaining person able to still reproduce hangs after the changes from @rhapsodyv. They just posted this comment in the bug report:

@sjasonsmith I would like to report that after 24 hours of non stop testing the PR appears to fix the issue. I didn't modify the malyan lcd and just used the one in the branch, copying over the configurations .

Sir I think that this is it.....

I will try to finish the remaining testing needed on this tonight.

@thinkyhead
Copy link
Member

I consolidated to a single LCD_SERIAL_PORT, did additional cleanup, and now it seems to be in good shape for a test.

@thisiskeithb
Copy link
Member

thisiskeithb commented Sep 24, 2020

Is Serial* and MSerial* the same thing?

I ask because in 4b928b2, the pins file for the SKR Mini E3 V2 (and others) changed X_HARDWARE_SERIAL from Serial4 to MSerial4 as an example.

.pio/build/STM32F103RC_btt_512K_USB/src/src/module/stepper/trinamic.cpp.o: In function `tmc_serial_begin()':
/Volumes/3TB/github/Marlin/Marlin/src/module/stepper/trinamic.cpp:482: warning: undefined reference to `MSerial4'
.pio/build/STM32F103RC_btt_512K_USB/src/src/module/stepper/trinamic.cpp.o: In function `_GLOBAL__sub_I_stepperX':
/Volumes/3TB/github/Marlin/Marlin/src/module/stepper/trinamic.cpp:846: warning: undefined reference to `MSerial4'

It compiles, but I still need to test it on real hardware to see if TMCs work correctly.

@sjasonsmith
Copy link
Contributor Author

Is Serial* and MSerial* the same thing?

I ask because in 4b928b2, the pins file for the SKR Mini E3 V2 (and others) changed X_HARDWARE_SERIAL from Serial4 to MSerial4 as an example.

It compiles, but I still need to test it on real hardware to see if TMCs work correctly.

It will probably crash or otherwise behave badly right now, since it doesn't have the change to MarlinSerial.cpp that makes sure these are always instantiated.

The change to MSerial is important, because it solved the hangs due to the Serial ISR, but part of the change has already been committed and part is still in this PR.

@sjasonsmith
Copy link
Contributor Author

Testing update, related to the current state of this PR (not Keith's comment above):

Malyan LCD is still working fine on an SKR E3 DIP. No hangs observed.

Switched to an SKR Mini E3 1.0, so that I could test with hardware serial for TMC UARTs.
I wanted to see if I could hang the controller with nothing but TMC serial using the Maple interrupt handlers.
I made the following changes, to create my own "worse-case scenario".

  1. Changed back to Serial4 in the pins file, instead of MSerial4
  2. Increase TMC_BAUD_RATE to 500000 to increase the likelihood of a UART overrun.
  3. Enabled MONITOR_DRIVER_STATUS
  4. Dialed my feed rate of my test print up to 200%, which is high as this Malyan LCD lets me go.

I then started the print and sent M122 repeatedly. I reproduced hangs several times within the first 10 queries or so.

With the exact same configuration, but switched back to MSerial (as this PR does)
I can't get anything to hang. I ran M122 until I got tired, I haven't even observed a communication issue. TMCStepper's error detection and retries are probably hiding the overflows that resultsed in hangs when using Serial.

Now to try this on an actual Malyan board...

@sjasonsmith
Copy link
Contributor Author

On a Malyan STM32F070CB board I was able to communicate with the Malyan LCD, which is the main thing I wanted to test with that board.

@sjasonsmith sjasonsmith removed the Needs: Testing Testing is needed for this change label Sep 24, 2020
@sjasonsmith
Copy link
Contributor Author

@thinkyhead I just found one more tiny fix that I pushed.

I think this is ready to go in, I'm not planning any more testing on my end. I didn't test the Emergency Parser. I realized I didn't have a great way to test it since my F1 boards use USB Serial for host communication and not one of the impacted UARTs.

Given the issue @thisiskeithb pointed out, where STM32F1 pins files were already updated to use MSerial for TMC drivers, I think it is pretty urgent to merge this before a huge pile of SKR Mini E3 issues show up.

@thinkyhead
Copy link
Member

thinkyhead commented Sep 24, 2020

I haven't looked too closely at the details of the emergency parser changes, but I see that the initializer structures (e.g., MarlinSerialCfg) already contain a flag whether to apply emergency parser to the serial port. How does the addition of the serial_handles_emergency interact with the existing behavior initializing serial ports as emergency-capable (or not)?

if (Cfg::EMERGENCYPARSER) emergency_parser.update(emergency_state, c);
        if (serial.emergency_parser_enabled)
          emergency_parser.update(serial.emergency_state, c);

@thinkyhead
Copy link
Member

I've done some more review while looking at adding an emergency_parser_enabled() method to all the MarlinSerial classes so they all follow the same semantics….

I see that STM32F1 version of MarlinSerial is inheriting from HardwareSerial, and it doesn't follow the approach that other MarlinSerial classes use. Other varying MarlinSerial classes initialize with a SerialConfig structure that contains a Cfg::EMERGENCYPARSER field.

Should we modify this MarlinSerial class so it follows the same pattern and gets the value from a constant template element, or do you feel it is better going forward for the STM32F1 version to use a const data member flag, as it does now?

I'll push my commit adding emergency_parser_enabled(), and then I'll look at which construction is most efficient.

I also noticed that we could filter out construction of unused serial ports with the addition of an ANY_SERIAL_IS() macro to check whether a given serial port is needed.

@rhapsodyv
Copy link
Member

I see that STM32F1 version of MarlinSerial is inheriting from HardwareSerial, and it doesn't follow the approach that other MarlinSerial classes use. Other varying MarlinSerial classes initialize with a SerialConfig structure that contains a Cfg::EMERGENCYPARSER field.

MarlinSerial from: LPC, STM32F1 and STM32 inherits from the current framework HardwareSerial class.
MarlinSerialCfg is a AVR class, isn't?

But yes, we can try to have a more standard MarlinSerial class. I took STM32 and LPC MarlinSerial as base, when I did it to STM32F1.

@thinkyhead
Copy link
Member

thinkyhead commented Sep 25, 2020

Well, MarlinSerialCfg is just a structure used as a template argument. That technique allows C++ to reduce some redundancy by creating separate classes only if they differ in their initialization, and allows some values to exist as template constants rather than as formal data members. In some cases, it can be more efficient. It tends to reduce SRAM usage. But if SRAM is not too scarce, then the usual C++ practice of having only a single class, but adding fields to modify its behavior can sometimes be more desirable.

Typically, when a question like this arises, we'll try both, see what kind of garbage the compiler produces, and then pick the one that seems less bad.

@sjasonsmith
Copy link
Contributor Author

I also noticed that we could filter out construction of unused serial ports with the addition of an ANY_SERIAL_IS() macro to check whether a given serial port is needed.

Just make sure this includes TMC Hardware Serial. I think I saw a similar macro that was only checking for the three “parsing” ports. This is really only needed for STM32F1, where TMC serial needs to use MSerial to get the safe interrupt handler.

@thinkyhead
Copy link
Member

Just make sure this includes TMC Hardware Serial.

It looks like we may only be able to skip those that are trivially defined. It's unfortunate that the pins files are declaring the hardware ports by name instead of by index. If they were defined by index they could be used both to determine the serial port index they use, but also to determine if an extra serial port needs to be defined for them.

@thinkyhead thinkyhead merged commit da6c831 into MarlinFirmware:bugfix-2.0.x Sep 25, 2020
@sjasonsmith
Copy link
Contributor Author

It's unfortunate that the pins files are declaring the hardware ports by name instead of by index.

Perhaps this could be a good follow up. That would also allow removing the hacky static asserts I used to detect if the wrong serial class was specified.

I’d rather see it as a follow up than block this PR for that work, especially since bugfix is currently broken for some of these F1 boards.

@thinkyhead
Copy link
Member

Agreed.

@sjasonsmith
Copy link
Contributor Author

Looks like the merge beat my last comment. Thanks!

@sjasonsmith sjasonsmith deleted the PR/18358_F1_Serial_Ints branch November 23, 2020 09:22
vgadreau pushed a commit to vgadreau/Marlin that referenced this pull request Dec 9, 2020
joskfg added a commit to sergiq/Marlin that referenced this pull request Apr 26, 2021
* Clean up W25QXXFlash class

* Fix Creality RET6 env - RE (MarlinFirmware#19340)

* [cron] Bump distribution date (2020-09-12)

* Fix Print Stats appearance (MarlinFirmware#19348)

* M872 wait for probe temperature (MarlinFirmware#19344)

* [cron] Bump distribution date (2020-09-13)

* Highlight Creality DWIN menu icons (MarlinFirmware#19368)

* Update Italian language (MarlinFirmware#19365)

* Fix EXP2 pin define for MKS SGEN_L (MarlinFirmware#19369)

* Read from backup TMC StealthChop state (MarlinFirmware#19364)

* Fix extra string substitution bug (MarlinFirmware#19351)

* Touch UI "Leveling" menu, misc. fixes (MarlinFirmware#19349)

* Allow SWD debug on Robin Nano (MarlinFirmware#19345)

* heater_ind_t => heater_id_t

* [cron] Bump distribution date (2020-09-14)

* Improve temperature runaway, idle timeout (MarlinFirmware#19339)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Better choice of code

Followup to MarlinFirmware#19344

* Always show Compiled:

* M115 strings

* Allow E3 V2 DWIN without EEPROM, POWER_LOSS_RECOVERY

* Add missing FTDI EVE menu source (MarlinFirmware#19382)

* More strict STATIC_ITEM_N (MarlinFirmware#19378)

* Only set up SPI pins as needed (MarlinFirmware#19372)

* [cron] Bump distribution date (2020-09-15)

* [cron] Bump distribution date (2020-09-16)

* E3 V2 DWIN cleanup

* More DWIN cleanup

* MarlinUI percent methods for all

* [cron] Bump distribution date (2020-09-17)

* Demo and test multiple PID defaults (MarlinFirmware#19413)

* Fix missing spaces in info menu (MarlinFirmware#19404)

* Add more DWIN commands, docs (MarlinFirmware#19395)

* E3 V2 DWIN: Z-Offset, cleanup, versatility (MarlinFirmware#19384)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* SHOW_REMAINING_TIME for HD44780 character LCD (MarlinFirmware#19416)

* Add warning to ExtUI Bed Mesh Screen. (MarlinFirmware#19397)

- Show a warning on the Mesh Bed Leveling screen if some points aren't probed.

* Fix MKS UI SPI flash typo (MarlinFirmware#19410)

* Expose JOYSTICK_DEBUG to the general user (MarlinFirmware#19394)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Update stale issue message and parameters (MarlinFirmware#19412)

* Update stale issue bot

* Update close-stale.yml

* Update close-stale.yml

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Host Action: Start (MarlinFirmware#19398)

* Move screen for Color UI (MarlinFirmware#19386)

* [cron] Bump distribution date (2020-09-18)

* Fix missing include (MarlinFirmware#19418)

Co-authored-by: ellensp <530024+ellensp@users.noreply.github.com>

* [cron] Bump distribution date (2020-09-19)

* Fix CoreXY compile with backlash cal. (MarlinFirmware#19422)

* Change some dwin defines

* Fix compile for Taz Pro (MarlinFirmware#19424)

* Fix case light brightness save/load (MarlinFirmware#19436)

* Optional Host Start menu item (MarlinFirmware#19443)

* Ultratronics Pro SPI pins (MarlinFirmware#19444)

* Fix Creality DWIN Control menu icons (MarlinFirmware#19441)

* [cron] Bump distribution date (2020-09-20)

* Whitespace cleanup

* Add multi-extruder condition

* Cleanup before MKS changes

* Add HAS_ROTARY_ENCODER

* [cron] Bump distribution date (2020-09-21)

* Add MKS Robin E3P, improve LVGL UI (MarlinFirmware#19442)

* Optional menu item for Assisted Tramming (MarlinFirmware#19447)

* Replace Serial with Serial1 in pins files (MarlinFirmware#19459)

* Update pins_ANET_10.h

* [cron] Bump distribution date (2020-09-22)

* Fix up K8800 pins (MarlinFirmware#19476)

* Define <u8,u8,u8>::softSPI (MarlinFirmware#19419)

* MKS SGEN L V2 adaptable heaters/fans (MarlinFirmware#19462)

* Update board/teensy comment (MarlinFirmware#19456)

* Fix Teensy 4.1 include

* [cron] Bump distribution date (2020-09-23)

* Fix up tests, warnings

* Catch a TMC address conflict early (MarlinFirmware#19458)

* New Touch UI buttons (MarlinFirmware#19465)

* Include pins.h in dependencies script (MarlinFirmware#19468)

* MKS Robin Mini uses ONBOARD_SPI_DEVICE (MarlinFirmware#19460)

* Teensy pins cleanup

* Preserve brightness in EEPROM validate (MarlinFirmware#19485)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Define UART pins for LPC debug based on LPC_PINCFG_UART (MarlinFirmware#19475)

* Whitespace cleanup

* [cron] Bump distribution date (2020-09-24)

* HAL and serial cleanup

Co-Authored-By: Jason Smith <20053467+sjasonsmith@users.noreply.github.com>

* HAL/serial followup

* Fix some pin inits

* [cron] Bump distribution date (2020-09-25)

* Fix and improve STM32F1 serial (MarlinFirmware#19464)

* BigTreeTech SKR E3 Turbo (MarlinFirmware#19500)

* Sanity check old serial names

* TFT: No timeout on Move Screen (MarlinFirmware#19426)

* [cron] Bump distribution date (2020-09-26)

* Escape the M33 string arg (MarlinFirmware#19515)

* Fix MKS Robin undefined pins error (MarlinFirmware#19507)

* Fix SKR 1.4 thermistor pin comments (MarlinFirmware#19510)

* SKR E3 Turbo followup (MarlinFirmware#19513)

* Fix MBL "Click to continue" on Color UI touchscreen (MarlinFirmware#19514)

* Allow ColorUI color customization (MarlinFirmware#19484)

* MMU2 S Mode spins the BMG gears during C0 (MarlinFirmware#19429)

* [cron] Bump distribution date (2020-09-27)

* Tweak MMU beeps, misc. cleanup

* Drop extra Bed PID

* Allow M524 between M23 and M24

* E3 DWIN: General cleanup

* E3 DWIN: "No Media" message

* CardReader cleanup

* [cron] Bump distribution date (2020-09-28)

* LVGL followup fixing "C", etc. (MarlinFirmware#19517)

* Fix Allen Key Probe pin test (MarlinFirmware#19520)

* Working LCD_USE_DMA_FSMC (MarlinFirmware#19522)

* Thermistor: Kis3d Silicone heater + precision cast plate (MarlinFirmware#19528)

* Update AnyCubic deps

* Menu tweak

* Prettier INI

* Rename LCD conditionals (MarlinFirmware#19533)

* MarlinUI for SPI/I2C TFT-GLCD character-based display bridge (MarlinFirmware#19375)

* Update configs to 020007

* Tweaks to git helpers

* Default E3 V2 to English

* Change "Fr" on LCD to ">>" (MarlinFirmware#18830)

* Multi-line comments cleanup (MarlinFirmware#19535)

* Fix diveToFile with open Dir object (MarlinFirmware#19539)

* Fix CardReader diveToFile
* Add CardReader::fileExists

* Improve Power-Loss Recovery (MarlinFirmware#19540)

* Add extra CardReader debugging

* Fetch longname when a file exists

* Fix up E3 DWIN Power Panic

* Anycubic Chiron full feature support (MarlinFirmware#19505)

* [cron] Bump distribution date (2020-09-29)

* Marlin 2.0.7

* Keep HAL tasks running during PID Autotune (MarlinFirmware#19671)

* [cron] Bump distribution date (2020-09-30)

* [cron] Bump distribution date (2020-10-01)

* Fix Move Screen with disabled Touch (MarlinFirmware#19558)

* Fix Buzzer (pin) init for uninitialized FastIO (MarlinFirmware#19559)

* Update Slovak language (MarlinFirmware#19561)

* No move on Park = No move on Resume (MarlinFirmware#19569)

* Fix Anycubic i3 Mega target temperature display (MarlinFirmware#19572)

Also includes a workaround for missing (probably un-fetched) long name in file listing

* G35 workaround for Pronterface "feature" (MarlinFirmware#19577)

* [cron] Bump distribution date (2020-10-02)

* Minor SPI fixes, systick_callback for STM32F1 HAL compatibility (MarlinFirmware#19565)

* Replace tabs with spaces

* Adjust HAL platform defines, comments

* Fix onboard SD card support for Teensy 3.6 & 4.1 (MarlinFirmware#19593)

* Fix compile of MMU2 with S-mode disabled (MarlinFirmware#19584)

* Fix TEMP_ADC_PROBE support for STM32F1 (MarlinFirmware#19582)

Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>

* Fix wrappers on HAL/STM32F1 .cpp files (MarlinFirmware#19581)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Touch UI support for X2, Y2 and Z2 (MarlinFirmware#19538)

* Fix 'bossac' upload on Windows (MarlinFirmware#19545)

* [cron] Bump distribution date (2020-10-03)

* [cron] Bump distribution date (2020-10-04)

* Fix Tune/Fan edit items

- Fixes MarlinFirmware#19617
- Followup to MarlinFirmware#18400

* Shared singlenozzle item

* Fix German translation purging/unloading (MarlinFirmware#19615)

* Move SF_ARC_FIX option

* Fix Z_AFTER_HOMING without probe (MarlinFirmware#19607)

* Add HAS_FAST_MOVES

* Fix Archim1 stepper timing (with new variant) (MarlinFirmware#19596)

* [cron] Bump distribution date (2020-10-05)

* Allow bypass for cold E movement (MarlinFirmware#19606)

* Z Probe Offset Wizard (MarlinFirmware#18866)

* Sync config to examples

* Trailing whitespace

* [cron] Bump distribution date (2020-10-06)

* Improve retract / unretract labels

* Fix Ender-3 V2 DWIN Stop SD Print (MarlinFirmware#19642)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Add Chamber servo vent, auto fan (MarlinFirmware#19519)

* Update language fonts

* [cron] Bump distribution date (2020-10-07)

* Fix small font section directive, mixer warning

* Chamber vent/fan followup

* Restore ° to 6x9 small info font (MarlinFirmware#19645)

* More accessible PROBE_OFFSET_WIZARD (MarlinFirmware#19647)

* [cron] Bump distribution date (2020-10-08)

* Update PROBE_OFFSET_WIZARD comment (MarlinFirmware#19652)

* Apply env:mega2560ext to relevant boards (MarlinFirmware#19624)

* Use 0xFF (not 'ff') for byte transfer

* Permit touch calibration override

* Fix and improve Makefile / CMake (MarlinFirmware#19640)

* [cron] Bump distribution date (2020-10-09)

* Update Italian language (MarlinFirmware#19654)

* Fix touch ifndefs (MarlinFirmware#19661)

* Support for FLY MINI (MarlinFirmware#19185)

* Support for Debug Codes - Dnnn (MarlinFirmware#19225)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Optional `M42`/`M226`; Add more features filters (MarlinFirmware#19664)

* Batch appercase hex values

* [cron] Bump distribution date (2020-10-10)

* HAS_CHARACTER_LCD => HAS_MARLINUI_HD44780 (MarlinFirmware#19673)

* Fixes for TFTGLCD Panel, FastIO (MarlinFirmware#19614)

* Marlin 2.0.7.1

* TFT Refactoring (MarlinFirmware#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 a071ebb.

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

* G34 Mechanical Gantry Calibration (like Prusa M915) (MarlinFirmware#18972)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Sanity-check mutually-exclusive G34 features (MarlinFirmware#19706)

* Fix screen click reading too often (MarlinFirmware#19696)

Co-authored-by: andreibobirica <39415547+andreibobirica@users.noreply.github.com>

* Option to prevent (extra) Watchdog init on STM32 (MarlinFirmware#19693)

* Implement wait_for_user for Color UI (MarlinFirmware#19694)

* Fix UTF8 handling for Color UI (MarlinFirmware#19708)

* Fixes for TFTGLCD Panel, FastIO (MarlinFirmware#19614)

* Restore correct STM32 port-bits code (MarlinFirmware#19678)

* Save PLR on resume from pause (MarlinFirmware#19676)

Co-Authored-By: shahab <32130261+SHBnik@users.noreply.github.com>

* Digipots refactor / cleanup (MarlinFirmware#19690)

* Fix at90usb1286 build (MarlinFirmware#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>

* Fix various errors, warnings in example config builds (MarlinFirmware#19686)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Fix I2C_ADDRESS sign warning (MarlinFirmware#19685)

* Fix motion compile w/out probe-oriented settings (MarlinFirmware#19684)

* Add REPORT_TRAMMING_MM option (MarlinFirmware#19682)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Allow MAX31865 resistance values configuration (MarlinFirmware#19695)

* Add D100 Watchdog Test (MarlinFirmware#19697)

* Add loose soft endstop state, apply to UBL fine-tune (MarlinFirmware#19681)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Fixes for TFTGLCD Panel, FastIO (MarlinFirmware#19614)

* Restore correct STM32 port-bits code (MarlinFirmware#19678)

* [cron] Bump distribution date (2020-10-11)

* Fix various errors, warnings in example config builds (MarlinFirmware#19686)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* [cron] Bump distribution date (2020-10-12)

* [cron] Bump distribution date (2020-10-13)

* Simple bool in soft_endstops_t

* Fix SET_SOFT_ENDSTOP_LOOSE w/out soft endstops (MarlinFirmware#19734)

* [cron] Bump distribution date (2020-10-14)

* [cron] Bump distribution date (2020-10-15)

* Fix mega2560ext environment (MarlinFirmware#19730)

* Watchdog Refresh for LVGL Asset Load (MarlinFirmware#19724)

* TFT followup fixes (MarlinFirmware#19710)

* If needed, home before G34 (MarlinFirmware#19713)

* Add NUCLEO-F767ZI dev board (MarlinFirmware#19373)

Co-authored-by: Lorenzo Delana <lorenzo.delana@gmail.com>

* Don't define IS_ULTIPANEL empty

* Fix HAL/STM32 FastIO for analog pins (MarlinFirmware#19735)

* Fix SAMD Serial name macro (MarlinFirmware#19765)

* Marlin 2.0.7.2

* Update "Bug Report" template (MarlinFirmware#19906)

* Fix bilinear_line_to_destination definition

See MarlinFirmware#19431

* Fix extraneous Linear Advance DIR change (MarlinFirmware#20131)

* Fix bad SET_FAST_PWM_FREQ calls (MarlinFirmware#20227)

* Set "lcd_move_e" index to fix the label (MarlinFirmware#20263)

* Help hosts when password-locked (MarlinFirmware#20348)

* Fix TMC_HOME_PHASE divide by zero (MarlinFirmware#20368)

* Fix TEMP_0_TR_ENABLE

* Fixes for TFTGLCD (MarlinFirmware#20734)

* Fix PR template, lock action

Co-Authored-By: Jason Smith <20053467+sjasonsmith@users.noreply.github.com>

* Ignore M22 during SD print

* Trust XY after Quiet Probing short sleep (MarlinFirmware#21237)

* Clean up labels on close

* Token for "Clean Closed" action (MarlinFirmware#21320)

* Remove one label at a time

* Emojis and donate link

* Add emojis

* Change issue templates to YML

* Enhance workflows

* Auto-label Feature Requests (MarlinFirmware#21348)

* Fix bool++ warning

* Fix Hotend-abort-on-idle Check (MarlinFirmware#21535)

* Sanity Check newer Configs too (MarlinFirmware#21550)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Keep 'confirmed bug' open

* Fix check-pr action

* 'issue_body' obsolete in templates

* Update Issue Templates (MarlinFirmware#21702)

* Fix SDIO buffer alignment (MarlinFirmware#21396)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Co-authored-by: Haxk20 <16738302+Haxk20@users.noreply.github.com>
Co-authored-by: Neskik <axel.gouverneur@gmail.com>
Co-authored-by: Jesse S <jschmidt@aerospike.com>
Co-authored-by: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: ManuelMcLure <manuel@mclure.org>
Co-authored-by: ellensp <ellensp@hotmail.com>
Co-authored-by: Marcio T <mlt4356-github@yahoo.com>
Co-authored-by: mmajoor <m.majoor@majority.nl>
Co-authored-by: Zachary Annand <baconfixation@gmail.com>
Co-authored-by: Victor Oliveira <rhapsodyv@gmail.com>
Co-authored-by: tovam <tovam@users.noreply.github.com>
Co-authored-by: enigmaquip <enigmaquip@users.noreply.github.com>
Co-authored-by: cosmoderp <36945803+cosmoderp@users.noreply.github.com>
Co-authored-by: deram <deram@iki.fi>
Co-authored-by: jahartley <52391697+jahartley@users.noreply.github.com>
Co-authored-by: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Co-authored-by: ellensp <530024+ellensp@users.noreply.github.com>
Co-authored-by: Cole Markham <github@themarkhams.us>
Co-authored-by: qwewer0 <57561110+qwewer0@users.noreply.github.com>
Co-authored-by: makerbase <4164049@qq.com>
Co-authored-by: Chris Pepper <p3p@p3psoft.co.uk>
Co-authored-by: riodoro1 <bialek.rafal@gmail.com>
Co-authored-by: Jason Smith <20053467+sjasonsmith@users.noreply.github.com>
Co-authored-by: Luke Harrison <looxonline@gmail.com>
Co-authored-by: Trocololo <isanchez@neuda.net>
Co-authored-by: Siana Gearz <siana.sg@live.de>
Co-authored-by: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Co-authored-by: Emperor <leetspeak@me.com>
Co-authored-by: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com>
Co-authored-by: Pavel Melnikov <positron96@gmail.com>
Co-authored-by: Nick <nick@n-wells.co.uk>
Co-authored-by: Roman Moravčík <roman.moravcik@gmail.com>
Co-authored-by: Ilya <xxorza@gmail.com>
Co-authored-by: Stéphane <43587190+stef-ladefense@users.noreply.github.com>
Co-authored-by: swissnorp <67485708+swissnorp@users.noreply.github.com>
Co-authored-by: bilsef <bilsef1@gmail.com>
Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
Co-authored-by: Ryan V1 <55478432+V1EngineeringInc@users.noreply.github.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Co-authored-by: Speaka <48431623+Speaka@users.noreply.github.com>
Co-authored-by: Cory Ory <ace@ac3-servers.eu>
Co-authored-by: Mathew Winters <mathew@winters.org.nz>
Co-authored-by: signetica <66766598+signetica@users.noreply.github.com>
Co-authored-by: ladismrkolj <ladismrkolj@gmail.com>
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
Co-authored-by: 石立枫 <49380822+FLYmaker@users.noreply.github.com>
Co-authored-by: andreibobirica <39415547+andreibobirica@users.noreply.github.com>
Co-authored-by: shahab <32130261+SHBnik@users.noreply.github.com>
Co-authored-by: Earle F. Philhower, III <earlephilhower@yahoo.com>
Co-authored-by: Lorenzo Delana <lorenzo.delana@gmail.com>
Co-authored-by: phcay <58492957+phcay@users.noreply.github.com>
Co-authored-by: Simone Primarosa <simonepri@outlook.com>
Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com>
Co-authored-by: ldursw <37294448+ldursw@users.noreply.github.com>
kageurufu pushed a commit to CR30-Users/Marlin-CR30 that referenced this pull request Apr 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants