softwareserial What timer? is it using i can't seem to find this info

I am trying to figure out what timer the softwareserial uses i have been looking for a while now and i can't find it. I am trying to drive 2 servo independently and i have to use the softwareserial library to get some serial data from a reciever.

But i am have a lot conflict and i think it's because the they are using the same timer


Have you tried using different pins for the servos. Each timer is related to specific pins. Use a different set of pins, and the problem should go away.

Are you using SoftwareSerial or NewSoftSerial. If it is SoftwareSerial, why? That class is obsolete, and has been for years.

Pretty sure they both use Timer 2, you can use the servo detach command while you are receiving data - in some applications this is acceptable and will mean stop you having any conflicts while data is being received/transmitted.

It doesn't matter if i use newsoftserial or software serial i still have to detach the servo in order to send the data. I will switch over to newsoftserial sometime later.

Are you sure servo uses Timer2. Because i am using a library called Timer1 to generate PWM on a PIN and it uses pin 9 and 10 to generate the PWM and nothing else.

For servo library it says Pin 9 and 10 generate PWM regardless if you connect them. So that means they are both using the same Timer which is timer1.

Timer1 library servolibrary

Just for some background I am trying to generate a PWM on a pin which controls speed of a robot using TIMER1 library for this. Then i am using a Servolib to move a SERVO with a ultrasonic device on it(SRF01). Then i am using softwareserial/newsoftserial (don't care which one at this time) to get data off ultrasonic device.

I have tested each code independently everything works fine but as soon as i put it together everything goes wrong. NOTE I DETACH THE SERVO EVERY TIME I FINISH USING but i still get problems.

Are you sure servo uses Timer2



Exactly what do you get problems with?

I changed up the entire code. Alot of things were going wrong and i wasn't able to debug each part. What i am doing currently is not using a PWM to drive the robot. I am using a simpler code which just set a pin high or low to drive the robot. The reason i am doing this is because i want to debug other parts with out worrying if the Servo timer is interfering with other things.

I was also having a power problem. So honestly i am not even sure why the first set of code was not working anymore because i am not using it.

When i finish debugging the logical algorithm to drive the robot i will try and control the speed with PWM and see if it works.