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:
-
Are there any jumpers or solder pads that need to be set for UART to work on the Fysetec S2209 V3.1?
-
Is there a specific sequence required to initialize UART mode?
-
Are there any known issues with using the TMC2209 V3.1 on an STM32?
I appreciate any help you can provide!
Best regards