This repository has been archived on 2025-12-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Marlin_FB4S/docs/Serial.md
Sergey 9b2be293eb Squashed commit of the following:
commit 4b9fce2e85
Merge: ecb08b15be e17d710c5c
Author: Sergey <sergey@terentiev.me>
Date:   Mon Dec 27 16:47:22 2021 +0300

    Merge branch '2.0.x' into vanilla_fb_2.0.x

commit e17d710c5c
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sat Dec 25 22:13:20 2021 -0600

    🔖 Marlin 2.0.9.3

commit 9b13ae2399
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Sat Dec 25 19:41:01 2021 -0800

    🐛 Fix MKS Robin E3 NeoPixel pin default (#23350)

commit 06f36dc746
Author: kaidegit <60053077+kaidegit@users.noreply.github.com>
Date:   Sun Dec 26 10:12:20 2021 +0800

    🐛 Fix open for bin rename (#23351)

commit 98eca9cb23
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sat Dec 25 03:27:45 2021 -0600

    🔧 Move MOTHERBOARD closer to top

commit 6268795003
Author: fflosi <34758322+fflosi@users.noreply.github.com>
Date:   Sat Dec 25 05:57:07 2021 -0300

     Per-axis TMC hold multiplier (#23345)

commit b4f0922a7c
Author: Sola <42537573+solawc@users.noreply.github.com>
Date:   Fri Dec 24 14:03:32 2021 +0800

     MKS TinyBee board support (#23340)

    Co-Authored-By: Sola <42537573+solawc@users.noreply.github.com>

commit aef613acd3
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Thu Dec 23 15:19:39 2021 +0700

    🔧 Group FAST_PWM_FAN.options (#23331)

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

commit 9ecfa1d252
Author: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Date:   Tue Dec 21 23:09:55 2021 -0500

     BLTouch High Speed mode runtime configuration (#22916, #23337)

    Co-Authored-By: Scott Lahteine <thinkyhead@users.noreply.github.com>

commit e0bed1e344
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Wed Dec 22 15:44:04 2021 +1300

     Option to reset EEPROM on first run (#23276)

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

commit d21fa25ab8
Author: Spencer Owen <owenspencer@gmail.com>
Date:   Sat Dec 18 18:58:46 2021 -0700

     Creality3D V4.2.3 / Ender-2 Pro board (#23307)

commit 0dc1a58b24
Author: X-Ryl669 <boite.pour.spam@gmail.com>
Date:   Tue Dec 14 07:22:06 2021 +0100

     Configurations embed and retrieve (#21321, #23303)

commit f2ca70e232
Author: John Lagonikas <39417467+zeleps@users.noreply.github.com>
Date:   Wed Dec 8 20:55:09 2021 +0200

    🐛 Fix and improve MAX31865 (#23215)

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

commit a6bed22839
Author: BigTreeTech <38851044+bigtreetech@users.noreply.github.com>
Date:   Sat Dec 11 03:38:03 2021 +0800

     BigTreeTech SKR mini E3 V3.0 (STM32G0B1RET6) (#23283)

commit efd67cf80d
Author: Giuseppe499 <giuseppe499@live.it>
Date:   Tue Dec 7 02:53:51 2021 +0100

     X Twist Compensation & Calibration (#23238)

commit 15204470a8
Author: ladismrkolj <ladismrkolj@gmail.com>
Date:   Sun Dec 5 22:41:39 2021 +0100

    🔧 Chamber Fan index option (#23262)

commit 48358d6a5c
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Fri Dec 3 12:48:48 2021 -0600

    🏗️ Fix Maple HAL/STM32F1 PWM (#23211)

commit d7abb891cd
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Fri Dec 3 19:31:48 2021 +0100

    🏗️ Rework STM32 timer frequency protection (#23187)

commit 52a44eb200
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Tue Nov 30 15:04:05 2021 -0600

    🐛 Fix STM32 FastPWM

commit 9b1c0a75e1
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Nov 27 18:33:32 2021 -0600

    🎨 Rename HAL timer elements

commit d75e7784e5
Author: schmttc <89831403+schmttc@users.noreply.github.com>
Date:   Wed Nov 24 08:52:18 2021 +1100

     EasyThreeD ET4000+ board and UI (#23080)

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

commit 0e60c8b7e0
Author: John Robertson <john@cirtech.co.uk>
Date:   Tue Nov 23 21:24:24 2021 +0000

     MarkForged YX kinematics (#23163)

commit 018c7b1cf4
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Sun Nov 21 11:25:06 2021 -0800

     BigTreeTech Mini 12864 V1.0 (#23130)

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

commit af1d603374
Author: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Date:   Tue Nov 23 21:01:53 2021 +0100

     Fan tachometer support (#23086, #23180, #23199)

    Co-Authored-By: Scott Lahteine <github@thinkyhead.com>

commit 884308f964
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Nov 16 08:54:30 2021 -0600

    🔧 SOUND_MENU_ITEM for E3V2

commit 7269990413
Author: Miguel Risco-Castillo <mriscoc@users.noreply.github.com>
Date:   Wed Nov 10 11:31:35 2021 -0500

    🚸 Expose sub-options for E3V2 Enhanced (#23099)

commit 2a90d93b17
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Wed Nov 17 09:33:42 2021 -0800

    📌 Overridable probe-related pins (#23107)

commit 6e284f8823
Author: BigTreeTech <38851044+bigtreetech@users.noreply.github.com>
Date:   Wed Nov 10 23:56:10 2021 +0800

     Support for BIQU B1-SE-Plus strain gauge probe (#23101)

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

commit a2349fc411
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Fri Dec 24 23:47:52 2021 -0600

    🔨 Configurable firmware bin filename

    Configuration.h > FIRMWARE_BIN

commit a3964b2b40
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Fri Dec 24 20:59:28 2021 -0600

    🔨 Ignore more generated files

commit 226ee7c1f3
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Fri Dec 24 01:46:51 2021 -0600

    🔧 Sanity check MMU2_MENUS

commit 2c12171f46
Author: Attila BODY <attila.body@gmail.com>
Date:   Fri Dec 24 06:57:20 2021 +0100

    🐛 Fix Robin Nano v3 filament runout pins (#23344)

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

commit d034a9c295
Author: MrAlvin <umo-testing@3iii.dk>
Date:   Thu Dec 23 10:47:52 2021 +0100

    🚸 Show mm'ss during first hour (#23335)

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

commit d2c7104bb3
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Wed Dec 15 07:51:19 2021 +0700

    🚸 Change "SD" to "Media" or "SD/FD" (#23297)

commit 570c7e8638
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Wed Dec 22 13:48:38 2021 +1300

    🐛 Fix Chitu Z_STOP_PIN (#23330)

commit cc4578a3d3
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Thu Dec 23 07:49:15 2021 +0100

    🩹 Fix settings G21 report (#23338)

commit 1db84be66a
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Tue Dec 21 01:26:31 2021 -0600

    🚑️ FAST_PWM_FAN default 1KHz base freq. (#23326)

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

commit 77c9668fe2
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Tue Dec 14 19:25:28 2021 +1300

    🐛 Fix LCD_BED_LEVELING compile (#23298)

commit 22cf9b444e
Author: GHGiampy <83699429+GHGiampy@users.noreply.github.com>
Date:   Mon Dec 20 09:44:43 2021 +0100

    🧑‍💻 Option allowing > 127 Neopixels (#23322)

commit 97798d1e47
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Thu Jul 8 01:33:49 2021 -0500

    🎨 Update SKR V2 pins

commit f4b808456a
Author: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Date:   Tue Dec 14 01:47:57 2021 +0100

    🚸 Use M600 for disabled MMU (#21865)

commit 6264736968
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Tue Dec 14 01:41:21 2021 +0100

    🐛 Fix TFT_COLOR_UI Release Media issue (#23123)

commit 7a5f103bcf
Author: John Lagonikas <39417467+zeleps@users.noreply.github.com>
Date:   Sat Dec 18 01:31:10 2021 +0200

    🔧 Warning for IGNORE_THERMOCOUPLE_ERRORS (#23312)

commit 1a8307b196
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sat Dec 18 17:38:29 2021 -0600

    📝 Fix a config comment

commit 13a1c86ae8
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Tue Dec 14 13:18:24 2021 +1300

     M115 flag EXTENDED_M20 (#22941)

commit 15656201d2
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Tue Dec 14 13:13:34 2021 +1300

    ✏️ Clean up duplicate defs (#23182)

commit f3e372cb4c
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Tue Dec 14 07:11:52 2021 +0700

    🩹 Init fan speed at boot (#23181)

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

commit c781ecc437
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Mon Dec 13 16:15:46 2021 -0600

    🔧 Fix unknown board test

commit daa8fff6c6
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sun Dec 12 16:16:40 2021 -0600

    🩹 SD abort requires open file

    See #22566

commit d481bba327
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Sun Dec 12 11:06:45 2021 +1300

    🐛 Fix MARLIN_F103Rx variant SCK / MOSI pins (#23282)

commit 32b08ae04c
Author: Scott Alfter <scott@alfter.us>
Date:   Wed Dec 8 23:18:04 2021 -0800

    Fix Endstops::report_states (#23280)

    Fix regression 4d45fdf0eb

commit f00a0356c7
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Wed Dec 8 18:36:08 2021 -0600

    🎨 Misc. probe / endstop cleanup

commit 9871800874
Author: Sola <42537573+solawc@users.noreply.github.com>
Date:   Thu Dec 9 03:37:45 2021 +0800

    🐛 Fix MKS LVGL UI retraction (#23267)

commit 39c2c038be
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Thu Dec 9 02:15:31 2021 +0700

    🩹 Coerce pin_t in set_pwm_duty macros (#23273)

commit 285d6488a3
Author: Jason Smith <jason.inet@gmail.com>
Date:   Wed Dec 8 11:10:37 2021 -0800

    🐛 Fix ACTION_ITEM with nullptr (#23195)

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

commit eecbd09a46
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Thu Dec 9 01:57:50 2021 +0700

    🚸 Onboard SD for SKR 2.0 / SKR PRO (#23274)

commit 8d4e4ac115
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Wed Dec 8 12:40:23 2021 -0600

    🎨 Rename MAX31865 elements

commit b77a5d4c8d
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Mon Dec 6 20:18:50 2021 -0600

    ✏️ MAX31856 => MAX31865

commit c3b8b3e7e6
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Mon Dec 6 15:52:18 2021 -0600

    🩹 Fix non-PWM cutter compile (#23169)

commit 7123b15801
Author: Stuart Pittaway <1201909+stuartpittaway@users.noreply.github.com>
Date:   Mon Dec 6 21:40:18 2021 +0000

    🐛 Fix TWIBus Wire.begin call (#23183)

commit 8a2f13d657
Author: Chris Pepper <p3p@p3psoft.co.uk>
Date:   Sun Dec 5 22:18:02 2021 +0000

    🐛 HAL_reboot for native HAL (#23246)

commit 251d9fc1d7
Author: tommywienert <53783769+tommywienert@users.noreply.github.com>
Date:   Sun Dec 5 23:16:23 2021 +0100

    🐛 Fix env:chitu_f103 (#23225)

commit 5eeb9650b5
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Mon Dec 6 10:42:56 2021 +1300

    📌 More Longer3D LKx Pro serial tests  (#23260)

commit c0addd1d33
Author: Stuart Pittaway <1201909+stuartpittaway@users.noreply.github.com>
Date:   Sat Dec 4 23:44:10 2021 +0000

     M3426 to read i2c MCP3426 ADC (#23184)

commit 05b57278d4
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Dec 4 17:17:10 2021 -0600

    🔧 Cutter pins for SKR 2.0

commit aa3ec2fbfd
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Sun Dec 5 05:14:19 2021 +0700

    🚸 Park nozzle on "loud kill" (#23172)

commit 4468516aa2
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Sun Dec 5 11:10:29 2021 +1300

     BigTree SKR 2 with F429 (#23177)

commit 95d006b406
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Sat Dec 4 09:48:54 2021 +1300

    🐛 Fix TIMER_TONE for ZM3E4 (#23212)

commit 5b057b4bcf
Author: Jiri Jirus <jiri.jirus@cloudaper.com>
Date:   Tue Nov 30 21:46:48 2021 +0100

    🩹 Assume 4K EEPROM for RUMBA32 BTT (#23205)

commit 77af48e547
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Nov 30 13:03:31 2021 -0600

    🐛 Fix STM32 FastPWM

commit 0f7f709aad
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Sat Nov 27 14:59:32 2021 -0800

    ✏️ Fix Unicode (#23186)

commit a8c0e11cb1
Author: Jason Smith <jason.inet@gmail.com>
Date:   Sat Nov 27 13:54:39 2021 -0800

    🩹 Handle nullptr in CardReader::printLongPath (#23197)

commit 0556da85b0
Author: Anson Liu <ansonl@users.noreply.github.com>
Date:   Sat Nov 27 17:58:05 2021 -0500

    🩹 UM2 extruder cooling fan on PJ6 (#23194)

commit 93652e5c6f
Author: George Fu <nailao_5918@163.com>
Date:   Sun Nov 28 03:26:53 2021 +0800

      FYSETC Spider v2.2 (#23208)

commit f3fc1d15a3
Author: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Date:   Tue Nov 23 22:33:33 2021 +0100

    🩹 Fix include path (#23150)

commit 3148060550
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Tue Nov 23 13:54:31 2021 -0800

    📌 Biqu BX temporary framework workaround (#23131)

commit 5f08864d1f
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Tue Nov 23 14:05:50 2021 -0600

    🐛 Fix STM32 set_pwm_duty (#23125)

commit 184fc36a08
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Sun Nov 21 20:13:01 2021 +0100

    🐛 Fix TFT backlight sleep/wake (#23153)

commit 281ed99868
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Sat Nov 20 02:44:53 2021 +0100

    ️ Reduce calls to set fan PWM (#23149)

commit 2cc4a1b326
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Wed Nov 17 13:01:44 2021 -0600

    🎨 Misc formatting

commit c5bd08755c
Author: BigTreeTech <38851044+bigtreetech@users.noreply.github.com>
Date:   Thu Nov 18 01:35:28 2021 +0800

    🐛 Init PROBE_ENABLE_PIN (#23133)

commit 99f58f63f2
Author: luzpaz <luzpaz@users.noreply.github.com>
Date:   Wed Nov 17 12:09:01 2021 -0500

    🎨 Fix misspelling (#23137)

commit c2a674d2c1
Author: espr14 <espr14@gmail.com>
Date:   Wed Nov 17 18:07:11 2021 +0100

    🏗️ Planner::busy() (#23145)

commit feffc19867
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Tue Nov 16 14:06:36 2021 -0600

    🐛 Fix fast PWM WGM code

    Followup to #23102

commit f637e1c501
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Tue Nov 16 12:49:25 2021 -0600

    🔨 Bring Makefile up to date

commit 78240a279b
Author: EvilGremlin <22657714+EvilGremlin@users.noreply.github.com>
Date:   Tue Nov 16 19:32:43 2021 +0300

    🔨 Ignore sim flashdrive file (#23129)

commit 656034d2d9
Author: Luc Van Daele <lvd@sound-silence.com>
Date:   Tue Nov 16 16:24:53 2021 +0100

    🐛 Fix G33, Delta radii, reachable (#22795)

commit 39a81d167e
Author: Mikhail Basov <github@basov.net>
Date:   Mon Nov 15 07:46:34 2021 +0300

    🚸 LCD_SHOW_E_TOTAL for TFT_COLOR_UI (#23127)

commit cb1570d162
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sun Nov 14 17:19:57 2021 -0600

    🐛 Fix SENSORLESS_HOMING for 6-axis

commit 8cb646cc20
Author: EvilGremlin <22657714+EvilGremlin@users.noreply.github.com>
Date:   Mon Nov 15 00:15:07 2021 +0300

    🚸 Simplify touchscreen calibration for SimUI (#23124)

commit 3cccb21dc9
Author: Miguel Risco-Castillo <mriscoc@users.noreply.github.com>
Date:   Wed Nov 10 11:55:20 2021 -0500

    🚸 Fix up E3V2 Enhanced (#23100)

commit 7f4a49cc44
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Fri Oct 22 13:21:26 2021 -0500

    🎨 Misc. issue review patches

commit e0c439fe91
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Sun Nov 14 05:55:31 2021 -0600

    ️ Controller Fan software PWM (etc.) (#23102)

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

commit 49e233e06f
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Fri Nov 12 21:26:19 2021 +0100

    🎨 MPX ARM Mini pins cleanup (#23113)

commit b662dd1f92
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Fri Nov 12 12:14:28 2021 -0600

    🐛 [LCP1768] Init PWM in set_pwm_duty (#23110)

commit 700cae43ab
Author: Skruppy <skruppy@onmars.eu>
Date:   Fri Nov 12 15:57:24 2021 +0100

    🩹 Fix RGB case light compile (#23108)

commit 1c74c6e7ac
Author: George Fu <nailao_5918@163.com>
Date:   Wed Nov 10 23:58:20 2021 +0800

    🐛 Fix FYSETC Cheetah 2.0 pins for production (#23104)

commit 757a9477db
Author: Minims <github@minims.fr>
Date:   Sun Oct 10 01:10:21 2021 +0200

    🩹 Adjust GTR 1.0 ST7920 display delay (#22904)

commit 59d43408f6
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sat Dec 25 00:57:30 2021 -0600

    fix breaks in F() resolution

commit 1d8941d008
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Oct 5 21:35:31 2021 -0500

    🔨 Port libsdl2_net required for macOS simulator

commit 17f853d99c
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Tue Nov 9 08:30:02 2021 -0800

    ️ BTT002 (STM32F407VET6) variant, MK3_FAN_PINS flag (#23093)

commit 6f9f25dbb2
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sun Nov 7 01:11:51 2021 -0600

    🎨 Misc. code cleanup

commit 0273a68587
Author: VragVideo <91742261+VragVideo@users.noreply.github.com>
Date:   Sun Oct 3 06:12:51 2021 +0300

     WYH L12864 LCD (Alfawise Ex8) (#22863)

commit 58a26fcaac
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Sat Nov 6 23:09:15 2021 -0700

    🚸 Indicate Preheating for probe / leveling (#23088)

commit 489aca03ff
Author: Evgeniy Zhabotinskiy <evg-zhabotinsky@users.noreply.github.com>
Date:   Sun Nov 7 07:16:18 2021 +0300

    🩹 Fix M503 report (#23084)

commit f32e19e1c6
Author: Jin <3448324+jinhong-@users.noreply.github.com>
Date:   Sun Nov 7 11:53:36 2021 +0800

    🍻 Preliminary fix for Max31865 SPI (#22682)

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

commit 57bd04b6ce
Author: dwzg <50058606+dwzg@users.noreply.github.com>
Date:   Sun Nov 7 04:48:00 2021 +0100

    🐛 Fix JyersUI scrolling filename, etc. (#23082)

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

commit 396df93220
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Sun Nov 7 15:27:53 2021 +1300

    🐛 Fix DGUS Reloaded status message (#23090)

commit 9b76b58b79
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Thu Nov 4 12:18:23 2021 -0500

    🍻 Get/clear reset source earlier

    Followup to #23075

commit 9fffed7160
Author: Skruppy <skruppy@onmars.eu>
Date:   Thu Nov 4 18:11:57 2021 +0100

    🐛 Prevent AVR watchdogpile (#23075)

commit fd136d5501
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Thu Nov 4 18:04:04 2021 +0100

    🐛 Fix TFT backlight [STM32] (#23062)

commit 89ec1c71f0
Author: BigTreeTech <38851044+bigtreetech@users.noreply.github.com>
Date:   Thu Nov 4 18:54:38 2021 +0800

    🐛 Fix Octopus-Pro Max31865 / SPI (#23072)

commit fc2020c6ec
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Thu Nov 4 17:28:42 2021 +0700

    🔨 Fix IntelliSense / PIO conflicts (#23058)

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

commit f97635de36
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Thu Nov 4 14:04:06 2021 +1300

    📌 'STOP' auto-assign, some Chitu V9 pins (#22889)

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

commit a0a57406a2
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Wed Nov 3 07:06:31 2021 -0500

    🔨 Script 'mfprep' finds pending commits

commit 5efef86cfa
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Wed Nov 3 07:02:21 2021 -0500

    🔨 Update git helper scripts

commit 20c747753d
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Nov 2 01:28:00 2021 -0500

    🔨 Support ABM in mf scripts

commit 08a9c61587
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Mon Nov 1 23:15:29 2021 -0700

    📌 Default NeoPixel pin for MKS Robin E3/E3D (#23060)

commit 0d91b07797
Author: Andrei M <22990561+andrei-moraru@users.noreply.github.com>
Date:   Tue Nov 2 01:47:16 2021 -0400

    ⚗️ Use pwm_set_duty over analogWrite to set PWM (#23048)

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

commit b033da1782
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Mon Nov 1 22:43:40 2021 -0700

    🔧 Endstop / DIAG homing conflict warning (#23050)

commit 4dcd872be5
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Mon Nov 1 21:23:54 2021 -0700

     Allow Low EJERK with LA, optional (#23054)

commit 7e9e2a7435
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Mon Nov 1 20:23:24 2021 -0700

     Artillery Ruby (STM32F401RCT6) (#23029)

commit 0b84194127
Author: tombrazier <68918209+tombrazier@users.noreply.github.com>
Date:   Mon Nov 1 23:03:50 2021 +0000

    🚸 More flexible Probe Temperature Compensation (#23033)

commit efd9329c81
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Thu Jul 8 01:17:16 2021 -0500

    📝 Tweak EXP comments

commit 5cbb820e29
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Oct 30 23:43:19 2021 -0500

    🔨 Help for GDB remote debugging

commit 5a0166489e
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Oct 30 22:43:02 2021 -0500

    🩹 Fix linker error (transfer_port_index)

commit 692c9a6312
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Oct 30 04:16:37 2021 -0500

    💚 Update Ender-3 V2 config path

    MarlinFirmware/Configurations#600

commit 545d14f9a5
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Oct 30 01:39:33 2021 -0500

    🎨 Adjust Ender-3 V2 DWIN options

commit 7b9e01eb2b
Author: aalku <aalku7@gmail.com>
Date:   Sat Oct 30 07:17:20 2021 +0200

     Shutdown Host Action (#22908)

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

commit 8562f0ec44
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Fri Oct 29 20:46:55 2021 -0500

     "Rutilea" ESP32 board (#22880)

commit 6f59d8171f
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Fri Oct 29 20:42:52 2021 -0500

    🔧 Configuration version 02000903

commit d29a9014f2
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Wed Oct 27 21:36:06 2021 -0500

    🎨 Standard 'cooldown' method

commit 205d867e4b
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Wed Oct 27 20:01:44 2021 -0500

    🎨 Standard material presets behavior

commit 84f9490149
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Wed Oct 27 21:15:58 2021 -0500

    🎨 Define HAS_PREHEAT conditional

commit 1fd4258423
Author: tome9111991 <57866234+tome9111991@users.noreply.github.com>
Date:   Sat Oct 30 00:49:12 2021 +0200

    🐛 Fix E3V2 (CrealityUI) Tune/Prepare > Zoffset (#23040)

commit e8a55972a7
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Thu Oct 28 19:22:35 2021 -0500

    🐛 Fix EZBoard V2 board name

commit aef413202e
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Thu Oct 28 03:26:05 2021 -0700

    🐛 Fix MKS Robin E3/E3D Z Stop/Probe pins (#23034)

commit cbc7dadf42
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Oct 26 21:54:43 2021 -0500

    🎨 Apply HAS_MULTI_HOTEND conditional

commit c508ecc414
Author: Zlopi <zlopi.ru@gmail.com>
Date:   Wed Oct 27 23:10:46 2021 +0300

    🚸 Scroll long filename on MKS TFT (#23031)

commit 384a31765f
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Thu Oct 28 09:06:06 2021 +1300

    🩹 Retain LCD pins with motor expansion (#23024)

commit 0f2c4fc40b
Author: somehibs <hibs@circuitco.de>
Date:   Wed Oct 27 21:00:02 2021 +0100

    🐛 Fix serial PORT_RESTORE (and BUFFER_MONITORING) (#23022)

commit 66a274452c
Author: tome9111991 <57866234+tome9111991@users.noreply.github.com>
Date:   Wed Oct 27 21:58:32 2021 +0200

    🐛 Fix E3V2 (CrealityUI) position display (#23023)

    Followup to #23005, #22778

commit 12f8168d1e
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Oct 26 19:36:16 2021 -0500

    🚸 Tweaks to UBL G29 Q

commit 2142e1dae4
Author: woisy00 <spam@bergermeier.info>
Date:   Wed Oct 27 01:05:34 2021 +0200

    🐛 Fix AUTOTEMP bug (thermal runaway) (#23025)

    Regression from 9823a37

commit 8d21ea55a2
Author: tombrazier <68918209+tombrazier@users.noreply.github.com>
Date:   Mon Oct 25 06:33:40 2021 +0100

    🐛 Add USE_TEMP_EXT_COMPENSATION options (#23007)

commit a0da7e8a1f
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sun Oct 24 23:33:27 2021 -0500

    🔧 Fewer alerts about Z_SAFE_HOMING

commit e2452d6c57
Author: tome9111991 <57866234+tome9111991@users.noreply.github.com>
Date:   Fri Oct 22 18:16:07 2021 +0200

    🐛 Fix SHOW_REMAINING_TIME option for JyersUI (#22999)

commit 5173a3140d
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Fri Oct 22 08:52:31 2021 -0700

     BigTreeTech TFT35 SPI V1.0 (#22986)

commit e44f2b7d2d
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Tue Oct 19 06:05:23 2021 -0500

    🩹 Fix pragma ignored for older GCC (#22978)

commit ed78f7f4e6
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Tue Oct 19 05:59:48 2021 -0500

    🎨 Refactor MOSFET pins layout (#22983)

commit aa198e41dd
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Oct 19 05:52:41 2021 -0500

    🎨 Pragma GCC cleanup

commit 18b38fb58a
Author: Jason Smith <jason.inet@gmail.com>
Date:   Mon Oct 18 01:11:16 2021 -0700

    🐛 Fix max chamber fan speed (#22977)

commit 5d79d8fad6
Author: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Date:   Mon Oct 18 00:57:54 2021 -0700

    🐛 Fix I2C EEPROM SDA/SCL aliases with SKR Mini E3 V2 (#22955)

commit e7a746966d
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Mon Oct 18 20:54:20 2021 +1300

    🐛 Fix MMU1 compile (#22965)

commit 555f35d46f
Author: Mike La Spina <mike.laspina@shaw.ca>
Date:   Mon Oct 18 02:40:47 2021 -0500

    🎨 Suppress type warning (#22976)

commit de77dfcbbd
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sun Oct 17 22:10:08 2021 -0500

    🎨 Add MKS UI goto_previous_ui

commit af08f16efc
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sun Oct 17 20:24:41 2021 -0500

    🚸 Tweak MKS UI G-code console

commit 01a0f3a8cf
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sun Oct 17 18:11:16 2021 -0500

    🎨 Fix up MKS UI defines

commit f80bcdcc5c
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Fri Oct 15 00:24:08 2021 -0500

    🎨 Refactor Host Actions as singleton

commit 1ead7ce681
Author: ellensp <530024+ellensp@users.noreply.github.com>
Date:   Fri Oct 15 14:38:03 2021 +1300

    🔧 Add, update TFT sanity checks (#22928)

commit dffa56463e
Author: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Date:   Tue Oct 12 23:19:05 2021 -0400

    ️ Formbot ST7920 delays, intentional X2 pins (#22915)

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

commit ae98d2e5ea
Author: Dmytro <svetotled@gmail.com>
Date:   Wed Oct 13 05:45:00 2021 +0300

    🎨 Update MKS UI for no bed, extruder (#22938)

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

commit 5b1ef638ee
Author: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Date:   Tue Oct 12 19:40:56 2021 -0400

    🐛 Fix IDEX + DISABLE_INACTIVE_EXTRUDER (#22925)

commit f3be03da20
Author: Stuart Pittaway <1201909+stuartpittaway@users.noreply.github.com>
Date:   Mon Oct 11 23:42:29 2021 +0100

     M261 S I2C output format (#22890)

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

commit 64128a5bcb
Author: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Date:   Sun Oct 10 01:05:24 2021 +0200

    🐛 Queue string followup (#22900)

commit 0018c94a79
Author: Pyro-Fox <36782094+Pyro-Fox@users.noreply.github.com>
Date:   Sat Oct 9 15:09:50 2021 -0700

    🐛 LCD string followup (#22892)

commit d48cb11537
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Tue Oct 5 21:19:28 2021 -0500

    🐛 Followup to F() in config_line

    Followup to 1dafd1887e

commit d9f7de7a24
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Mon Oct 4 19:50:14 2021 -0500

    🐛 ExtUI F() followups

    Followup to 12b5d997a2

commit 3d102a77ca
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Tue Sep 28 20:15:52 2021 -0500

    🎨 Apply F() to kill / sendinfoscreen

commit 492d70424d
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Tue Sep 28 19:28:29 2021 -0500

    🎨 Apply F() to MKS UI errors, assets

commit 24dbeceb45
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Mon Sep 27 13:46:42 2021 -0500

    🎨 Apply F() to various reports

commit cabd538fdd
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Mon Sep 27 13:40:01 2021 -0500

    🎨 Apply F() to G-code report header

commit 9cf1c3cf05
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sat Sep 25 23:52:41 2021 -0500

    🎨 Apply F() to UTF-8/MMU2 string put

commit c3ae221a10
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Sat Sep 25 22:11:48 2021 -0500

    🎨 Apply F() to some ExtUI functions

commit 7626d859a6
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Mon Sep 27 11:55:08 2021 -0500

    🎨 Apply F() to Host Actions strings

commit 360311f232
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Sep 25 17:05:11 2021 -0500

    🎨 Apply F() to status message

commit 433eedd50f
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Mon Sep 27 11:03:07 2021 -0500

    🎨 Apply F() to serial macros

commit 46c53f6730
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Sep 25 21:11:31 2021 -0500

    🎨 Apply F() to G-code suite and queue

commit 2b9ae0cc33
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Sep 25 18:43:52 2021 -0500

    🎨 Apply F() to G-code subcommands

commit 433a27e475
Author: Scott Lahteine <github@thinkyhead.com>
Date:   Sat Sep 25 18:22:37 2021 -0500

    🎨 Update F string declarations

commit 1de265ea5d
Author: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date:   Mon Oct 4 00:24:41 2021 -0500

    🎨 Axis name string interpolation, with examples (#22879)

commit ecb08b15be
Merge: 798d12c2af 854ce63358
Author: Sergey <sergey@terentiev.me>
Date:   Wed Dec 22 11:58:28 2021 +0300

    Merge branch '2.0.x' into vanilla_fb_2.0.x

commit 854ce63358
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Sun Dec 19 05:33:21 2021 +0700

    🐛 Fix loud_kill heater disable (#23314)

commit 170f77fada
Author: lukrow80 <64228214+lukrow80@users.noreply.github.com>
Date:   Tue Nov 23 22:30:13 2021 +0100

    🐛 Fix homing current for extra axes (#23152)

    Followup to #19112

commit 72b99bf1ba
Author: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Date:   Sat Oct 9 19:13:19 2021 -0400

    🐛 Fix IDEX Duplication Mode Positioning (#22914)

    Fixing #22538

commit 1a8583f4fc
Author: Robby Candra <robbycandra.mail@gmail.com>
Date:   Wed Nov 24 04:19:32 2021 +0700

    🐛 Fix serial_data_available (#23160)
2021-12-27 17:18:41 +03:00

7.7 KiB

Serial port architecture in Marlin

Marlin is targeting a plethora of different CPU architectures and platforms. Each of these platforms has its own serial interface. While many provide a Arduino-like Serial class, it's not all of them, and the differences in the existing API create a very complex brain teaser for writing code that works more or less on each platform.

Moreover, many platform have intrinsic needs about serial port (like forwarding the output on multiple serial port, providing a serial-like telnet server, mixing USB-based serial port with SD card emulation) that are difficult to handle cleanly in the other platform serial logic.

Starting with version 2.0.8, Marlin provides a common interface for its serial needs.

Common interface

This interface is declared in Marlin/src/core/serial_base.h Any implementation will need to follow this interface for being used transparently in Marlin's codebase.

The implementation was written to prioritize performance over abstraction, so the base interface is not using virtual inheritance to avoid the cost of virtual dispatching while calling methods. Instead, the Curiously Recurring Template Pattern (CRTP) is used so that, upon compilation, the interface abstraction does not incur a performance cost.

Because some platform do not follow the same interface, the missing method in the actual low-level implementation are detected via SFINAE and a wrapper is generated when such method are missing. See the CALL_IF_EXISTS macro in Marlin/src/core/macros.h for documentation of this technique.

Composing the desired feature

The different specificities for each architecture are provided by composing the serial type based on desired functionality. In the Marlin/src/core/serial_hook.h file, the different serial feature are declared and defined in each templated type:

  1. BaseSerial is a simple 1:1 wrapper to the underlying, Arduino compatible, Serial's class. It derives from it. You'll use this if the platform does not do anything specific for the Serial object (for example, if an interrupt callback calls directly the serial instance in the platform's framework code, this is not the right class to use). This wrapper is completely inlined so that it does not generate any code upon compilation. BaseSerial constructor forwards any parameter to the platform's Serial's constructor.
  2. ForwardSerial is a composing wrapper. It references an actual Arduino compatible Serial instance. You'll use this if the instance is declared in the platform's framework and is being referred directly in the framework. This is not as efficient as the BaseSerial implementation since static dereferencing is done for each method call (it'll still be faster than virtual dispatching)
  3. ConditionalSerial is working a bit like the ForwardSerial interface, but it checks a boolean condition before calling the referenced instance. You'll use it when the serial output can be switch off at runtime, for example in a telnet like serial output that should not emit any packet if no client is connected.
  4. RuntimeSerial is providing a runtime-modifiable hooking method for its write and msgDone method. You'll use it if you need to capture the serial output of Marlin, for example to display the G-Code parser's output on a GUI interface. The hooking interface is setup via the setHook method.
  5. MultiSerial is a runtime modifiable serial output multiplexer. It can output (respectively input) to 2 different interface based on a port mask. You'll use this if you need to output the same serial stream to multiple port. You can plug a MultiSerial to itself to duplicate to more than 2 ports.

Plumbing

Since all the types above are using CRTP, it's possible to combine them to get the appropriate functionality. This is easily done via type definition of the feature.

For example, to create a single serial interface with 2 serial outputs (one enabled at runtime and the other switchable):

typedef MultiSerial< RuntimeSerial<Serial>, ConditionalSerial<TelnetClient> > Serial1Class;

To send the same output to 4 serial ports you could nest MultiSerial like this:

typedef MultiSerial< MultiSerial< BaseSerial<Serial>, BaseSerial<Serial1> >, MultiSerial< BaseSerial<Serial2>, BaseSerial<Serial3>, 2, 1>, 0, 2> Serial1Class;

The magical numbers here are the step and offset for computing the serial port. Simplifying the above monster a bit:

MS< A = MS<a, b, offset=0, step=1>, B=MS<c, d, offset=2, step=1>, offset=0, step=2>

This means that the underlying multiserial A (with output to a,b) is available from offset = 0 to offset + step = 1 (default value). The multiserial B (with output to c,d) is available from offset = 2 (the next step from the root multiserial) to offset + step = 3. In practice, the root multiserial will redirect any index/mask offset to offset + step - 1 to its first leaf, and any index/mask offset + step to offset + 2*step - 1 to its second leaf.

Emergency parser

By default, the serial base interface provide an emergency parser that's only enable for serial classes that support it. Because of this condition, all underlying types take a first bool emergencyParserEnabled argument to their constructor. You must take into account this parameter when defining the actual type used.

SERIAL macros

The following macros are defined (in serial.h) to output data to the serial ports:

MACRO Parameters Usage Example Expected output
SERIAL_ECHO Any basic type is supported (char, uint8_t, int16_t, int32_t, float, long, const char*, ...). For a numeric type it prints the number in decimal. A string is output as a string. uint8_t a = 123; SERIAL_ECHO(a); SERIAL_CHAR(' '); SERIAL_ECHO(' '); 123 32
SERIAL_ECHOLN Same as SERIAL_ECHO Do SERIAL_ECHO, adding a newline int a = 456; SERIAL_ECHOLN(a); 456\n
SERIAL_ECHO_F float or double Print a decimal value with a given precision (default 2) float a = 3.1415; SERIAL_ECHO_F(a); SERIAL_CHAR(' '); SERIAL_ECHO_F(a, 4); 3.14 3.1415
SERIAL_ECHOPGM String / Value pairs Print a series of string literals and values alternately SERIAL_ECHOPGM("Bob", 34); Bob34
SERIAL_ECHOLNPGM Same as SERIAL_ECHOPGM Do SERIAL_ECHOPGM, adding a newline SERIAL_ECHOPGM("Alice", 56); alice56
SERIAL_ECHOPGM_P Like SERIAL_ECHOPGM but takes PGM strings Print a series of PGM strings and values alternately SERIAL_ECHOPGM_P(GET_TEXT(MSG_HELLO), 123); Hello123
SERIAL_ECHOLNPGM_P Same as SERIAL_ECHOPGM_P Do SERIAL_ECHOPGM_P, adding a newline SERIAL_ECHOLNPGM_P(PSTR("Alice"), 78); alice78\n
SERIAL_ECHOLIST String literal, values Print a string literal and a list of values SERIAL_ECHOLIST(F("Key "), 1, 2, 3); Key 1, 2, 3
SERIAL_ECHO_START None Prefix an echo line SERIAL_ECHO_START(); echo:
SERIAL_ECHO_MSG Same as SERIAL_ECHOLN_PAIR Print a full echo line SERIAL_ECHO_MSG("Count is ", count); echo:Count is 3
SERIAL_ERROR_START None Prefix an error line SERIAL_ERROR_START(); Error:
SERIAL_ERROR_MSG Same as SERIAL_ECHOLN_PAIR Print a full error line SERIAL_ERROR_MSG("Not found"); Error:Not found
SERIAL_ECHO_SP Number of spaces Print one or more spaces SERIAL_ECHO_SP(3)
SERIAL_EOL None Print an end of line SERIAL_EOL(); \n
SERIAL_OUT SERIAL_OUT(myMethod) Call a custom serial method SERIAL_OUT(msgDone); ...

This document was written by X-Ryl669 and is under CC-SA license