hi
just an FYI: did you notice that the servo library will cut off the range even if you force the writeMircoseconds? it will not do a full 500 to 2500 range.
The normal range for a servo signal is between 1000 and 2000 microseconds so why are you surprised that it will not do 500 to 2500 ?
i have some really expensive special RC high power servos where the manufacturer tells me to use 500-2500 for the entire range which I really need. I sent them back already thinking there was a problem. I expect the library to do what you tell it so if I say writeMicroseconds 500 I want 500 not some cutoff signal. same at 2500. found out the servo even goes to 2600. I just use my own signal generator script then that works.
I expect the library to do what it is designed to do
What have you got the max and min pulse width values set to in the attach() for the servo
Forego a servo library.
From Servo.h
attach ( pin, min, max ) - Attaches to a pin setting min and max values in microseconds
default min is 544, max is 2400
Try
myservo.attach(servoPin, 500, 2600);
Leo..
Ok tried it. still doesnt work correctly
You can try editing the servo.h file with notepad++
On my win11 machine it's in Program Files (x86)/Arduino/libraries/Servo/scr
#define MIN_PULSE_WIDTH 544 // the shortest pulse sent to a servo
#define MAX_PULSE_WIDTH 2400 // the longest pulse sent to a servo
#define DEFAULT_PULSE_WIDTH 1500 // default pulse width when servo is attached
#define REFRESH_INTERVAL 20000 // minimum time to refresh servos in microseconds
Leo..