I Know this, but apparently it can be done with the TMC drivers (max of 4 to a singel line) and the ESPHome component is also Capable.
I discovered from the datasheets that the TMC2208 has a fixed address of 0x00 and cant be modified. The TMC2209 can, so I ordered some TMC2209’s I wil test this tonight!
OK, I’m really having some issues… And I’m not getting any further with this…
The UART is very unstable, sometimes two or one driver(S) connects, sometimes non of them connect. I used a extra AMS1117 to make a clean 3.3v for the VIO but it still behaves very unpredictable. I’ve three TMC2209 on a single UART bus (Multi Drop). Do I need a termination on the “bus” like RS485?
The other problem is the microsteps setting in UART. It ignores the setting an takes the MS1 and MS2 values used for UART adressing… how can I set the correct microstep setting?
I’m building a project with ten tmc2209 steppers on a ESP32-S3 with index and homing sensors. This should work in theory but it is a real challenge only two stepper motors will be used at the same time by the way. The project is a cabinet with ten drawers that will be opened by the steppers.
Yes, as you have already realized, TMC2208 (0x20) doesn’t support addressing while TMC2209 (0x21) “do”. While UART isn’t a BUS, Trinamic still choose this and added adressing.
Anyway, it has been a while since I have used the addressing option myself and ESPHome have since had some updates to how UART works. I don’t think any of them are breaking changes, but I’m not entirely sure.
It’s hard to say what could be causing your setup to fail without more information, but perhaps you could try to isolate things a bit. Make sure you create good connections.
Good quality jumper wires and breadboard is a must - otherwise solder wires directly. Keep wires as short as possible.
Start with a single driver - try the different adresses for same driver.
Add one driver at a time to see when things stop working as intended.
Try slower baud rates and test other hw/sw UART interfaces.
Can someone show your esphome config using the tmc2209.. I tried to get this working but its giving me a error.
ERROR Unable to import component tmc2209.stepper:
Traceback (most recent call last):
File "/esphome/esphome/loader.py", line 233, in _lookup_module
module = importlib.import_module(f"esphome.components.{domain}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1310, in _find_and_load_unlocked
File "", line 488, in _call_with_frames_removed
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 999, in exec_module
File "", line 488, in _call_with_frames_removed
File "/data/external_components/705079b2/esphome/components/tmc2209/init.py", line 15, in
from esphome.components import tmc2209_hub
ImportError: cannot import name 'tmc2209_hub' from 'esphome.components' (/esphome/esphome/components/init.py)
Failed config