Hello,
I have designed a custom board (not yet put online, and more of a general purpose stepper controller board than a printer controller) using a STM32F411CEU + 6x TMC2208. The TMC2208 serial ports are defined as software.
The board works, and so does the TMC2208 serial communication.
However, if I attach servos they do not work... unless I disable software serial and use the drivers as stand alone. I would like to use both servos and full featured TMC2208.
I then found read somewhere that SoftwareSerial causes problems with interrupts and interferes with the Servo library. Is this still the case or did I configure something wrong with the timers?
I also shuffled around the timer definitions in my board config:
#define STEP_TIMER 5
#define TEMP_TIMER 10
#define TIMER_SERIAL TIM9
But servos still don't work.
TIMER_SERVO is defined in variant.h as TIM11, so no conflict. Other than TIM5, TIM10, TIM9 and TIM11, STM32F411CEU also has TIM0, TIM1, TIM2, TIM3, TIM4 and the various PWM used (such as servos) are connected to pins associated with these timers.
Same behaviour when compiling with either arduino or plaformio. Relevant part of my platfromio.ini:
[env:MVSC2]
platform = ${common_stm32.platform}
board = blackpill_f411ce
framework = arduino
build_flags = ${common_stm32.build_flags}
-D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
-D USBCON
-D HAL_PCD_MODULE_ENABLED
upload_protocol = dfu
Is my only solution modifying TMCStepper to not use SoftwareSerial but some other library, or is the issue elsewhere entirely?