I am in the middle of a conversion to TMC2130's on my JGAurora A5. I have run into a number of issues getting them to work. I have them on all x,y,z,e0. It has been a huge learning curve to even get them close to functional. I have one outstanding issue that I am perplexed by. I can't get movement on the Z axis. I ran a m122 and got the results below. The strange thing is that there seems to be some really weird numbers on the z axis. Reference threshold, stallguard, sgresult. I have sensorless homing disabled. The other thing that seems odd is that the Y axis and E0 axis have the same register value. Is that normal?
SENDING:M122
X Y Z E0
Enabled false false false false
Set current 800 800 800 800
RMS current 795 795 795 795
MAX current 1121 1121 1121 1121
Run current 25/31 25/31 25/31 25/31
Hold current 12/31 12/31 12/31 12/31
CS actual 12/31 12/31 12/31 12/31
PWM scale 35 26 18 40
vsense 1=.18 1=.18 1=.18 1=.18
stealthChop true true true true
msteps 16 16 6 16
tstep 1048575 1048575 1048575 1048575
pwm
threshold 98 98 4294967295 263
[mm/s] 100.85 100.85 0.00 30.06
OT prewarn false false false false
OT prewarn has
beem triggered false false false false
off time 5 5 5 5
blank time 24 24 24 24
hysteresis
-end 2 2 2 2
-start 3 3 3 3
Stallguard thrs 0 0 0 0
DRVSTATUS X Y Z E0
stallguard X
sg_result 0 0 55 0
fsactive
stst X X X X
olb X
ola X
s2gb
s2ga
otpw
ot
Driver registers: X = 0xE0:0C:00:00
Y = 0x80:0C:00:00
Z = 0x81:0C:00:37
E0 = 0x80:0C:00:00
My journey so far is this. I created the harness which I have checked and it is correct. I used the standard MOSI(D51),MISO (D50) and CLK(D52) pins on the board. I used pin D40 for CS x axis, D64 for CS y axis, D42 for CS z axis, D44 for E0. I made the changes in pins_ramps.h to match. Flashed the firmware and on startup it would call the kill proceedure. I removed all the CS connections to see if that was the issue. Same result. I then removed the connections MOSI,MISO, CLK. It then booted. At one point I was able to boot into the firmware and test movement. I was able to get X and Z to move but no Y (Didn't test E0). I restarted and the error returned and I never got it to boot without erroring out.
I researched this more and saw that some people were having issues with Marlin 1.1.8 and SPI and timing issues. Because Marlin 1.1.9 allowed the defining of the communication pins I downloaded the community 1.1.9 Beta 2 and made the pin changes necessary to move all the communication to AUX-2. Pins defined as follows. (This allows all the pins to be on the AUX-2 Connector which is tidy)
CS X 63 MOSI 42 CS Y 59 MISO 44 CS Z 40 CLK 66 CS E0 44
I made the changes in pins_RAMPS.h for the CS pins, and modified configuration_adv.h to use software spi and assigned the pins. I made the changes in configuration.h to I flashed this firmware and low and behold no errors on bootup. I could get X and Y to move but not Z. I checked cabling again and saw that the CS line in the connector wasn't seated correctly. I re-seated it and that is when I got the M122 output above. I have switched drivers on the Z and E0 axis with the same results. I switched drivers back and seated the cables well on the drivers, verified orientation. i have confirmed that the extruder stepper motor moves, so now I only have the issue with z axis. There are times that I can get the z axis to move slightly if it is down. Never any movement up. I tried increasing the current to 1000 and 1200 but the same result. My next steps are to try a M502 then M500 and a cold boot followed by a M122 to see if the diagnostics report looks more normal. I have also considered moving the SPI back to the standard hardware based pins. MOSI 51, MISO 50, CLK 52 to see if that would work better. I guess my ultimate fallback would be to put the A4988 drivers back for Z and E0. I may also switch the drivers on Z and E0 again now that I am communicating and see if Z works and E0 fails. This would point to a driver issue. It has been a longer journey that I expected. If there are any sage words of advice I welcome them. I need to get my beast back in action. Too many projects too little time.
just wanted to share my experiences with the upgrade to TMC2208. My printer is basically a V9 but still with the meanwell power supply (making it a V8.5?), running the Marlin 1.1.x-bugfix branch.
A few days ago I finished my upgrade to FYSETC TMC2208 v1.2 drivers on all axes, including the extruder. Before replacing the drivers, I made sure to document Vref on all of them, which actually seem to have been adjusted by JGAurora. Maybe sharing this information here also helps others:
Motor
Vref,A4988
Imax,A4988
Irms,A4988
Irms,TMC2208
X
510 mV
638 mA
452 mA
460 mA
Y
491 mV
614 mA
435 mA
440 mA
Z
878 mV
1098 mA
778 mA
780 mA
E0
526 mV
658 mA
466 mA
480 mA
(Irms,TMC2208 denote the settings I chose for the drivers based on the Irms,A4988 values derived from the measurements)
Since I'm operating all the TMC2208s in UART mode, I adjusted the Vref on the drivers to roughly 1.5V as per Da Hai's recommendations. Doing so I realized just how finicky those potis are, so maybe choosing UART and software controlled Irms settings is really the better option. Escpecially considering the overheating issue at increased Irms settings:
at 800 mA, the extruder motor soon exceeds 53°C, where the PLA I was printing with got so soft that the extruder gear lost all its grip on the filament.
at 620 mA, the motor still reached 47°C after 2hours of printing
at 480 mA, the motor stayed well below 40°C even after 12 hours of printing (Marlin 1.1.9 w/ linear advance 1.5, s-curve acceleration an juction deviation enabled, printing speed 70mm/s, cura slicer)
I've done several prints up to several hours with these settings now, never seeing any indications of layer shifts or extrusion problems. As it never runs too hot, there's no need for an additional fan on the extruder motor.
Here´s my second report as announced after changing the first 2208 a couple of month ago.
Have 8x 2208 (FYSETC Version) now on both A5 on all axes and extruders in standalone mode. Voltage is about 1,5V on each. Here I go with Tom Sanlander, wo doesn´t really care about voltages but cares about motorheat. Working Temp of Motors is about 50°-60° Celsius and there´s no layer skipping at all - even while printing 0,6 or 0,8 mm nozzles (with titan extruder and volcano heaterblock) with up to 150 mm/sec on prints lasting for 5 days.
Now I´d like to start some experiments with UART Mod and there are two upcoming questions:
1.
I´ve set up an 2208 UART Version of Marlin 1.1.9 - it compiles but (with all the mods installed) gives a warning:
Sketch uses 225364 Bytes (88%) ... there may be stability problems...
Does anyone have experiences in this? Will it be a serious problem?
2.
Im not shure about babystepping other than 16. There are some hints about adjusting when activating 255, but what to adjust and how to determin the values?
I still had the same message issue on compil: "Sketch uses 225364 Bytes (88%) ... there may be stability problems…" But it doesn't affect the normal work for me. After few months now and a lot of trials and readings, I down the vref drivers around 1v. (less warm with stepper motors), and works like a charm. The only last improvements I made: replace all metal bearings by IGUS linear ones, replace extruder with a BMG clone one (take care here, there are different quality plastics). TMC2130 or TMC2208 ? After trying both, I personnally choice TMC2208. Just take care between V1 and V2, the cabling with the 1k resistor is not the same . That's it for the moment.
I´ve got it running now for a while and my issues are:
x/y/z are working fine. But driver for E0 won´t register. Swapped 2208 (V1) and cabeling (and tried different Pins for E0) can´t get it running in UART.
Second Problem: On the first E0 access by touch panel, z will lower 10 mm in parallel.
Third Problem: G-Start code does UBL with preheated bed and afterwards raises nozzle temp. If nozzle temp in g-code is lower than in model code every now and then nozzle temp is closed and printer is waiting for the temperature infinitely.
@Gandy when you did the settings of the current for your stepperdrivers via software did you just use the M906 E480, M906 X460, etc, etc? or did you calculate the current using the RMS values in your table? setting them as follows
@Joshua Loos the values in the first column of the table, Vref,A4988, are the voltages I measured on my actual drivers. From that I calculated the values in the second column, Imax,A4988, using the formula stated in the MKS datasheet (p.21):
4988 Green: Drive current algorithm: i = vref /0.8
Since this is Imax and the TMC requires Irms, I divided those values by the square root of 2 to yield column 3, Irms,A4988. Since setting the Vref values is not a terrible accurate process in the first place, I rounded those values for column 4, Irms,TMC2208.
In the end, I transferred the values from column 4 with the M906 command:
M906 X460 Y440 Z780 E480
Some time later I took those values to the Marlin Configuration_adv.h file and installed the fresh compile on the A5 so to not loose them to some random M502 lateron.
I also lowered the current to 470, eventually. You may have to experiment a bit to find your own best current. The motor should never get too hot to touch.
At the begining I had E800 and in effect filament melted in the bowden.
I have lowered it to E450 and it is still very hot - I've added extra small cooler to fix it, but this is not the good solution in my oppinion. 2208 should work not worse that 4998.
But having declaration
#define E0_HYBRID_THRESHOLD 30mm/s
and printing/retracting with speed 100mm/s (I use 100) means an extruder's printing in spreadcycle always.
Comments
My journey so far is this. I created the harness which I have checked and it is correct. I used the standard MOSI(D51),MISO (D50) and CLK(D52) pins on the board. I used pin D40 for CS x axis, D64 for CS y axis, D42 for CS z axis, D44 for E0. I made the changes in pins_ramps.h to match. Flashed the firmware and on startup it would call the kill proceedure. I removed all the CS connections to see if that was the issue. Same result. I then removed the connections MOSI,MISO, CLK. It then booted. At one point I was able to boot into the firmware and test movement. I was able to get X and Z to move but no Y (Didn't test E0). I restarted and the error returned and I never got it to boot without erroring out.
I researched this more and saw that some people were having issues with Marlin 1.1.8 and SPI and timing issues. Because Marlin 1.1.9 allowed the defining of the communication pins I downloaded the community 1.1.9 Beta 2 and made the pin changes necessary to move all the communication to AUX-2. Pins defined as follows. (This allows all the pins to be on the AUX-2 Connector which is tidy)
CS X 63 MOSI 42
CS Y 59 MISO 44
CS Z 40 CLK 66
CS E0 44
pins_RAMPS.h
#define X_DRIVER_TYPE TMC2130 //default A4988
Configuration_adv.h
// @section tmc_smart
"Sketch uses 225364 Bytes (88%) ... there may be stability problems…"
But it doesn't affect the normal work for me.
After few months now and a lot of trials and readings, I down the vref drivers around 1v. (less warm with stepper motors), and works like a charm. The only last improvements I made: replace all metal bearings by IGUS linear ones, replace extruder with a BMG clone one (take care here, there are different quality plastics).
TMC2130 or TMC2208 ? After trying both, I personnally choice TMC2208. Just take care between V1 and V2, the cabling with the 1k resistor is not the same .
That's it for the moment.
M906 X460, etc, etc?
or did you calculate the current using the RMS values in your table? setting them as follows
M906 X650, M906 E679
```
I have instlaled TMC2208 on X and Y but i cant find marlin 1.1.9 custom JGA5 link are dead (https://jgmakerforum.com/discussion/259/beta-jgaurora-a5-firmware-1-1-9c)
So i get the 1.1.8 custom for JGA5 i reverse code invert_x and y but i cant change :
Howdy, Stranger!
RegisterIt looks like you've been lurking for a while.
If you register, we will remember what you have read and notify you about new comments. You will also be able to participate in discussions.
So if you'd like to get involved, register for an account, it'll only take you a minute!