How the important its define UART pin in CFG?

Basic Information:

Printer Model: Ratrig Vcore 3.1
MCU / Printerboard: Octopus Pro + SHT42

Fill out above information and in all cases attach your klippy.log file. Pasting your printer.cfg is not needed
Be sure to check our Knowledge Base and in particular this and this post

Describe your issue:

The more I read, the less I know…

my extrusion problems… it stops extruding on the first layer… can you be compatible with not having the UART PIN of the driver defined in the TMC2209 configuration?

That pin, if I haven’t read wrong, its main function is to adjust the current of the TMC2209 driver by software… right?


  • Would the driver work without it being defined in the corresponding section?
  • If it worked. At what current would I be doing it?

@Peurif, I kindly ask you not to start a new topic for every (minor) aspect of your questions. Sooner or later, I need to establish a “Peurif” category.
Basically the content is the same as Could it be a blank space in the PIN name? and you just dropped the thread there and you are now starting this one.

And I also would very much appreciate if you showed at least a little self motivation in researching and / or trying out the stuff on your own. I have the feeling that you create a post out of each minor topic before at least investing some personal time and effort into it. Current (but not limited to) example: Help with Fluidd - #2 by Peurif


first apologize to you and the other members of the forum if I repeat questions…

I also ask for some understanding, my personal situation makes me forget things. It is a personal circumstance that I had no idea of making public, but I understand your weariness for my repetitions.

About 5 years ago I suffered a brain tumor, which I underwent emergency surgery, and from which I narrowly escaped. When I recovered, one of the things that kept me and keeps me interested is 3d printing, but among the sequelae of that tumor, part of the loss of short-term memory… that’s funny, I remember things that happened 15 years ago , and I have a hard time remembering what I ate yesterday.

This results in me repeating many questions, because I have simply forgotten that I have asked them…

sorry for bothering you


My sincere sympathy and compassion for your situation.
It was not my intention to force you to reveal your personal circumstances here. Nevertheless, thank you for that and of course that makes the topic appear in a different light.


It’s no problem in saying it…

I can consider myself lucky. And sincerely, I am grateful to you all for the help and patience

Maybe not in this case. I would attach it.

I would just like to add my $0.02 to the conversation.

Klipper is amazing because of breadth of product support, is very reliable and really brings 3D printing into the 21st century. The documentation is really well done and complete and when I say this I’m comparing it to any other application, open source or commercial. The support available here and in other places on the web is top notch as well.

However, FDM 3D printing is amazingly diverse and Klipper is trying to support all the options which means that people are often overwhelmed with the decisions they have to make to configure it for their printers that are, more likely than not, unique. Things are made more difficult with the availability of products that work with Klipper in a half-assed fashion (Sonic Pad, Trigorilla boards, etc.).

Topping it all off is that 3D printing is hard and there is a ton of things to know that aren’t directly related to Klipper but impacts how Klipper works. The original post in this thread is one of those cases - it is a question about the TMC2209 and its UART mode which is interfaces to Klipper but is really a background question asking about how the chip works.

When you start out, you often find the answer in the documentation but it doesn’t make sense because you don’t have the prerequisite background information to understand what you’re being told. Even though I’ve been working with 3D printers for 10+ years, when I started using Klipper, I was amazed at how many things I really didn’t understand in terms of the 3D printing universe and took for granted in my own printers but left me ignorant without the prerequisites to be able to work through things on my own. While I feel pretty good about my track record of figuring out things without asking questions here over the last six months, I’m sure that previous to that people were wondering if there should be a “myke predko” category.

Personally, I never mind questions like this as it gives me a chance to learn more about Klipper and it’s operation.

Now, I see that nobody’s answered the questions posed by @Peurif:

The TMC2209 (and the other TMC stepper drivers that have a UART interface) can operate in two modes, STAND ALONE and UART. In STAND ALONE mode, the stepper microsteps are defined by voltage levels applied to a couple of pins and the driver current is defined by an analog voltage provided to the chip as well as “sense resistors” that monitor the amount of current flowing through the driver. There is an error indication line that is available in STAND ALONE mode but no way to write to or query internal registers.

In UART mode, the stepper microsteps, the driver current and other parameters are defined by packets of information sent to TMC2209 via the UART pin. Register and status information is read back through the UART as well. To ensure precise movement, the STEP, DIR and EN functions are driven by the same pins as in STAND ALONE mode.

In answer to your questions:

  • Yes the driver will work without having UART defined. It will be in STAND ALONE mode but the microsteps per STEP cycles will have to be determined by putting a volt meter on the TMC2209 pins.
  • The current would be defined by the analog voltage provided to the “VREF” pin of the chip. On the EBB42 and FLY SHT Boards the VREF pin is left floating and this is not discussed in the datasheet so the current limit for the stepper motor is indeterminate.

Because the VREF pin is left floating, I would consider it MANDATORY that the UART statement in the FLY SHT (and EBB) boards printer.cfg are defined. In boards where you have the option of running in STAND ALONE or UART modes, I very highly recommend using UART mode as I hate moving jumpers around and setting the VREF voltage with a jeweler’s screwdriver and a voltmeter.

Let me know if you have any other questions.

Sorry for the long read.


Small addition to @mykepredko’s excellent response:

My understanding is that your problem is with the extruder when you close the chamber.
If so, this is most likely not related to the UART connection. The UART connection has the following advantages

  • run_current adjustment via software
  • Ability to tune different registers, e.g. switch between spread-cycle and stealth-chop.
  • Receiving status information from the driver, e.g. over temperature warnings etc.
1 Like