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 HAL_STM32 + Arduino IDE SoftwareSerial conflict #16266

Merged
merged 1 commit into from
Dec 21, 2019

Conversation

sjasonsmith
Copy link
Contributor

Description

Skip building the HAL_STM32/SoftwareSerial.cpp when building outside of Platform IO.

This prevents duplicate definitions when both the Marlin and Arduino_Core_STM32 versions of SoftwareSerial.cpp are compiled.

Benefits

Allows building Rumba32 inside the Arduino IDE with TMCStepper installed.

The only downside to this is that the Arduino_Core_STM32 1.7 SoftwareSerial.cpp won't work for single-pin serial. This is probably not a major issue since prior to Arduino_Core_STM32 1.7 there was no SoftwareSerial for this HAL at all, so existing boards building in Arduino are unlikely to already depend on it.

Related Issues

#15952

@AnHardt
Copy link
Member

AnHardt commented Dec 20, 2019

The only downside to this is that the Arduino_Core_STM32 1.7 SoftwareSerial.cpp won't work for single-pin serial.

That will cause problems with the BTT SKR PRO V1.1 .
There are boars around where the resistor, connecting RX and TX pins, is not populated.
As far as i know, the TX-pins have never been used. Before the latest patches a patched TMC-library was required.

However - Arduino_Core_STM32 1.8, with a "single-pin software-serial" is expected to be published this year.

@tatusah
Copy link

tatusah commented Dec 20, 2019

@sjasonsmith
Copy link
Contributor Author

sjasonsmith commented Dec 20, 2019

@AnHardt, I should have clarified that the downside only applies when building inside the Arduino IDE. The SKR Pro will continue to use our patched version when built from PlatformIO.

Now that 1.8 is released (it was not when I posted this PR), this change will be very short-lived, since we should be able to delete this file altogether after testing confirms 1.8 is ok.

@AnHardt
Copy link
Member

AnHardt commented Dec 20, 2019

Right.
And i forgot , i'm the only one using my alpha variant for the BTT PRO for Arduino. (Not for public now. Overwriting the bootloader. :-( )

@sjasonsmith
Copy link
Contributor Author

alpha variant for the BTT PRO

Hopefully by the time that is public we will have updated the framework and can remove this limitation.

I was going to try upgrading the framework this morning, but it isn't available through PlatformIO yet. Their github repo isn't structured in a way that allows us to point to it directly. I assume it will be published through PIO soon.

@thinkyhead thinkyhead added A: STM32 C: Serial Comms T: HAL & APIs Topic related to the HAL and internal APIs. labels Dec 21, 2019
@thinkyhead thinkyhead merged commit 2e235af into MarlinFirmware:bugfix-2.0.x Dec 21, 2019
@thinkyhead thinkyhead changed the title Avoid SoftwareSerial conflicts when using HAL_STM32 inside Arduino IDE Fix HAL_STM32 + Arduino IDE SoftwareSerial conflict Dec 21, 2019
@sjasonsmith sjasonsmith deleted the Arduino_Rumba32 branch December 21, 2019 06:12
philippniethammer pushed a commit to philippniethammer/Marlin that referenced this pull request Dec 21, 2019
christran206 pushed a commit to christran206/Marlin2.0-SKR-Mini-E3-1.2 that referenced this pull request Dec 30, 2019
webs1821 added a commit to webs1821/Marlin that referenced this pull request Jan 2, 2020
* [cron] Bump distribution date

* STM32F1 Flash-based EEPROM fixes (MarlinFirmware#16118)

* Disable PRINTCOUNTER in SKR Mini E3 examples (MarlinFirmware#16110)

* Fix compile error with disabled PIDTEMP (MarlinFirmware#16108)

* Wanhao D6 uses TINYBOY2 (MarlinFirmware#16117)

* Improve touch buttons behavior (MarlinFirmware#16109)

* Update AZSMZ LCD link (MarlinFirmware#16106)

* [cron] Bump distribution date

* Update 3DFabXYZ settings (MarlinFirmware#16139)

* [cron] Bump distribution date

* Fix controller and SD on Robin Nano (MarlinFirmware#16187)

* Correct MKS Robin Mini pins (MarlinFirmware#16178)

* Formalize DAC percent strings (MarlinFirmware#16176)

* Update Italian language (MarlinFirmware#16147)

* Update french (objects, retract...)

* Superscript 3 for mm3

* [cron] Bump distribution date

* Add MKS Robin Pro, MKS Robin Lite3 (MarlinFirmware#16163)

* Fix multiple servos with STM32 (MarlinFirmware#16151)

* Use error message !! hints (MarlinFirmware#16145)

* Update BTT comments for USB/SD Composite (MarlinFirmware#16130)

* MKS 12864 OLED pins for SGEN-L (MarlinFirmware#16188)

* Invert E dir of Geeetech A10 (MarlinFirmware#16149)

* Disable SD_CHECK_AND_RETRY in BTT E3 configs (MarlinFirmware#16143)

* Add a CI test for RAMBo + CNC (MarlinFirmware#16126)

* Onboard (always-on) pullups support (MarlinFirmware#16144)

* Tweak ExtUI Probeless Babystepping (MarlinFirmware#16177)

* Fix RAMBo CNC test

* Flsun QQ-S example config (MarlinFirmware#16204)

* Add MKS Robin Mini EEPROM defines (MarlinFirmware#16203)

* Fix compile error (macro substitution typo) (MarlinFirmware#16194)

* Update M503 MBL G29 report (MarlinFirmware#16199)

* Include Z in SCARA steps feedrate (MarlinFirmware#16193)

* Cardreader read/write open methods

* Tweak some config names

* Improve A20M config

* Move status screen defines

* Fix bad #ifdef (MarlinFirmware#16227)

* TOUCH_MI_DEPLOY_XPOS fallback to X_MIN_POS (MarlinFirmware#16226)

* Fix MKS SGen-L SD detect pin (MarlinFirmware#16224)

* Improve ESP32 HAL (EEPROM, watchdog) (MarlinFirmware#16228)

* Fix G28 debug line, M569 calls (MarlinFirmware#16213)

* Add SKR Mini E3 + Zonestar LCD warning (MarlinFirmware#16214)

* STM32 Touch UI timings, Longer onboard pullups (MarlinFirmware#16219)

* Update BTT002 platform (fixing SD init) (MarlinFirmware#16217)

* Define more FAN pins for GT2560 (MarlinFirmware#16235)

* Tweak E180 config

* Update product links

* [cron] Bump distribution date

* Add dev-2.1.x to 'mfinfo' script

* Move AutoBuildMarlin to its own repo

* [cron] Bump distribution date

* Tweak G34, fix a declaration

* Sanity-check Z_STEPPER_AUTO_ALIGN coordinates (MarlinFirmware#16231)

* Improve SKR mini E3 + Ender 3 settings (MarlinFirmware#16247)

* Tweak code formatting

* Allow TMC2209 to save/restore spreadCycle (MarlinFirmware#16153)

Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>

* Spindle/Laser pins for RADDS (MarlinFirmware#16119)

* Improve pulse timing and step reliability (MarlinFirmware#16128)

* BigTreeTech SKR v1.4 support (MarlinFirmware#16236)

* Followup to TMC2209 spreadcycle patch

* Remove obsolete TMC2209 comment

* HOME_USING_SPREADCYCLE is obsolete

Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>

* Use MYSERIAL0 (not SerialUSB) for Malyan LCD

* Followup for step timing (MarlinFirmware#16128)

* Fix broken M100_dump_routine

* Tweak sanity checks

* Update test scripts to error on unknown (MarlinFirmware#16229)

* Kossel Clear configuration (MarlinFirmware#16198)

* Move pins debug condition

* Use Github Actions for CI, date bump (MarlinFirmware#16269)

* Fix HAL_STM32 + Arduino IDE SoftwareSerial conflict (MarlinFirmware#16266)

* Improve Anet A6 config (MarlinFirmware#16280)

* Fix G34 with Z_DUAL_STEPPER_DRIVERS compile (MarlinFirmware#16274)

* Fix planner compile error (MarlinFirmware#16272)

* Fix axis CS sanity check (MarlinFirmware#16271)

* Add Tevo Nereus (w/ Robin Nano) config (MarlinFirmware#16207)

* Don't test certain changes

* Reset runout.ran_out on resume (MarlinFirmware#16230)

* Step timing cleanup and rounding fix (MarlinFirmware#16258)

* Add MRR_ESPA/_ESPE (ESP32) boards (MarlinFirmware#16238)

* Add Ender-5 Pro config (MarlinFirmware#16221)

* Add FLYBOARD (STM32F407ZG) (MarlinFirmware#16257)

* Fix STM32 flush of TX (used by UBL) (MarlinFirmware#16197)

* Flash leveling (for some STM32) (MarlinFirmware#16174)

* Some ESP32 patches (MarlinFirmware#16297)

* MKS SGen-L pins EEBF or EFBF scheme (MarlinFirmware#16296)

* Release version 2.0.0

* Add Rumba32 support for PIO (MarlinFirmware#16202)

* MKS Robin 2 (STM32F407ZE) base support (MarlinFirmware#16270)

* Update Czech language (MarlinFirmware#16305)

* Sync SKR E3 configs (MarlinFirmware#16301)

* Add NOZZLE_AS_PROBE (no probe offsets) (MarlinFirmware#15929)

* Version 2.0.1

* Update build status url

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: randellhodges <rhodges@taxfodder.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Antti Andreimann <anttix@users.sourceforge.net>
Co-authored-by: thisiskeithb <13375512+thisiskeithb@users.noreply.github.com>
Co-authored-by: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com>
Co-authored-by: Alain Martel <alain74martel@gmail.com>
Co-authored-by: Anders Sahlman <57940217+AndersSahlman@users.noreply.github.com>
Co-authored-by: dagorel <37673727+dagorel@users.noreply.github.com>
Co-authored-by: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Co-authored-by: MS1987 <lms228@163.com>
Co-authored-by: MangaValk <patrickvalkmanga@hotmail.com>
Co-authored-by: André Kjellstrup <andre.kjellstrup@gmail.com>
Co-authored-by: Tobias Schürg <tobiasschuerg@gmail.com>
Co-authored-by: Jeff Eberl <jeffeb3@gmail.com>
Co-authored-by: ManuelMcLure <manuel@mclure.org>
Co-authored-by: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Co-authored-by: iain MacDonnell <github@dseven.org>
Co-authored-by: Bo Herrmannsen <bo.herrmannsen@gmail.com>
Co-authored-by: Luc <8822552+luc-github@users.noreply.github.com>
Co-authored-by: danym21 <54744475+danym21@users.noreply.github.com>
Co-authored-by: chzj333 <53591189+chzj333@users.noreply.github.com>
Co-authored-by: Vertabreaker <opyrus@hotmail.com>
Co-authored-by: Moshi Binyamini <MoshiBin@users.noreply.github.com>
Co-authored-by: salami738 <24863070+salami738@users.noreply.github.com>
Co-authored-by: elementfoundry <57408038+elementfoundry@users.noreply.github.com>
Co-authored-by: teemuatlut <teemu.mantykallio@live.fi>
Co-authored-by: Mario Costa <mario.silva.costa@gmail.com>
Co-authored-by: BigTreeTech <38851044+bigtreetech@users.noreply.github.com>
Co-authored-by: Markus Towara <mtowara@gmail.com>
Co-authored-by: FLYmaker <49380822+FLYmaker@users.noreply.github.com>
Co-authored-by: ferengi82 <christian.maurer@gmx.eu>
Co-authored-by: petrzjunior <junior@zahradnik.cz>
webs1821 pushed a commit to webs1821/Marlin that referenced this pull request Jan 2, 2020
griehsler pushed a commit to griehsler/Marlin that referenced this pull request Jan 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: STM32 C: Serial Comms 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