Enabling UART on Fysetec S2209 V3.1

Hello,

I’m trying to get UART communication working with the Fysetec S2209 V3.1 (TMC2209), but I’m encountering issues where I only receive all zeros (Version: 0) when querying the driver via UART.

Setup Details:

Microcontroller: STM32F103C8 (Blue Pill)

Firmware: Arduino framework on PlatformIO

Library: TMCStepper / TMC2209

UART Connection:

TMC2209 TX → STM32 PA3 (RX2)

TMC2209 RX → STM32 PA2 (TX2)

GND → GND

VCC → 5V / 3.3V (Tested both)

UART Code Snippet:

#include <TMCStepper.h>

#define R_SENSE 0.11f  
#define DRIVER_ADDRESS 0b00  

HardwareSerial TMCSerial(USART2);
TMC2209Stepper driver(&TMCSerial, R_SENSE, DRIVER_ADDRESS);

void setup() {
    Serial1.begin(115200);  
    TMCSerial.begin(115200);  
    driver.begin();

    Serial1.println("TMC2209 Initialized!");
}

void loop() {
    Serial1.print("Version: ");
    Serial1.println(driver.version(), HEX);  
    delay(1000);
}

Issue:

driver.version() always returns 0.

Other registers also return 0.

UART communication itself seems functional, but the driver is unresponsive.

Could you please confirm:

  1. Are there any jumpers or solder pads that need to be set for UART to work on the Fysetec S2209 V3.1?

  2. Is there a specific sequence required to initialize UART mode?

  3. Are there any known issues with using the TMC2209 V3.1 on an STM32?

I appreciate any help you can provide!

Best regards