I have a RC filter with a 1k Ohm resistor and 47uF capacitor between the PWM output of an arduino and the input of a motor controller. The problem is that when I connect the output of the RC filter to the controller, the voltage goes down significantly with respect to what is expected (3V instead of 3.8V). However when I disconnect it from the controller the output of the PWM gives the correct open voltage. I am suspecting this is due to the resistor in the RC which is too high but don't exactly understand why so? Thank you very much for your help!
The voltage drop is caused a resistor in your controller which pulls the throttle input to ground, probably to ensure that the motor stays off if the throttle potentiometer becomes disconnected. This load forms a voltage divider with the source (Arduino output + filter), the equivalent circuit looking like this:-
Using a few simple calculations we can estimate the value of the controller's pull-down resistor. Firstly, assuming your Arduino uses an AVR MCU running on 5V its output impedance should be about 30Ω, so the output resistance after the filter is ~1.03kΩ. The voltage drop under load is 3.8V-3V = 0.8V, so Ohm's Law tells us the current is 0.8V/1.03kΩ = 0.777mA, and the input resistance of the controller is 3.0V/0.777mA = 3.9kΩ.
You can reduce the voltage drop by lowering the value of your filter resistor (and increasing capacitance to maintain the same filtering effect) or adding an op amp to buffer the signal and provide a low impedance output. However this may not be necessary because your controller only needs 3.5V for full throttle, and you can compensate for the voltage drop by increasing the maximum PWM ratio (should get close to 4V at 100% PWM).