Creality 5.2.1, GDN32F303 and UART Mode

I have a nice challenge to figure out. I have a board creality v5.2.1 with GDN32F303 chip. Everything works fine in standalone tmc2209 mode. But I wanted to try to run it with UART. I’ve checked board and PDN_UART pins on all drivers are wired through resistor to PD6 pin which is USART2_RX on the chip. So on a first glance it looks all great. But in klipper I do get Unable to read tmc uart 'stepper_y' register GCONF
My config is :

[tmc2209 stepper_y]
uart_pin: PD6
tx_pin: PD5
diag_pin: PB8
# uart_address: 1
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 999999

does tmc2209 require anything to be switched to UART mode ? or it should work as is ? other question is, should it go through resistor ? I am assuming it’s “level converter” but maybe this is the way from creality to disable UART ?


PD6 - RX
PD5 - TX

Hello @uneasymusic !

Already swapped the RX/TX assigments?

What RX is on device 1 has to be TX on device 2 and vice versa.

BTW: 1kOhm is just a current protection.

HI, yes I have tried that different pin combination.
It’s probably worth mentioning, that there is 7 drivers wired to same UART line.
But I am only trying to make 1 work. But will it work like that ?

No, you will have to address them:

TMC 2209 Datasheet

Page 17, part 4.3

So you can only address 4 chips with one UART.


You may try this:

Forget about the “common” UART line and only use the others that go to the TMSs each.

Well I have connection now. since there is 7 drivers on the same line, I’ve assumed the only non duplicated address will be 3. and in fact one driver talks and communicates on that address fine.
So I guess now it’s a matter of separating other 4 and wiring them into different URAT.

1 Like

Hi, I’m not sure if I understood correctly, but on the board they wired all 7 stepper drivers (z1, z2, x1, x2, e1, e2 and y) to one UART "line"or whatever it’s called and only 4 stepper drivers can use UART mode per line?

I’d be happy to just use 2 stepper drivers in uart mode (e1, e2). Could you tell me how?
Just use your config from the initial post and uncommend uart_address: 1 for both steppers?

Background: I have a Sovol SV04 with that mainboard, I changed the toolheads to one’s from SV06 and now I’d like to turn down the current on the extruder stepper motors.

yes - I have sv04 too :wink: I think I’ve seen tour video on the facebook group.
so yes - all drivers are wired to the same uart but also with the same addresses.
So what I did is I wired only X, X1 and Y drivers to separated pins, can be any pin that’s not in use, and since I removed my oem screen (using klipper screen) there was I think 2 free pins there.

oh and btw you don’t need to turn down current with klipper., you can do it with a potentiometer on the board for each driver

Yeah that’s me :grin: I think the sv06 extruders turn out to be a fail… After only 45 mins of printing the extruder heatsinks + aluminum brackets got quite hot and this happened:

Seems like the filament softened up in the extruder and the gears couldn’t push it down.
So my first idea is to turn down current for the extruder steppers. Then I’ll try to add cooling fans to the extruder heatsinks.

Sry if this question seems dumb to you but: What do you mean by wiring drivers to separated pins? Like scraping off contacts on the mainboard and soldering jumper wires to them?
Thx for the hint, I can try if I manage to do it on the steppers directly. Curious what current is et right now… I checked a sv06 klipper cfg and there is used run_current: 0.550 so I’ll try this current for my extruder steppers.

I’m not very optimistic that this will cool things down, but I gotta try it.

ooff, yeah looks like it;s overheating - I actually wanted to comment on your video asking where is the fan for the extruder :wink: I’ve changed mines to biqu h2

so - run current won’t change much if you don’t have UART enabled. And yes that’s what I mean - I had to attach driver phisical pins to pins on the cheap, or somewhere around where I could find the closest.

But as I mentioned, you don;t need that do just lower the current - you can do it with potentiometers on the board, but I don;'t think it will help in your case - it’s not motor that overheats, it’s a heatbreak

True, the extruder motors themselfs didn’t feel very hot… :roll_eyes:
Can’t imagine hotend fans can help much but I gotta try… if I find somewhere to put them :smiley:

fan on the hotend is crucial I am afraid. This you are getting is exactly a reason - so it does not transfer heat up the heatbreak. Not sure why you got sv06 extruders tho - they are not “the best” probably better to spend money on some biqu extruders and there are mounts for sv04 for it too

True. They are lightweight and were the cheapest option I could find and what I saw on sv06 they seem to work fine. I don’t want to give up on them just now, I’ll try to design a cooling duct for the heatsinks for a 5015 blower fan.
If everything fails I can still try to mount them sideways and add an axial fan directly onto the heatsinks.
Maybe I can get them to work, I think if they work on sv06 they can work here too.
Right now I’m trying to print petg :smiley: Shouldn’t soften up as fast as pla.

You can use any free IO pin as UART pin. So the first 4 could use the pin as in your picture and the last three you would have to relocate the pins

I have an SV04 that I have been trying to put klipper on but I can’t find a printer.cfg file that works…
Any help in pointing me in the right direction would be great, I’m getting tired of reflashing my machine when i need to print something because its a pain to convert.

I believe I have found Marlins pinout for SV04 to convert to Klipper…

Can you tell me how you wired the UART pins to another pin?
I have a Sovol SV 04 and it would be really great to have access to the driver features

@uneasymusic What solution did you finally settle on? Were you able to come up with a klipper config that allowed you to put just a few drivers in uart mode?