Sticky
OnStepX TMC2209 UART support
19 messages
Here's a summation of the state of TMC2209 UART support and the possibilities for OnStepX: * I did testing on the MaxESP3 and MaxPCB2 (Teensy3.5) only. * I used *FYSETC TMC2209 ( https://wiki.fysetc.com/Silent2209/ )* version 3.1 drivers as they have an optimal RX/TX pin scheme for our purposes. * The pinmaps contain the TMC2209 UART configuration. * To enable simply use a stepper driver model of *TMC2209U*. The standalone driver model TMC2209 was replaced with *TMC2209S* due to a name collision with *the TMC2209 library ( https://github.com/hjd1964/TMC2209 )*. * The default is SoftwareSerial TX only (no status or other feedback.) * The M0/CFG1 and M1/CFG2 (shared for Axis1 and Axis2) are both pulled low to set all TMC2209 device addresses to 0. * The M2/CS pin of each socket is TX. * For the MaxESP3 you can instead use HardwareSerial (TX and RX) by adding *#define TMC2209_USE_HARDWARE_SERIAL* to Config.h. * The M0/CFG1 and M1/CFG2 (shared for Axis1 and Axis2) are both pulled high to facilitate setting the TMC2209 device addresses. * Cut off the CFG1 and CFG2 pins of Axis1 to set device address 0. CFG1 = LOW, CFG2 = LOW. * Cut off the CFG2 pin only for Axis2 to set address 1. CFG1 = HIGH, CFG2 = LOW. * The M2/CS pin of Axis1 is TX, the M3/MISO pin of Axis1 and Axis2 (shared) is RX. * I tested TMC2209's in Axis1 and Axis2 using this scheme and it worked fine. * It should be possible to extend this to the Axis3/4 drivers. * Set the addresses 2 and 3 on the M0 and M1 jumpers under the drivers. * The jumpers for M2 should be left out. * Connect the RX pin from the Axis2 driver, which is already connected to RX on Axis1 by a trace on the board, to the Axis3 and Axis4 drivers. * *RX only* as TX is already coupled to RX with a 1K resistor on Axis1. RX is simply a direct connection to the PDN_UART of each driver. * Watch if using current control in software though *as the lack of Enable pins mean the drivers would come up enabled at max current* ! * It might be possible to overcome this by adding a weak pullup resistor to the RX line so the drivers come up in UART mode. * For the MaxPCB2 I added an HardwareSerial option to the Config.h file as well. * You must jumper from the spare hardware serial *Ser4* port to the RX and TX pins of Axis1. * Axis2, Axis3, and Axis4 TMC2209 RX then get connected together on the pins extending from the drivers top. * Device addresses get set as described above by cutting pins for Axis1 and Axis2 and using jumpers on Axis3 and Axis4. * Axis3 and Axis4 have Enable pins so current control in software should be ok there as well. * The M2/CS and M3/MISO pins of each driver (where present) shouldn't be initialized (left OPEN) if using TMC2209U in hardware serial mode so cutting those pins isn't required AFAIK. * This hasn't been tested.
|
Website plug-in issue with the catalogue
2 messages
|
Add Seeed Studio XIAO SAMD21 as possible processor?
2 messages
|
SWS (v2.06c) GoTo controls Max slew speed
5 messages
|
Smart Hand Controller 2
155 messages
|
ALTAZM setting and mount altitude value
3 messages
|
OnStepX and DC Servo Motor control
23 messages
|
Website plugin
2 messages
|
NTP Time SWS or Station mode.
20 messages
|
Ideas for MaxESP5i
6 messages
|
Focuser Power Down in OnStepX
6 messages
|
Move mount to zero step count
3 messages
|
OnstepX compiler failure Latest Arduino IDE 2.0.4
24 messages
|
SWS version 2.05q crashes after a few minutes running on an ESP32
26 messages
|
Encoder Bridge, SWS, does it fit together on the MaxPCB4W?
18 messages
|
Smart Hand Controller2 Plus with USB-C
18 messages
|
MaxEsp4 - Tweaks to PCB
4 messages
|
New TMC2209X Library
3 messages
|
SWS double initialization v2.05p
3 messages
|