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.