Hi Robert,
I decided yesterday to update the firmware of my focuser from TMC_2225-324 to the 330 release and It works pretty well.
Just two points :
- Why did you change the default serial port speed to 9600 whereas it is set to 57600 for 324 release ? Better reliability of the signal transmission ?
- I found that the motor speed was very slow compared to 324 , even with speed set to 2 (fast). I was able to increase it by reducing the motor speed delay from 6000 to 3000 (serial command :563000#. Is there a mean to increase again a bit the motor speed (by a factor1.5 to 2), knowing that 3000 is a minimum for the motor speed delay ?
Thanks in advance for feedback.
Best regards
Pierre-Yves
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Robert,
Regarding the point 1 above, it is a mistake on my part. Please don't consider it. Only the TMC 2225 use a 57600 baud rate. The serial port run at 9600 Bds...
Pierre-Yves.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Pierre-Yves
Sorry for the delay, I am currently preparing tirmware update version 334.
There were changes when the old method of moving the motor was replaced with a timer (Joel Collet) thus the 1s pauses went away, but the delay now is caused by a timer controlled with thois stepdelay value, and I pretty much guessed things on the basic of the controllers I had available at that time.
The timer sets a trigger to occur at the stepdelay rate. and repeats till the focuser arrives at the target position, then the timer is stopped.
One problem is that the user can set a value too low or too high. This issue is fixed in the version 334 which is the next update.
Firmware 324 had this as case 56 which sets the delay speed
case 56: // set motorspeed delay for current speed setting
WorkString = receiveString.substring(2, receiveString.length());
driverboard->setstepdelay(WorkString.toInt());
break;
Note that there is no limit places on the speed delay. The limit comes from windows app. But you can set it lower in firmware. Once you do that, dont try set delay using the Windows app.
The value is in microseconds. So if the value is 4000, then it means the motor will step every 4000us (4ms)
To change to a low value, use the arduino serial monitor.
Send a new value using the serial monitor, lets make it 1000
:561000#
which set a new value to 1000
case 55 gets the current value, so typing
:55#
should return the current stepdelay value.
In the next release, v334, this is what the new code looks like
case 56: // Set motorspeed delay for current speed setting
WorkString = receiveString.substring(2, receiveString.length());
ival = WorkString.toInt() & 0x2780; // 10112
myfocuser.stepdelay = (ival < 1000) ? 1000 : ival;
writenow = 1;
break;
Here the new lowest value is 1000 meaning the fastest speed. The 0x2780 (10112) is the slowest speed. The 10112 lands on a 32 bit boundary. Applicable to fastest speed (2)
Speed Medium and Speed Slow is derived from the delay of fast speed; if the fast speed is changed, so will the medium and slow speeds.
medium delay = 2x Fast delay
Slow = 3x fast delay
Regards
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Robert,
I decided yesterday to update the firmware of my focuser from TMC_2225-324 to the 330 release and It works pretty well.
Just two points :
- Why did you change the default serial port speed to 9600 whereas it is set to 57600 for 324 release ? Better reliability of the signal transmission ?
- I found that the motor speed was very slow compared to 324 , even with speed set to 2 (fast). I was able to increase it by reducing the motor speed delay from 6000 to 3000 (serial command :563000#. Is there a mean to increase again a bit the motor speed (by a factor1.5 to 2), knowing that 3000 is a minimum for the motor speed delay ?
Thanks in advance for feedback.
Best regards
Pierre-Yves
Hi Robert,
Regarding the point 1 above, it is a mistake on my part. Please don't consider it. Only the TMC 2225 use a 57600 baud rate. The serial port run at 9600 Bds...
Pierre-Yves.
Hi Pierre-Yves
Sorry for the delay, I am currently preparing tirmware update version 334.
There were changes when the old method of moving the motor was replaced with a timer (Joel Collet) thus the 1s pauses went away, but the delay now is caused by a timer controlled with thois stepdelay value, and I pretty much guessed things on the basic of the controllers I had available at that time.
The timer sets a trigger to occur at the stepdelay rate. and repeats till the focuser arrives at the target position, then the timer is stopped.
One problem is that the user can set a value too low or too high. This issue is fixed in the version 334 which is the next update.
Firmware 324 had this as case 56 which sets the delay speed
case 56: // set motorspeed delay for current speed setting
WorkString = receiveString.substring(2, receiveString.length());
driverboard->setstepdelay(WorkString.toInt());
break;
Note that there is no limit places on the speed delay. The limit comes from windows app. But you can set it lower in firmware. Once you do that, dont try set delay using the Windows app.
The value is in microseconds. So if the value is 4000, then it means the motor will step every 4000us (4ms)
To change to a low value, use the arduino serial monitor.
Send a new value using the serial monitor, lets make it 1000
:561000#
which set a new value to 1000
case 55 gets the current value, so typing
:55#
should return the current stepdelay value.
In the next release, v334, this is what the new code looks like
case 56: // Set motorspeed delay for current speed setting
WorkString = receiveString.substring(2, receiveString.length());
ival = WorkString.toInt() & 0x2780; // 10112
myfocuser.stepdelay = (ival < 1000) ? 1000 : ival;
writenow = 1;
break;
Here the new lowest value is 1000 meaning the fastest speed. The 0x2780 (10112) is the slowest speed. The 10112 lands on a 32 bit boundary. Applicable to fastest speed (2)
Speed Medium and Speed Slow is derived from the delay of fast speed; if the fast speed is changed, so will the medium and slow speeds.
medium delay = 2x Fast delay
Slow = 3x fast delay
Regards
Robert
Hi Robert,
Thanks a lot for your reply. And doesn't matter for the delay, my focuser works very well with the 330 firmware.
In order to speed up the motor, I modified the serialcomms.h as follows :
"WorkString = receiveString.substring(2, receiveString.length());
unsigned long msdelay = (unsigned long)WorkString.toInt();
msdelay = (msdelay < 1000) ? 1000 : msdelay;
msdelay = (msdelay > 8000) ? 6000 : msdelay;
myfocuser.stepdelay = msdelay;
writenow = 1;"
Playing with the :56 serial command, I found that 1500 to 2000 gives the best motor speed for my reduction configuration.
Best regards,
Pierre-Yves