TMC2209 v3.1 (FYSETC) + RAMPS 1.4 + Marlin bugfix-1.1 + UART
Napsal: 28.04.2021 21:47
Zdravím. Rád bych se zeptal, jestli se tu někomu podařilo zprovoznit driver TMC2209 v3.1 od FYSETCu na desce RAMPS 1.4 s FW Marlin bugfix-1.1.x v UART módu? Nedaří se mi to. Driver stále chodí v klasickém DIR/STEP režimu.
Věnoval jsem tomu dost času, ale bohužel, všechny návody a rady na netu, se týkají verze driveru nejvýše v3.0. Tam je třeba pro zapnutí UARTu pájet propojky. Zde údajně žádné pájení není třeba. Zespodu na driveru sice jsou nějaké plošky, které by se daly propojit, ale na úplně jiném místě, než kdekoliv v jiných návodech a po pravdě si nechci takovým “hokus-pokus zkoušením” zničit driver, když se na internetu nikde nepíše o tom, že by pro v3.1 bylo nutno cokoliv pájet pro zapnutí UART režimu (https://wiki.fysetc.com/Silent2209/#v31 ... connection).
Další věc – jak vidno z fotek, tento driver má samostatné piny pro TX i RX komunikaci. Drtivá většina návodů je na drivery TMC2208, kde se propojení a komunikace s RAMPS deskou řeší Y propojkou přes 1K resistor s jedním pinem na driveru a dvěma na RAMPSu (např. tento pěkný návod zde: https://www.instructables.com/UART-This ... s-With-th/)
Já jsem tedy použil dva samostatné propojovací kabely. Mezi kabel pro TX jsem napájel 1K resistor, u RX jen drát a propojil jsem takhle piny RX a TX na driveru s odpovídajícími piny na RAMPSu. Jsem si téměř jistý, že úpravy v souborech configuration.h, configuration_adv.h a také pins_RAMPS.h jsem důkladně prošel a nastavil správně.
Testoval jsem zatím pouze osu X. Marlin s příkazem M122 však stále hlásí: Driver registers: X = 0x00:00:00:00 ať dělám co dělám.
Další věc, kde by mohl být problém – použitá knihovna driverů, když kompiluji Marlina pro TMC drivery v Arduino IDE, je “TMC2208Stepper”, zatímco na webu https://marlinfw.org/docs/hardware/tmc_drivers.html doporučují pro verzi 1.1.9 použít knihovnu “TMCStepper”. Ta je novější a podporuje přímo drivery TMC2209. Jenomže s touhle knihovnou to nejde zkompilovat, háže to chyby na neexistující knihovny atd. Obávám se, že zde soudruzi udělali chybu a prostě Marlin 1.x není pro drivery TMC2209 ani knihovnu "TMCStepper" připraven. A Marlina ve verzi 2.0.x na svůj RAMPS 1.4 s Arduino Mega2560 prostě nedostanu.
Budu rád za každou radu, ale myslím si, že problém je na více frontách a nemá to v téhle konfiguraci řešení. A na to, abych dokázal naroubovat novější "TMCStepper" knihovnu do Marlina bugfix-1.1.x, nemám skillsy... pokud je v tom vůbec ten hlavní problém.
Věnoval jsem tomu dost času, ale bohužel, všechny návody a rady na netu, se týkají verze driveru nejvýše v3.0. Tam je třeba pro zapnutí UARTu pájet propojky. Zde údajně žádné pájení není třeba. Zespodu na driveru sice jsou nějaké plošky, které by se daly propojit, ale na úplně jiném místě, než kdekoliv v jiných návodech a po pravdě si nechci takovým “hokus-pokus zkoušením” zničit driver, když se na internetu nikde nepíše o tom, že by pro v3.1 bylo nutno cokoliv pájet pro zapnutí UART režimu (https://wiki.fysetc.com/Silent2209/#v31 ... connection).
Další věc – jak vidno z fotek, tento driver má samostatné piny pro TX i RX komunikaci. Drtivá většina návodů je na drivery TMC2208, kde se propojení a komunikace s RAMPS deskou řeší Y propojkou přes 1K resistor s jedním pinem na driveru a dvěma na RAMPSu (např. tento pěkný návod zde: https://www.instructables.com/UART-This ... s-With-th/)
Já jsem tedy použil dva samostatné propojovací kabely. Mezi kabel pro TX jsem napájel 1K resistor, u RX jen drát a propojil jsem takhle piny RX a TX na driveru s odpovídajícími piny na RAMPSu. Jsem si téměř jistý, že úpravy v souborech configuration.h, configuration_adv.h a také pins_RAMPS.h jsem důkladně prošel a nastavil správně.
Testoval jsem zatím pouze osu X. Marlin s příkazem M122 však stále hlásí: Driver registers: X = 0x00:00:00:00 ať dělám co dělám.
- Kód: Vybrat vše
X
Enabled false
Set current 650
RMS current 1160
MAX current 1636
Run current 20/31
Hold current 10/31
CS actual 0/31
PWM scale 0
vsense 0=.325
stealthChop false
msteps 256
tstep 0
pwm
threshold 164
[mm/s] 964.18
OT prewarn false
OT prewarn has
been triggered false
off time 0
blank time 16
hysteresis
-end -3
-start 1
Stallguard thrs
DRVSTATUS X
stst
olb
ola
s2gb
s2ga
otpw
ot
157C
150C
143C
120C
s2vsa
s2vsb
Driver registers: X = 0x00:00:00:00
Další věc, kde by mohl být problém – použitá knihovna driverů, když kompiluji Marlina pro TMC drivery v Arduino IDE, je “TMC2208Stepper”, zatímco na webu https://marlinfw.org/docs/hardware/tmc_drivers.html doporučují pro verzi 1.1.9 použít knihovnu “TMCStepper”. Ta je novější a podporuje přímo drivery TMC2209. Jenomže s touhle knihovnou to nejde zkompilovat, háže to chyby na neexistující knihovny atd. Obávám se, že zde soudruzi udělali chybu a prostě Marlin 1.x není pro drivery TMC2209 ani knihovnu "TMCStepper" připraven. A Marlina ve verzi 2.0.x na svůj RAMPS 1.4 s Arduino Mega2560 prostě nedostanu.
Budu rád za každou radu, ale myslím si, že problém je na více frontách a nemá to v téhle konfiguraci řešení. A na to, abych dokázal naroubovat novější "TMCStepper" knihovnu do Marlina bugfix-1.1.x, nemám skillsy... pokud je v tom vůbec ten hlavní problém.