Where can I find uart_pin for the MKS Robin Nano v3.1?

Basic Information:

Printer Model: Custom - upgrade of a Folger Tech FT5
MCU / Printerboard: MKS Robin Nano v3.1
klippy.log

Describe your issue: So I’m making great progress on upgrading my Folger FT5 to use Klipper (I had another post on getting the MCU flashed). I’m now at the point where I can print but my steppers in the Y axis are clearly skipping and I’m pretty sure it’s due to low current. On my old board, I could adjust the potentiometer but reading about the TMC2209, it seems like I should be able to set this in the printer.cfg file by adding the following section:

[tmc2209 stepper_y]
uart_pin:
run_current:0.8

My only problem is that I can’t seem to find what uart_pin should be set to for the y stepper. I’ve looked through everything I can find on the MKS Robin Nano v3.1 and I don’t see where this is documented. I found this image which gave me the correct information for all the other stepper parameters but nothing about a uart_pin.

Any idea where I can find this info?

Actually, it’s in the pinout diagram you’ve provided.

Look at the top right hand corner under “TX = RX” and those are the UART pins for the different driver sockets.

The jump placement to enable the UART pins is here in the user manual:

1 Like

Of Course! “TX = RX” universally translates to “uart_pin”, I don’t know how I could miss that one! :slight_smile:
Once again, really appreciate your help. That at least gets me to where the firmware loads. Now I will try playing with the current to see if it improves.
Just for grins, thought you might like to see a couple of images. If I get this right, the first one is a view perpendicular to the x-axis. Other than some pretty poor finish, it pretty much looks like a benchy print. The second image is that same print viewed perpendicular to the y-axis and it looks like the pirate ship at the bottom of the ocean in a Pirates of the Caribbean movie.

Ok, it will only let me put one image in. I will have to post the y-axis in a follow-up.

Here’s the beautiful y-axis.

Can you share the klippy.log in your next post?

If it is too big, you can zip it.

Sure, it’s printing another benchy right now but I expect the same results from this one because I left the run_current at 0.8 which I believe is the default. Assuming I get the same results, I will post the log.

1 Like

So this is interesting. I just did another print of benchy and literally the only thing I changed was adding the lines to set the current on the y-axis. I didn’t even re-slice benchy, I just used the same gcode. Setting the current, even to just 0.8 seems to have fixed the y stepper problem. But the resulting print seems to have shortened the travel distance in just the y direction. Here’s a photo of the result and I put the prior print next to it so you can see how much skinnier it is now.

Here is my printer.cfg file:

This file contains common pin mappings for MKS Robin Nano V3

boards. To use this config, the firmware should be compiled for the

stm32f407. When running “make menuconfig”, select the 48KiB

bootloader, and enable “USB for communication”.

The “make flash” command does not work on the MKS Robin. Instead,

after running “make”, copy the generated “out/klipper.bin” file to a

file named “Robin_nano_v3.bin” on an SD card and then restart the

MKS Robin with that SD card.

See docs/Config_Reference.md for a description of parameters.

[stepper_x]
step_pin: PE3
dir_pin: !PE2
enable_pin: !PE4
microsteps: 16
rotation_distance: 80
endstop_pin: !PA15
position_endstop: 0
position_max: 300
homing_speed: 50

[stepper_y]
step_pin: PE0
dir_pin: PB9
enable_pin: !PE1
microsteps: 16
rotation_distance: 80
endstop_pin: !PD2
position_endstop: 0
position_max: 300
homing_speed: 50

[tmc2209 stepper_y]
uart_pin:PD7
run_current:0.8

[stepper_z]
step_pin: PB5
dir_pin: !PB4
enable_pin: !PB8
microsteps: 16
rotation_distance: 16
endstop_pin: !PC8
position_endstop: 0.5
position_max: 200

[extruder]
step_pin: PD6
dir_pin: PD3
enable_pin: !PB3
microsteps: 16
rotation_distance: 67.054
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PE5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC1
#control: pid
#pid_Kp: 14.669
#pid_Ki: 0.572
#pid_Kd: 94.068
min_temp: 0
max_temp: 250

#[extruder1]
#step_pin: PD15
#dir_pin: !PA1
#enable_pin: !PA3
#heater_pin: PB0
#sensor_pin: PA2
#…

[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
#control: pid
#pid_Kp: 325.10
#pid_Ki: 63.35
#pid_Kd: 417.10
min_temp: 0
max_temp: 130

[heater_fan extruder_fan]
pin: PC14 # fan1
heater: extruder
heater_temp: 50.0
fan_speed: 1.0
#pin: PB1 # fan2

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_350043000450465731373320-if00

[printer]
kinematics: cartesian
max_velocity: 250
max_accel: 4500
max_z_velocity: 25
max_z_accel: 100

########################################

EXP1 / EXP2 (display) pins

########################################

[board_pins]
aliases:
# EXP1 header
EXP1_1=PC5, EXP1_3=PD13, EXP1_5=PE14, EXP1_7=PD11, EXP1_9=,
EXP1_2=PE13, EXP1_4=PC6, EXP1_6=PE15, EXP1_8=PD10, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_3=PE8, EXP2_5=PE11, EXP2_7=PE12, EXP2_9=,
EXP2_2=PA5, EXP2_4=PE10, EXP2_6=PA7, EXP2_8=, EXP2_10=<3.3v>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus “ssp1”

See the sample-lcd.cfg file for definitions of common LCD displays.

## <---------------------- SAVE_CONFIG ---------------------->
#
# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
##
#
# [extruder]
## control = pid
#
# pid_kp = 12.895
## pid_ki = 0.371
#
# pid_kd = 112.187
##
#
# [heater_bed]
## control = pid
#
# pid_kp = 56.934
## pid_ki = 2.329
#
# pid_kd = 348.010

And here is my slippy.log from just after this print.

klippy.log (2.4 MB)

Well, like so many things, I can’t explain why but when I first started configuring the printer with the new guts I had to change the rotation_distance on each stepper to make it accurate. So I doubled all the values which made it perfectly accurate.

Adding the [tmc2209 …] section for some reason seems to exactly halved the current travel distance when I move along any axis. So I added the [tmc2209 …] section for all steppers and put rotation_distance back to the original value of 40.

Printing a new benchy now but it would appear that scale and skipping issue have been resolved.

Thanks everyone,
Greg.

1 Like

Glad to hear you have things working.

Don’t feel bad that you didn’t equate “TX = RX” with “UART”, I only knew that because I run a printer with the Robin Nano V3.

It seems like every board is documented differently so you have to do a fairly deep dive to figure out what’s what.