Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

Sending 17 PWM at once cause Roboard reboot?

Based on DMP's Vortex processor / SoC this board is a full computer capable of running a standard Windows and Linux installation on the backpack of your robot.
4 postsPage 1 of 1
4 postsPage 1 of 1

Sending 17 PWM at once cause Roboard reboot?

Post by Tsai Sung Yang » Thu Jan 14, 2010 9:33 am

Post by Tsai Sung Yang
Thu Jan 14, 2010 9:33 am

Code: Select all
for (int ch = 0; ch < 21; ch++)
{
    if (ch==4||ch==8||ch==9||ch==15) // Unused Channel
        continue;

    rcservo_SendPWMPulses(ch, PWM_period, PWM_duty[ch], count);
}


I sent 17 PWM channels at once to control my KONDO KHR-2HV, but it cause Roboard often automatically reboot. I used 9V 4A adapter.
Is that due to not enough Ampere?
Code: Select all
for (int ch = 0; ch < 21; ch++)
{
    if (ch==4||ch==8||ch==9||ch==15) // Unused Channel
        continue;

    rcservo_SendPWMPulses(ch, PWM_period, PWM_duty[ch], count);
}


I sent 17 PWM channels at once to control my KONDO KHR-2HV, but it cause Roboard often automatically reboot. I used 9V 4A adapter.
Is that due to not enough Ampere?
Tsai Sung Yang
Robot Builder
Robot Builder
Posts: 17
Joined: Wed Nov 11, 2009 2:02 pm
Location: Taiwan

Post by PaulL » Thu Jan 14, 2010 11:46 am

Post by PaulL
Thu Jan 14, 2010 11:46 am

I would guess not enough amperes. To verify, you can try the code without the servos attached. I would think that you need more than 4 amperes to run 17 servos. The roboard uses about 500 mA, so you have 3.5A for servos, that's around 200 mA per servo. You could also try moving fewer servos at one time to test.

You can also try a lower voltage that would induce lower amp draw.
I would guess not enough amperes. To verify, you can try the code without the servos attached. I would think that you need more than 4 amperes to run 17 servos. The roboard uses about 500 mA, so you have 3.5A for servos, that's around 200 mA per servo. You could also try moving fewer servos at one time to test.

You can also try a lower voltage that would induce lower amp draw.
PaulL
Savvy Roboteer
Savvy Roboteer
Posts: 423
Joined: Sat Sep 15, 2007 12:52 am

Post by Tsai Sung Yang » Thu Jan 14, 2010 7:59 pm

Post by Tsai Sung Yang
Thu Jan 14, 2010 7:59 pm

Code: Select all
//you need to change this function for Linux and DOS
private: System::Void wait_ms(unsigned long ms)
{
  unsigned long nowtime = GetTickCount();
  while ((GetTickCount() - nowtime) <= ms);
}

for (int ch = 0; ch < 21; ch++)
{
    if (ch==4||ch==8||ch==9||ch==15) // Unused Channel
        continue;

    rcservo_SendPWMPulses(ch, PWM_period, PWM_duty[ch], count);
    delay_ms(1);
}



This is a little trick I come through with not enough amphere.
Code: Select all
//you need to change this function for Linux and DOS
private: System::Void wait_ms(unsigned long ms)
{
  unsigned long nowtime = GetTickCount();
  while ((GetTickCount() - nowtime) <= ms);
}

for (int ch = 0; ch < 21; ch++)
{
    if (ch==4||ch==8||ch==9||ch==15) // Unused Channel
        continue;

    rcservo_SendPWMPulses(ch, PWM_period, PWM_duty[ch], count);
    delay_ms(1);
}



This is a little trick I come through with not enough amphere.
Tsai Sung Yang
Robot Builder
Robot Builder
Posts: 17
Joined: Wed Nov 11, 2009 2:02 pm
Location: Taiwan

Post by copperclad » Fri Jan 15, 2010 1:59 pm

Post by copperclad
Fri Jan 15, 2010 1:59 pm

Hi Tsai
thanks for posting . cool solution for the servos startup surge :D

.
Hi Tsai
thanks for posting . cool solution for the servos startup surge :D

.
copperclad
Robot Builder
Robot Builder
Posts: 11
Joined: Tue Dec 08, 2009 2:06 pm


4 postsPage 1 of 1
4 postsPage 1 of 1