-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Super low torque. #69
Comments
Check #66 and let me know if it helped |
Hi, I think I might know what the problem is, see datasheet pg no 38 and pg no 39 `https://www.analog.com/media/en/technical-documentation/data-sheets/TMC2209_datasheet_rev1.09.pdf Especially pg no 39 I think with your full code it will be easier to help you |
Hi - thanks for your feedback. In the end I've ditched UART mode, as for some reasons it started to work pretty decently in standalone mode (I guess I might did some stupid mistake with not setting ENABLE pin in the right state, curiously the motor runs regardless of wether ENABLE is high or low, which should not happen, and also in standalone mode it seems I can't really achieve true freewheeling behaviour - when disabled the the holding torque is just a bit less then when enabled....) Another thing - I have switched to 24v since just now I've learned that I should not be worried about motor voltage rating and 12v can, and even should be driven by higher voltage - like 24v which substantially helped with the torque / speed... Nonetheless in terms of UART and this library - i have encountered this "tuning procedure" but found none info of how should such procedure be performed - any insights regarding this matter @peterpolidoro ? As for |
Hi, yes you almost always want to use a much higher voltage power supply than your motor voltage rating when the driver provides current control. The motor generates back-emf when it spins so you need higher power supply voltage to be able to supply enough current to the motor. The bigtreetech boards say they can go up to 28V, so using 28V will be able to provide the most current (torque) at higher speeds. Using a 12V power supply for a 12V motor will mean that you have almost no current available when you spin at speed so the torque will be super low and the motor might stop spinning altogether. The tuning procedure is described in detail in the datasheet. I have found that sometimes it is easy to do properly and sometimes it is difficult, depending on the exact setup. So for this library, I default to disabling the automatic current scaling and automatic gradient adaptation because I have found they perform poorly in some setups. Anyone is free, however, to enable them and perform the tuning procedure and see if they can get it to work well. You also have a good point about the library defaulting to low torque. Again, however, I do this on purpose to make it less likely that someone will blindly hook up a small motor and accidentally fry it. Again, anyone is free to increase the settings to use higher current as long as the power supply is up to the task. You should be able to do anything in UART mode that you can do in standalone mode. I prefer UART mode since it gives total control over the driver, but you do have to know about the settings which can take a lot of datasheet reading. The freewheeling mode can be set with one of the library methods. The motor should freewheel when you set the hold current to zero: stepper_driver.setHoldCurrent(0); and you set the standstill mode to freewheeling: stepper_driver.setStandstillMode(stepper_driver.FREEWHEELING); |
Thanks for clarification - all makes sense. Though it would be great to have some code example of actually performing the automated tuning procedure (even if it's not performed by default by the library for good reason you have mentioned) - I've read the docs and it's seems to be indeed described in detail but I'm not sure I understand everything to be able to translate it into code directly and small details might probably derail whole procedure making it hard to test / debug. |
I have not tried the tuning procedure because for my application it is not required, however I have a few comments
Will try it out myself when I get the time, for now I am trying to get the sensorless homing working. |
Hello - I'm testing the TMC2209 BIGTREETECH v 1.3 drivers without UART config and no matter which microstepping option I set via MS1/MS2 pins or what potentiometer value I set (tested max clockwise / counterclockwise positions) the motor has almost no torque I can stop the shaft by just gently grabbing / pressing it and any higher speed just makes the motor to vibrate instead of turning because of so low power.
I have tested the same stepper with A4988 driver and even with max microstepping it has much greater torque.
Then I have used this library and providing settings via UART and managed to get more torque setting PWM offset / gradient manually to max values:
although that makes stepper hot and much louder than with automatic settings:
that on the other hand give almost no torque - just like in standalone mode....
So is this default almost useless torque of TMC2209 BIGTREETECH v 1.3 something to be expected from those drivers or am I doing something terribly wrong ?
For the reference I'm using 200 steps / rev, 0.5A current 12v stepper, powered by 12v power supply rated for 3.0A
and as for microcontrollers I have used Arduino UNO and Teensy 4.1 (and Pico PI in standalone only mode as there seem to be no library for TMC2209 on this platform unfortunately).
Anyone experienced same situation ?
I'd be grateful for any hints of how ro optimally setup the drivers either via this lib or any hardware-related means ?
BTW - I have also posted an issue at Bigtreetech github - bigtreetech/BIGTREETECH-TMC2209-V1.2#19
The text was updated successfully, but these errors were encountered: