The motor runs at half the speed

raschemmel:
Your problem is you don't understand the difference between a servo signal (RC pulse) and PWM . The servo signal has a center frequency of 1500uS and only varies */- 500 uS.. You can't send negative PWM values .

  // MAP IT FROM 1000,2000 TO -255,255 (1000,2000 MAY VARY AFTER CALIBRATION)

pwm_M1 = map(chThr,minPulseWidthThr,maxPulseWidthThr,-minMaxPWM,minMaxPWM);




Your PWM range must be 0 to 255. It doesn't accept negative values.

Well, according to this: map() - Arduino Reference

"The function also handles negative numbers well, so that this example
y = map(x, 1, 50, 50, -100);
is also valid and works well."