R/C servo electrical noise issue

steliosm

Senior Member
Hello all.
I must be having electrical noise coming from the R/C servo that I'm using in my circuit. Of course, I didn't follow up the recommendation in the manual to put the servo on a different power supply, since I hate the idea to have 2 power supplies for a simple project.

I'm receiving commands through a 433MHz Rx module and I'm moving a servo. The receiver gets a specific ID and 2 more values:

.....
serin 6, n600, ("TEST"), b1, b2
sertxd (b1, b2, 13, 10)
servo 7, b2
.....

The last value (b2) is always changed for some reason. If I comment out the servo command everything is fine, the b2 shows the correct values. I checked that using either sertxd and debug.

I'm guessing it might have to do with electrical noise coming from the servo. The PicAxe 18x doesn't reset or anything.

Any ideas? Should I try to mount capacitors across the servo's power terminals?
 

Wrenow

Senior Member
If you will do a little search on serial and servos, I believe you will find that the Servo command and th serial command use the same timer, and are therefore k9ind of mutually exclusive. I seem to recall this being covered in the manual as well. If you want to do serial control of the servo, you probably want a dedicated serail servo controller like the inexpensive 8 servo ones from Pololu.com or the really nice 21 servo model from Rev-Ed.

Good luck,

Wreno
 

hippy

Ex-Staff (retired)
Also try with the servo disconnected and the SERVO command removed - Are you sure you're even receiving the right b2 value in those circumstances ?

You're using 600 baud, and receiving six bytes of data; that's going to take 100mS ( plus another 8mS for the SERTXD ) and that will likely screw any kind of use with a servo.
 

steliosm

Senior Member
Wreno, yes, I saw that in the maunal, and I though that using the sertxd command first and then the servo command might work. I'll might use a pause between the sertxd and the servo command.
Hippy, the sertxd command is there just for debug persposes. It will be removed when the project is finished. When the servo command is removed everything runs OK, b2 values are correct. I'll have to check the circuit with the sertxd command removed to be sure.
 

husslemk4

New Member
Hi there just to jump in on this topic. Reading the data sheet for the 21channel servo controller, does this imply that the i2c bus can be used with the servo command without stopping the 20ms refresh rate? i.e. I can make my own servo controller using a 28X1 and the i2c protocol?

Thanks very much
 

Wrenow

Senior Member
Methinks you will find the answer to be "no," though I would love to be wrong.
I also believe (and I may be wrong here, too), that the controller in the 21 channel servo controller is a dedicated PIC, not a Picaxe.

Cheers,

Wreno
 

hippy

Ex-Staff (retired)
I'd guess "yes" but haven't tried it. There may be some jitter caused but both I2C as a slave and Servo running in the background, the foreground task would simply copy last written data from the I2C buffer ( scratchpad ? ) and issue the relevant SERVOPOS command.

The 21 servo controller is a PIC rather than PICAXE ( that's a lot of channels to control simultaneously ), but a 28X1 would I'd expect work as an 8-channel I2C-Servo-Slave.

Time for someone to get experimenting ( not me ).
 
Top