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 extra (breaking) TMC serial begin calls #17351

Merged
merged 3 commits into from
Apr 1, 2020

Conversation

simon-jouet
Copy link
Contributor

@simon-jouet simon-jouet commented Mar 31, 2020

Description

Using my ESP32 board, the I2S stepper stream doesn't work when using more than one TMC2209. With just one driver it's working perfectly fine, but as soon as a second driver is enabled the i2s stream data isn't working.

I am pretty convinced that the issue is because the Serial2 HardwareSerial is initialised somewhere and therefore pin 17 is redefined from being the I2S output to be the default Serial2 TX pin. By initialising I2S after the Serial port then we can properly define the pin direction and function overriding any default initialisation from the Serial port.

I think this however is hiding an issue in the serial port initialisation somewhere else, in my config Serial2 should never be used. I believe the issue might be coming from the TMC code for two reasons:

  1. It only happens with TMC2209 enabled... (I haven't tried with other trinamic drivers but it's not an issue with DRV8825)
  2. The ESP32 initialisation is done in both HAL_init() and HAL_init_board(), HAL_init() is done before everything else, while HAL_init_board() is done after a few things including the TMC initialisation. If I follow the same sequence of initialisation but place it in HAL_init() then it doesn't work (hence something redefined pin 17). If it's placed in HAL_init_board at it is now, then it's working fine.

Going through the code, I couldn't find where Serial2 could be initialised even if it's not enabled, and I didn't spend much time going through the TMC code

@thinkyhead
Copy link
Member

Using my ESP32 board

What board would that be?

…because the Serial2 HardwareSerial is initialised somewhere…

I see this in ESP32 for those using ESP3D_WIFISUPPORT

    #define MYSERIAL1 Serial2Socket

I'm not sure if that could be coming into play, or if it relates to the common Arduino "Serial2."

I'll take a look at the TMC stuff, but I can't imagine how pin 17 would be affected by UART initialization of a different and unused serial port, unless it's in the ESP32 platform's own Serial init.

In any case, I've been looking at whether we could init the Arduino-flavored serial ports as the first step in setup(), ahead of the HAL_init. That might be something to try here also.

@thinkyhead thinkyhead added C: Peripherals C: Serial Comms F: Trinamic T: HAL & APIs Topic related to the HAL and internal APIs. labels Mar 31, 2020
@simon-jouet
Copy link
Contributor Author

What board would that be?

It's the next iteration of the ESP32 I sent you previously, this one include i2s stepping and was the basis for a few other ESP32 boards and the reference for the current i2s implementation in Marlin. https://github.com/simon-jouet/ESP32Controller/tree/r2 (I still have to send you one of those, but now is probably not the time)

I see this in ESP32 for those using ESP3D_WIFISUPPORT…

#define MYSERIAL1 Serial2Socket
I'm not sure if that could be coming into play, or if it relates to the common Arduino "Serial2."

I had a quick look at that when debugging but I'm pretty sure that this is not Serial2 but the bridge to allow serial messages to be sent over wifi. @luc-github would be the ones to know that though

I'll take a look at the TMC stuff, but I can't imagine how pin 17 would be affected by UART initialization of a different and unused serial port, unless it's in the ESP32 platform's own Serial init.

I think port 17 here doesn't matter too much, it's just that on the ESP32 most peripherals can be routed to different GPIOs using the GPIO matrix and by default port 17 is used as TX for Serial2.

You're right it could be something to do with the ESP32 serial init, the reason I don't think it's the case it's because if I just have one TMC2209 configured everything is working fine. In that case Serial2 doesn't get initialised and the stepping is working fine. Also if it's the ESP32 initialisation, I would have expected what's in board_init() to work in hal_init() before the TMC are initialised but it doesn't and after that none of the Serial config is modified by the ESP32 HAL.

My guess (very much so) was that the Serial devices are used in sequence for the different TMC2209 drivers, but when using one UART shared between multiple drivers then some serial devices get initialised when the shouldn't. (Like I say that's a bit of a wild guess)

I will keep looking when i've got some time, I would like to find the source of the redefinition

@luc-github
Copy link
Contributor

Serial2Socket is just a name for class bridge to wifi (Serial to Socket), nothing related to Serial2

@vivian-ng
Copy link
Contributor

@simon-jouet

Going through the code, I couldn't find where Serial2 could be initialised even if it's not enabled, and I didn't spend much time going through the TMC code

Could this portion in HardwareSerial.cpp in the arduino-esp32 core be creating the serial objects?

#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL)
HardwareSerial Serial(0);
HardwareSerial Serial1(1);
HardwareSerial Serial2(2);
#endif

The thing is, even though the serial objects would be initialized with these lines, the actual assignment of pins seems to be done only if begin() is called.

@simon-jouet
Copy link
Contributor Author

simon-jouet commented Apr 1, 2020

@vivian-ng thanks for that

I figured the issue, and it's a compound issue of how the TMC initialisation works and an issue in arduino-esp32

I was able to reproduce exactly the same issue simply by commenting out tmc_serial_begin(); in MarlinCore.cpp and just having two Serial1.begin(115200). If I comment out the end() in the HardwareSerial implementation then it works.

Although there is clear issue in the HardwareSerial implementation of the esp32 I do think the trinamic code should not call .begin() multiple times on the same serial port as from everything i'm reading this is not correct without first flushing and ending the serial port.

Hope that clarifies the issue here!

@thinkyhead
Copy link
Member

Thanks for the insights. If all the serial classes were under our control it would be easy to add a "did_begin" flag. The actual solution won't be quite as pretty, but I think I can get it together pretty quickly.

@thinkyhead thinkyhead changed the title Initialize i2s after serial ports Fix extra (breaking) TMC serial begin calls Apr 1, 2020
@thinkyhead
Copy link
Member

I'd be curious to see if -DNO_GLOBAL_SERIAL makes much of a difference in build size, if at all. We only need to declare the hardware serial ports we're actually using, after all.

@thinkyhead
Copy link
Member

Ok, this should do the trick to prevent extra initialization. The compiler might even be smart enough to see the invariance and strip out the unused initializations. If we wanted to do the same thing with the TMC steppers connected to software serial ports, we'd need to modify the TMCStepper class to expose some things that are currently protected. But AFAIK there's no similar issue with the software ports at this time.

@thinkyhead thinkyhead merged commit 192c7c2 into MarlinFirmware:bugfix-2.0.x Apr 1, 2020
@simon-jouet
Copy link
Contributor Author

Thanks @thinkyhead for that. I will have a look at your point regarding -DNO_GLOBAL_SERIAL when I've got some spare time

@simon-jouet
Copy link
Contributor Author

@thinkyhead I think there is a small typo in your commit, it should be !sp_helper.began then begin not the other way around.

#define HW_SERIAL_BEGIN(A) do{ if (!sp_helper.began(TMCAxis::A, &A##_HARDWARE_SERIAL)) \

thinkyhead added a commit that referenced this pull request Apr 2, 2020
@thinkyhead
Copy link
Member

Thanks @simon-jouet — Clearly quarantine has me losing my mind.

DerAndere1 pushed a commit to DerAndere1/Marlin that referenced this pull request Apr 9, 2020
DerAndere1 pushed a commit to DerAndere1/Marlin that referenced this pull request Apr 9, 2020
ghost pushed a commit to bfhobbes/Marlin that referenced this pull request Apr 15, 2020
ghost pushed a commit to bfhobbes/Marlin that referenced this pull request Apr 15, 2020
mathom pushed a commit to mathom/Marlin that referenced this pull request Apr 17, 2020
mathom pushed a commit to mathom/Marlin that referenced this pull request Apr 17, 2020
ursoft added a commit to ursoft/Marlin that referenced this pull request May 9, 2020
* Add TMC micro-steps sanity check (MarlinFirmware#17044)

Co-authored-by: Scott Lahteine <[email protected]>

* Suppress thisItemNr warning (MarlinFirmware#17049)

* Don't define 'valptr' if unused (MarlinFirmware#17048)

* Fix ambiguous type

Co-Authored-By: Andrew Kroll <[email protected]>

* fix #33

* Fix G34 probing range/error bug (MarlinFirmware#17052)

* Default on/off for Power Loss Recovery (MarlinFirmware#17051)

* Fix nested comment warning (MarlinFirmware#17045)

* Keep name around for old configs

* Finish M900 updates

* Add single extruder LIN_ADVANCE test

* Neopixel on LPC uses GPIO toggling

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

* Fix MMU test

* fix #34

* No more direct G28 calls

* Asynchronous M114 and (R)ealtime position option (MarlinFirmware#17032)

* Minor EEPROM cleanup

* Software SPI for 12864 fix #31

* fix #1

* General code cleanup

* mftest: Set machine name

* Fix EEPROM compile errors

* Use BED_MAXTEMP for PTC_MAX_BED_TEMP (MarlinFirmware#17061)

* Update FYSETC S6 pins/variants (MarlinFirmware#17056)

* Fix TEMP_PROBE_PIN for SKR 1.4

Co-Authored-By: Anthrix <[email protected]>

* fix #36

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

* fix #35 в основном за счет кеширования

* Move shared code to wait_for_bed_heating

* Avoid name conflict with 'UART'

* Allow Z_STOP_PIN override on SKR 1.4 (MarlinFirmware#17063)

* SAMD51 SoftwareSerial (MarlinFirmware#17041)

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

* Move SENSORLESS_PROBING to the probes section

Fixes a bug with HAS_BED_PROBE not being set before use.

* Fix SKR test for ONBOARD SD

* Fix CI test for SENSORLESS_PROBING

* Define Z_MIN_PROBE_PIN for Cohesion 3D Remix

* Update Turkish language (MarlinFirmware#17070)

* Update Chinese (TW) language (MarlinFirmware#17071)

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

* Add pins to the pins debug list

* Clean up pins debugging

* Fix M0/M1 message string

* Non-blocking Max7219 test pattern

* Change PID dummy value to NAN

Fixes MarlinFirmware#17078

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

* Pins debug followup

* Max7219 init last

* Max7219 suspend/resume

* More pins debugging cleanup

* Emergency Parser dumb terminal compatibility

* Add / correct comments

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

* More useful ENABLED / DISABLED macros (MarlinFirmware#17054)

* Revert that wack backoff

* More general SD_DETECT_INVERTED override

* [ToolChanger] Lock the current tool at power-up (MarlinFirmware#17093)

* Fixes for Z4 axis, CS pins (MarlinFirmware#17097)

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

* fix #37

* Add debug logging for setup()

* Move 'last_pause_state' closer to usage

* Additional numtostr functions

* DOGM SPI delay is less common

* Make BOOTSCREEN_TIMEOUT generally available

* Ensure welcome message

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

* SD_DETECT_INVERTED => SD_DETECT_STATE (MarlinFirmware#17112)

* Fix Z4 stepper indirection macros (MarlinFirmware#17107)

* Always look for PLR file, but more quickly

* Fix broken enqueue_P

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

* Tweaks to finishSDPrinting (MarlinFirmware#17082)

* Fix G34, add HOME_AFTER_G34 option (MarlinFirmware#17108)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix pio environments for Anet 1.x (MarlinFirmware#17109)

* M220 print FR percentage (MarlinFirmware#17101)

* fix #38

* fix #23

* Announce SD file open

Requested in MarlinFirmware#17110

* Apply soft limits to joystick jogging (MarlinFirmware#17114)

* Fix and update DGUS displays (MarlinFirmware#17072)

* Revert Anet 1.x envs change (MarlinFirmware#17120)

* Non-const REMEMBER needed for RESTORE

* More explicit EEPROM types (MarlinFirmware#17127)

* Fix STM32 _WRITE macro parameter (MarlinFirmware#17121)

* Fix M810 macro multiple use

Fixes MarlinFirmware#17125

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

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

* Use arduinoststm32 3.x for FYSETC S6 (MarlinFirmware#17131)

* Fix BAUD_RATE_GCODE, etc. (MarlinFirmware#17135)

* Fix DUGS / DGUS typo

* Add OnPidTuning event to Malyan LCD (MarlinFirmware#17143)

All ExtUI LCDs need to keep up with ExtUI API changes.

* Shorten German BLTouch menu item names (MarlinFirmware#17151)

* Fix Emergency Parser stuck state

* Fix end of short (auto0.g) prints

* M0 Q preserve status

* Shorter paths to HAL, ExtUI (MarlinFirmware#17156)

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

* Fix G26 corrupted position

* Apply loop shorthand macros (MarlinFirmware#17159)

* Quad Z leveling, G34 (R)ecalculate (MarlinFirmware#17122)

* Config version 020005

* Allow Tool Offset adjustments to have another digit of precision

Some of the items in the Tool Offset Adjustment menu (in particular, the Z Offset!!!) were only adjustable with .1mm accuracy.
This is not enough.    So the edit menu is switched to float52 to fix the issue.

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

* Fix LCD progress bar

Fixes MarlinFirmware#17162

* Add EEPROM_BOOT_SILENT option

* Do later mounting of LCD-based SD

* Add a global machine state

* #39 - скорость и слои

* #35 improved

* Fix incorrect type on ubl_storage_slot (MarlinFirmware#17170)

* Fix Z after ABL Bilinear G29 with fade

Co-Authored-By: Alan T <[email protected]>

* Fix G34 Z lower, extra "BLTOUCH" debug line (MarlinFirmware#17175)

* Configurable SLOWDOWN divisor (MarlinFirmware#17171)

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

* Shorter LCD remaining time to prevent overlap (MarlinFirmware#17181)

* LPC1768 EEPROM fallback to flash, add overrides (MarlinFirmware#17184)

* Fix Z_MIN_PROBE_PIN on SKR 1.4 (MarlinFirmware#17187)

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

* мелкие исправления

* Fix MKS SBASE 1.6 E1 heater pin (MarlinFirmware#17191)

* ARMED support for TMC UART, probe temp (MarlinFirmware#17186)

* Apply HAS_TMC_UART to pins files

* More decimal places for babystep / Z probe offset (MarlinFirmware#17195)

* Add Copymaster3D board (MarlinFirmware#17188)

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

* Tweak some lambdas

* New Controller Fan options and M710 gcode (MarlinFirmware#17149)

* Implement CONTROLLER_FAN_USE_Z_ONLY

Followup to MarlinFirmware#17149

* Add M42 M, improve M43 (MarlinFirmware#17173)

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

* #41 исправлена порча памяти в меню движения по оси Z

* Fix FYSETC mini 12864 init / glitches (MarlinFirmware#17209)

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

* fix #41

* fix #26

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

* Split up STM32 pins files (MarlinFirmware#17212)

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

* Stay at v0.91 of USBComposite for STM32F1

* whitespace

* Use pin/port names for CHITU pins

* Add a pins formatting script

* Format some pins files

* fix #39

* Fix custom version file include

* Tweak serial port descriptions

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

* Fix Copymaster Y_MAX pin (MarlinFirmware#17267)

* Fix CONTROLLER_FAN options compile

* Skip impossible PWM sanity-checks

* Fix an unused var warning

* Add USB serial support to SERIAL_PORT_2 on DUE (MarlinFirmware#17245)

Co-authored-by: Scott Lahteine <[email protected]>

* DGUS updates (MarlinFirmware#17260)

* Fix extra M114 output line

Fixes MarlinFirmware#17255

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

* Delay after homing_backoff for CoreXY sensorless homing (MarlinFirmware#17273)

* Sanity-check CORE backlash axes (MarlinFirmware#17279)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix limits on acceleration editing (MarlinFirmware#17280)

* Fix Emergency Parser on DUE (MarlinFirmware#17276)

Co-authored-by: Scott Lahteine <[email protected]>

* Add SoftwareSerialM for MKS Robin (MarlinFirmware#17207)

* Sanity check CONTROLLERFAN_SECS

* Adjust for timing shift on Max7219 displays on AVR's

Something has shifted.   The previous timing delays on the Max7219 debug displays is too tight without this correction.
I suspect something has been optimized and roughly 50ns of needed setup and hold time has disappeared.
This corrects the issue and the display results are clean again.

* Update LCD timing on Formbot T-Rex 2+ machines

The code is slightly more optimized than it used to be and this has caused the setup and hold times on the Formbot T-Rex 2+ machines to be insufficient.   This change gives sufficient margin and the LCD Display is clean again.

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

* Allow PID_DEBUG to be turned on and off (MarlinFirmware#17284)

M303 D will now toggle activation of PID_DEBUG output.   This allows the debug capability to be built into the firmware, but turned on and off as needed.

* M303 followup

- Put 'D' before other params for clean exit.
- Use serial on/off for debug status.

* Drop old comment

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

* Use "dist" instead of "delta" for clarity

* Allow G2_PWM to be slimmer

* motion.cpp: HAS_DIST_MM_ARG

* Fix M0 unused var warning

* Update Russian language (MarlinFirmware#17290)

* Update Italian language (MarlinFirmware#17293)

* Tweak eeprom storage type

* Tweak ui.finish_status

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

* small fixes after merge

* Fix SD finished ExtUI / host action (MarlinFirmware#17285)

* QSPI EEPROM for SAMD51 (MarlinFirmware#17292)

* Fix Stepper PWM menu (MarlinFirmware#17298)

* Store case light brightness in EEPROM (MarlinFirmware#17307)

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

* Add Funmat HT V4.0 board support (MarlinFirmware#17305)

Co-authored-by: Scott Lahteine <[email protected]>

* Limited backlash editing with Core kinematics (MarlinFirmware#17281)

* Simplify TWIBus debug

* Clean up user-wait, SD completion (MarlinFirmware#17315)

* fix #42

* Fix typo...

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

* Fix Trigorilla 1.4 missing spaces

* Fix STM32F1 USB Composite Dependency

Co-authored-by: Lord-Quake <[email protected]>

* Fix extra unskew call

Fixes MarlinFirmware#17264

* do_pause_e_move => unscaled_e_move

* Minor HAL cleanup

* No unscaled_e_move for CNC

* Load balance some tests

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

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

* Pulldown for all FastIO headers

Co-Authored-By: borsegbr <[email protected]>

* Fix last arc segment

Co-Authored-By: ellensp <[email protected]>

* Additional TERN macros

* Fix Fysetc stm32flash usage (MarlinFirmware#17331)

* STM32F1: Restore M43 build support (MarlinFirmware#17336)

* Improve / fix FTDI EVE Touch UI (MarlinFirmware#17338)

- Fix timeout and debugging string
- Fix check for whether `LCD_TIMEOUT_TO_STATUS` is valid
- Fix incorrect debugging message
- Make capitalization of callbacks consistent.
- Allow Touch UI to use hardware SPI on Einsy boards
- Move print stats to About Printer page.
- More generic about screen with GPL license.
- Add missing handler for power loss event
- Less code duplication on status screen and main/advanced menu; more legible
- Reorganize advanced and main menu to add more features
- Hide home Z button when using Z_SAFE_HOMING
- Fix compilation errors when certain features enabled
- Fix missing labels in UI
- Improve color scheme
- Add new preheat menus
- Fix incorrect rendering of Marlin logo on boot
- Add Level X Axis and Auto calibrate buttons

* Shorten some internal pin names

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

* Fix M710 report formatting (MarlinFirmware#17356)

* Fix extra TMC serial begin calls (MarlinFirmware#17351)

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

* More 8 extruders (TMC) support

* Minor code cleanup

* Fix up 'system' includes

* Fix ESP32 eeprom flag

* Clean up UI declarations, apply TERN_

* fix #32

* fix #45

* voltage

* fix #33

* fix #33

* fix typo in #34

* уточнил оранжевый и желтый цвета под свой дисплей

* Переключил TMC2208 UART на 256 шагов вместо 16

* отключил интерполяцию для всех, принудительно 64 микрошага на экструдер, пересчитал шаги для бмг

* таймаут дисплея измени до 15 минут, отрабатывал не так как надо в начале печати

* Revert "Переключил TMC2208 UART на 256 шагов вместо 16"

This reverts commit c32f37f.

* Revert "отключил интерполяцию для всех, принудительно 64 микрошага на экструдер, пересчитал шаги для бмг"

This reverts commit 4b20493.

* вернул настройки tmc как было до экспериментов с микрошагами

* поправил под актуальный pid e

* fix #46

* 10 минут таймаут дисплея

* убрал la понизил скорость кулера на хотенде

* двигатели 900 ма

* Update Configuration_adv.h

* update

* Revert "Merge branch 'bugfix-2.0.x-UltiSteel-ssavickiy' into ssavickiy"

This reverts commit bd0938a, reversing
changes made to a95b5db.

Co-authored-by: Jason Smith <[email protected]>
Co-authored-by: Scott Lahteine <[email protected]>
Co-authored-by: ellensp <[email protected]>
Co-authored-by: Andrew Kroll <[email protected]>
Co-authored-by: Юрий Першин <[email protected]>
Co-authored-by: jufimu12 <[email protected]>
Co-authored-by: InsanityAutomation <[email protected]>
Co-authored-by: thisiskeithb <[email protected]>
Co-authored-by: thinkyhead <[email protected]>
Co-authored-by: George Fu <[email protected]>
Co-authored-by: Anthrix <[email protected]>
Co-authored-by: MangaValk <[email protected]>
Co-authored-by: Vert <[email protected]>
Co-authored-by: Daniel Kreuzhofer (@danieldotnet) <[email protected]>
Co-authored-by: Gurmeet Athwal <[email protected]>
Co-authored-by: Jamie <[email protected]>
Co-authored-by: BigTreeTech <[email protected]>
Co-authored-by: nick-diel <[email protected]>
Co-authored-by: Erkan Colak <[email protected]>
Co-authored-by: Roxy-3D <[email protected]>
Co-authored-by: Karl Andersson <[email protected]>
Co-authored-by: Alan T <[email protected]>
Co-authored-by: Giuliano Zaro <[email protected]>
Co-authored-by: Pascal de Bruijn <[email protected]>
Co-authored-by: Joe Prints <[email protected]>
Co-authored-by: RasmusAaen <[email protected]>
Co-authored-by: rado79 <[email protected]>
Co-authored-by: mkpfalz <[email protected]>
Co-authored-by: MarkMan0 <[email protected]>
Co-authored-by: Acenotass <[email protected]>
Co-authored-by: Mathias Rasmussen <[email protected]>
Co-authored-by: oscarsan1 <[email protected]>
Co-authored-by: thisiskeithb <[email protected]>
Co-authored-by: Lord-Quake <[email protected]>
Co-authored-by: borsegbr <[email protected]>
Co-authored-by: Eric Ptak <[email protected]>
Co-authored-by: Tanguy Pruvot <[email protected]>
Co-authored-by: Marcio T <[email protected]>
Co-authored-by: Marcelo Castagna <[email protected]>
Co-authored-by: Simon Jouet <[email protected]>
Co-authored-by: Юрий Першин <[email protected]>
ursoft added a commit to ursoft/Marlin that referenced this pull request May 23, 2020
* Suppress thisItemNr warning (MarlinFirmware#17049)

* Don't define 'valptr' if unused (MarlinFirmware#17048)

* Fix ambiguous type

Co-Authored-By: Andrew Kroll <[email protected]>

* fix #33

* Fix G34 probing range/error bug (MarlinFirmware#17052)

* Default on/off for Power Loss Recovery (MarlinFirmware#17051)

* Fix nested comment warning (MarlinFirmware#17045)

* Keep name around for old configs

* Finish M900 updates

* Add single extruder LIN_ADVANCE test

* Neopixel on LPC uses GPIO toggling

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

* Fix MMU test

* fix #34

* No more direct G28 calls

* Asynchronous M114 and (R)ealtime position option (MarlinFirmware#17032)

* Minor EEPROM cleanup

* Software SPI for 12864 fix #31

* fix #1

* General code cleanup

* mftest: Set machine name

* Fix EEPROM compile errors

* Use BED_MAXTEMP for PTC_MAX_BED_TEMP (MarlinFirmware#17061)

* Update FYSETC S6 pins/variants (MarlinFirmware#17056)

* Fix TEMP_PROBE_PIN for SKR 1.4

Co-Authored-By: Anthrix <[email protected]>

* fix #36

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

* fix #35 в основном за счет кеширования

* Move shared code to wait_for_bed_heating

* Avoid name conflict with 'UART'

* Allow Z_STOP_PIN override on SKR 1.4 (MarlinFirmware#17063)

* SAMD51 SoftwareSerial (MarlinFirmware#17041)

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

* Move SENSORLESS_PROBING to the probes section

Fixes a bug with HAS_BED_PROBE not being set before use.

* Fix SKR test for ONBOARD SD

* Fix CI test for SENSORLESS_PROBING

* Define Z_MIN_PROBE_PIN for Cohesion 3D Remix

* Update Turkish language (MarlinFirmware#17070)

* Update Chinese (TW) language (MarlinFirmware#17071)

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

* Add pins to the pins debug list

* Clean up pins debugging

* Fix M0/M1 message string

* Non-blocking Max7219 test pattern

* Change PID dummy value to NAN

Fixes MarlinFirmware#17078

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

* Pins debug followup

* Max7219 init last

* Max7219 suspend/resume

* More pins debugging cleanup

* Emergency Parser dumb terminal compatibility

* Add / correct comments

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

* More useful ENABLED / DISABLED macros (MarlinFirmware#17054)

* Revert that wack backoff

* More general SD_DETECT_INVERTED override

* [ToolChanger] Lock the current tool at power-up (MarlinFirmware#17093)

* Fixes for Z4 axis, CS pins (MarlinFirmware#17097)

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

* fix #37

* Add debug logging for setup()

* Move 'last_pause_state' closer to usage

* Additional numtostr functions

* DOGM SPI delay is less common

* Make BOOTSCREEN_TIMEOUT generally available

* Ensure welcome message

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

* SD_DETECT_INVERTED => SD_DETECT_STATE (MarlinFirmware#17112)

* Fix Z4 stepper indirection macros (MarlinFirmware#17107)

* Always look for PLR file, but more quickly

* Fix broken enqueue_P

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

* Tweaks to finishSDPrinting (MarlinFirmware#17082)

* Fix G34, add HOME_AFTER_G34 option (MarlinFirmware#17108)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix pio environments for Anet 1.x (MarlinFirmware#17109)

* M220 print FR percentage (MarlinFirmware#17101)

* fix #38

* fix #23

* Announce SD file open

Requested in MarlinFirmware#17110

* Apply soft limits to joystick jogging (MarlinFirmware#17114)

* Fix and update DGUS displays (MarlinFirmware#17072)

* Revert Anet 1.x envs change (MarlinFirmware#17120)

* Non-const REMEMBER needed for RESTORE

* More explicit EEPROM types (MarlinFirmware#17127)

* Fix STM32 _WRITE macro parameter (MarlinFirmware#17121)

* Fix M810 macro multiple use

Fixes MarlinFirmware#17125

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

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

* Use arduinoststm32 3.x for FYSETC S6 (MarlinFirmware#17131)

* Fix BAUD_RATE_GCODE, etc. (MarlinFirmware#17135)

* Fix DUGS / DGUS typo

* Add OnPidTuning event to Malyan LCD (MarlinFirmware#17143)

All ExtUI LCDs need to keep up with ExtUI API changes.

* Shorten German BLTouch menu item names (MarlinFirmware#17151)

* Fix Emergency Parser stuck state

* Fix end of short (auto0.g) prints

* M0 Q preserve status

* Shorter paths to HAL, ExtUI (MarlinFirmware#17156)

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

* Fix G26 corrupted position

* Apply loop shorthand macros (MarlinFirmware#17159)

* Quad Z leveling, G34 (R)ecalculate (MarlinFirmware#17122)

* Config version 020005

* Allow Tool Offset adjustments to have another digit of precision

Some of the items in the Tool Offset Adjustment menu (in particular, the Z Offset!!!) were only adjustable with .1mm accuracy.
This is not enough.    So the edit menu is switched to float52 to fix the issue.

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

* Fix LCD progress bar

Fixes MarlinFirmware#17162

* Add EEPROM_BOOT_SILENT option

* Do later mounting of LCD-based SD

* Add a global machine state

* #39 - скорость и слои

* #35 improved

* Fix incorrect type on ubl_storage_slot (MarlinFirmware#17170)

* Fix Z after ABL Bilinear G29 with fade

Co-Authored-By: Alan T <[email protected]>

* Fix G34 Z lower, extra "BLTOUCH" debug line (MarlinFirmware#17175)

* Configurable SLOWDOWN divisor (MarlinFirmware#17171)

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

* Shorter LCD remaining time to prevent overlap (MarlinFirmware#17181)

* LPC1768 EEPROM fallback to flash, add overrides (MarlinFirmware#17184)

* Fix Z_MIN_PROBE_PIN on SKR 1.4 (MarlinFirmware#17187)

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

* мелкие исправления

* Fix MKS SBASE 1.6 E1 heater pin (MarlinFirmware#17191)

* ARMED support for TMC UART, probe temp (MarlinFirmware#17186)

* Apply HAS_TMC_UART to pins files

* More decimal places for babystep / Z probe offset (MarlinFirmware#17195)

* Add Copymaster3D board (MarlinFirmware#17188)

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

* Tweak some lambdas

* New Controller Fan options and M710 gcode (MarlinFirmware#17149)

* Implement CONTROLLER_FAN_USE_Z_ONLY

Followup to MarlinFirmware#17149

* Add M42 M, improve M43 (MarlinFirmware#17173)

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

* #41 исправлена порча памяти в меню движения по оси Z

* Fix FYSETC mini 12864 init / glitches (MarlinFirmware#17209)

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

* fix #41

* fix #26

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

* Split up STM32 pins files (MarlinFirmware#17212)

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

* Stay at v0.91 of USBComposite for STM32F1

* whitespace

* Use pin/port names for CHITU pins

* Add a pins formatting script

* Format some pins files

* fix #39

* Fix custom version file include

* Tweak serial port descriptions

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

* Fix Copymaster Y_MAX pin (MarlinFirmware#17267)

* Fix CONTROLLER_FAN options compile

* Skip impossible PWM sanity-checks

* Fix an unused var warning

* Add USB serial support to SERIAL_PORT_2 on DUE (MarlinFirmware#17245)

Co-authored-by: Scott Lahteine <[email protected]>

* DGUS updates (MarlinFirmware#17260)

* Fix extra M114 output line

Fixes MarlinFirmware#17255

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

* Delay after homing_backoff for CoreXY sensorless homing (MarlinFirmware#17273)

* Sanity-check CORE backlash axes (MarlinFirmware#17279)

Co-authored-by: Scott Lahteine <[email protected]>

* Fix limits on acceleration editing (MarlinFirmware#17280)

* Fix Emergency Parser on DUE (MarlinFirmware#17276)

Co-authored-by: Scott Lahteine <[email protected]>

* Add SoftwareSerialM for MKS Robin (MarlinFirmware#17207)

* Sanity check CONTROLLERFAN_SECS

* Adjust for timing shift on Max7219 displays on AVR's

Something has shifted.   The previous timing delays on the Max7219 debug displays is too tight without this correction.
I suspect something has been optimized and roughly 50ns of needed setup and hold time has disappeared.
This corrects the issue and the display results are clean again.

* Update LCD timing on Formbot T-Rex 2+ machines

The code is slightly more optimized than it used to be and this has caused the setup and hold times on the Formbot T-Rex 2+ machines to be insufficient.   This change gives sufficient margin and the LCD Display is clean again.

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

* Allow PID_DEBUG to be turned on and off (MarlinFirmware#17284)

M303 D will now toggle activation of PID_DEBUG output.   This allows the debug capability to be built into the firmware, but turned on and off as needed.

* M303 followup

- Put 'D' before other params for clean exit.
- Use serial on/off for debug status.

* Drop old comment

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

* Use "dist" instead of "delta" for clarity

* Allow G2_PWM to be slimmer

* motion.cpp: HAS_DIST_MM_ARG

* Fix M0 unused var warning

* Update Russian language (MarlinFirmware#17290)

* Update Italian language (MarlinFirmware#17293)

* Tweak eeprom storage type

* Tweak ui.finish_status

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

* small fixes after merge

* Fix SD finished ExtUI / host action (MarlinFirmware#17285)

* QSPI EEPROM for SAMD51 (MarlinFirmware#17292)

* Fix Stepper PWM menu (MarlinFirmware#17298)

* Store case light brightness in EEPROM (MarlinFirmware#17307)

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

* Add Funmat HT V4.0 board support (MarlinFirmware#17305)

Co-authored-by: Scott Lahteine <[email protected]>

* Limited backlash editing with Core kinematics (MarlinFirmware#17281)

* Simplify TWIBus debug

* Clean up user-wait, SD completion (MarlinFirmware#17315)

* fix #42

* Fix typo...

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

* Fix Trigorilla 1.4 missing spaces

* Fix STM32F1 USB Composite Dependency

Co-authored-by: Lord-Quake <[email protected]>

* Fix extra unskew call

Fixes MarlinFirmware#17264

* do_pause_e_move => unscaled_e_move

* Minor HAL cleanup

* No unscaled_e_move for CNC

* Load balance some tests

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

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

* Pulldown for all FastIO headers

Co-Authored-By: borsegbr <[email protected]>

* Fix last arc segment

Co-Authored-By: ellensp <[email protected]>

* Additional TERN macros

* Fix Fysetc stm32flash usage (MarlinFirmware#17331)

* STM32F1: Restore M43 build support (MarlinFirmware#17336)

* Improve / fix FTDI EVE Touch UI (MarlinFirmware#17338)

- Fix timeout and debugging string
- Fix check for whether `LCD_TIMEOUT_TO_STATUS` is valid
- Fix incorrect debugging message
- Make capitalization of callbacks consistent.
- Allow Touch UI to use hardware SPI on Einsy boards
- Move print stats to About Printer page.
- More generic about screen with GPL license.
- Add missing handler for power loss event
- Less code duplication on status screen and main/advanced menu; more legible
- Reorganize advanced and main menu to add more features
- Hide home Z button when using Z_SAFE_HOMING
- Fix compilation errors when certain features enabled
- Fix missing labels in UI
- Improve color scheme
- Add new preheat menus
- Fix incorrect rendering of Marlin logo on boot
- Add Level X Axis and Auto calibrate buttons

* Shorten some internal pin names

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

* Fix M710 report formatting (MarlinFirmware#17356)

* Fix extra TMC serial begin calls (MarlinFirmware#17351)

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

* More 8 extruders (TMC) support

* Minor code cleanup

* Fix up 'system' includes

* Fix ESP32 eeprom flag

* Clean up UI declarations, apply TERN_

* fix #32

* fix #45

* voltage

* fix #33

* fix #33

* fix typo in #34

* уточнил оранжевый и желтый цвета под свой дисплей

* Переключил TMC2208 UART на 256 шагов вместо 16

* отключил интерполяцию для всех, принудительно 64 микрошага на экструдер, пересчитал шаги для бмг

* таймаут дисплея измени до 15 минут, отрабатывал не так как надо в начале печати

* Revert "Переключил TMC2208 UART на 256 шагов вместо 16"

This reverts commit c32f37f.

* Revert "отключил интерполяцию для всех, принудительно 64 микрошага на экструдер, пересчитал шаги для бмг"

This reverts commit 4b20493.

* вернул настройки tmc как было до экспериментов с микрошагами

* поправил под актуальный pid e

* fix #46

* 10 минут таймаут дисплея

* убрал la понизил скорость кулера на хотенде

* двигатели 900 ма

* Update Configuration_adv.h

* update

* Revert "Merge branch 'bugfix-2.0.x-UltiSteel-ssavickiy' into ssavickiy"

This reverts commit bd0938a, reversing
changes made to a95b5db.

* отключил LA, изменил для тестов парметры рекомендуемые марлином в комментах для tmc

Co-authored-by: ellensp <[email protected]>
Co-authored-by: Scott Lahteine <[email protected]>
Co-authored-by: Andrew Kroll <[email protected]>
Co-authored-by: Юрий Першин <[email protected]>
Co-authored-by: jufimu12 <[email protected]>
Co-authored-by: InsanityAutomation <[email protected]>
Co-authored-by: thisiskeithb <[email protected]>
Co-authored-by: thinkyhead <[email protected]>
Co-authored-by: George Fu <[email protected]>
Co-authored-by: Anthrix <[email protected]>
Co-authored-by: MangaValk <[email protected]>
Co-authored-by: Vert <[email protected]>
Co-authored-by: Daniel Kreuzhofer (@danieldotnet) <[email protected]>
Co-authored-by: Gurmeet Athwal <[email protected]>
Co-authored-by: Jamie <[email protected]>
Co-authored-by: BigTreeTech <[email protected]>
Co-authored-by: Jason Smith <[email protected]>
Co-authored-by: nick-diel <[email protected]>
Co-authored-by: Erkan Colak <[email protected]>
Co-authored-by: Roxy-3D <[email protected]>
Co-authored-by: Karl Andersson <[email protected]>
Co-authored-by: Alan T <[email protected]>
Co-authored-by: Giuliano Zaro <[email protected]>
Co-authored-by: Pascal de Bruijn <[email protected]>
Co-authored-by: Joe Prints <[email protected]>
Co-authored-by: RasmusAaen <[email protected]>
Co-authored-by: rado79 <[email protected]>
Co-authored-by: mkpfalz <[email protected]>
Co-authored-by: MarkMan0 <[email protected]>
Co-authored-by: Acenotass <[email protected]>
Co-authored-by: Mathias Rasmussen <[email protected]>
Co-authored-by: oscarsan1 <[email protected]>
Co-authored-by: thisiskeithb <[email protected]>
Co-authored-by: Lord-Quake <[email protected]>
Co-authored-by: borsegbr <[email protected]>
Co-authored-by: Eric Ptak <[email protected]>
Co-authored-by: Tanguy Pruvot <[email protected]>
Co-authored-by: Marcio T <[email protected]>
Co-authored-by: Marcelo Castagna <[email protected]>
Co-authored-by: Simon Jouet <[email protected]>
Co-authored-by: Юрий Першин <[email protected]>
jmp0x0000 pushed a commit to jmp0x0000/Marlin that referenced this pull request Aug 7, 2020
jmp0x0000 pushed a commit to jmp0x0000/Marlin that referenced this pull request Aug 7, 2020
njibhu pushed a commit to njibhu/Marlin that referenced this pull request Aug 24, 2020
njibhu pushed a commit to njibhu/Marlin that referenced this pull request Aug 24, 2020
HairingX pushed a commit to HairingX/Marlin that referenced this pull request Jun 16, 2021
HairingX pushed a commit to HairingX/Marlin that referenced this pull request Jun 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: Peripherals C: Serial Comms F: Trinamic T: HAL & APIs Topic related to the HAL and internal APIs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants