Greetings drone community!  First time poster here.

 

I've been getting through my first arducopter build and have hit a snag that I'm having problems troubleshooting.  Any advice you experts can give would be very helpful.

 

I'm at the step where I should calibrate my ESCs and hopefully spin them for the first time.  I've got my receiver configured/calibrated and everything connected.  Unfortunately after ESC calibration only two of the motors started following motor commands.  I thought it was a problem with the ESC calibration so I calibrated the remaining two ESCs manually and tried again.  Still only two motors spinning.  I then swapped which ESC was controlling what motor and what output pin on the APM was controlling each ESC.  What I found was this:

Every ESC was able to power every motor, but each setup always yielded two motors that would not respond.  I then determined that the output pins 3 and 4 on the APM were always putting out a meager .040 V as opposed to the .23 V of pins 1 and 2.  This made sense because the motors that were not working were "beeping" as they would if the ESC was unplugged. 

 

So the question becomes "Why would two pins on the APM always put out the same small voltage, regardless of what the board is telling them to do?"

 

In the CLI I reset the board to factory settings a proceeded with the setup though CLI.  I then ran the "motors" command which should run each motor sequentially.  Still, the pins 3 and 4 remain at 0.040 volts where they other two oscillated from a baseline of ~.23 up to ~.26.  It seems that these pins have stopped working with the board. 

 

I have also tested for shorts on all input and output pins....looks good.

 

Does anyone have any tips for me?

 

Thanks!

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Hey, I am certain that I have this same problem considering that my 7 output (tricopter assigned servo output) has been blown (seems I had a bad crash and blew my servo and APM #7 output). is there anyway that you can write me a piece of code and some instructions on how to successfully upload it to my APM 2.5 switching #7 to #8 for a standard tricopter leaving all of the other outputs the same?? I'd be happy to pay you or anyone some money because this will hopefully keep me from having to purchase another unit. been working on this for weeks trying to decipher the issue and I think this is it. I'd appreciate anyones help in getting my good-for-nothing tricopter in the air! S-o-S!

  • Solved (WORK AROUND)

     

    After writing my own testing program I find out that all output pins work expect 3 and 4, so I am pretty much sure now that this is a HW/welding problem.

     

    I decided to use ports 5 and 6 instead of them; to do so you will have to modify your ArduCopter code, recompile it and then upload it again to your APM.

    Steps to changes the code are as follows:

    1. In "libraries>APM_RC" open "APM_RC.cpp"

    2. Delete or comment the following lines:

         case 0:  OCR5B=pwm; break;  //ch0
         case 1:  OCR5C=pwm; break;  //ch1
         case 2:  OCR1B=pwm; break;  //ch2
         case 3:  OCR1C=pwm; break;  //ch3
         case 4:  OCR4C=pwm; break;  //ch4
         case 5:  OCR4B=pwm; break;  //ch5
         case 6:  OCR3C=pwm; break;  //ch6
         case 7:  OCR3B=pwm; break;  //ch7
         case 8:  OCR5A=pwm; break;  //ch8,  PL3
         case 9:  OCR1A=pwm; break;  //ch9,  PB5
         case 10: OCR3A=pwm; break;  //ch10, PE3

    3. replace the deleted chunk with the following lines:

        case 0:  OCR5B=pwm; break;  //ch0
        case 1:  OCR5C=pwm; break;  //ch1
        case 2:  OCR4C=pwm; break;  //ch4
        case 3:  OCR4B=pwm; break;  //ch5
        case 4:  OCR1B=pwm; break;  //ch2
        case 5:  OCR1C=pwm; break;  //ch3
        case 6:  OCR3C=pwm; break;  //ch6
        case 7:  OCR3B=pwm; break;  //ch7
        case 8:  OCR5A=pwm; break;  //ch8,  PL3
        case 9:  OCR1A=pwm; break;  //ch9,  PB5
        case 10: OCR3A=pwm; break;  //ch10, PE3

     

    4. Save the file

    5. Open the project in the arduino IDE and compile it

    6. Upload the code to your APM

    7. Connect the motors in pins 3 and 4 to pins 5 and 6.

     

    that's it :)

     

  • Matt,

     

    Just completed assembling my arducopter and going through the motion of flying it in stable mode ... anyways back to your problem, I did have a similar situation before! I don't know exactly what the problem was but it got something to do with communication with the radio ... so what I did was go thru the esc calibration once again making sure the description of the three lights lighting in succession as soon as the calibration process started and listening to the two succession of two beeps at max throttle and a single beep after putting the throttle stick to minimum.

     

    After doing that, I made sure that the right stick on the transmitter commands the right channel, I removed the servo cables going from the receiver to the input on the APM. I then plugged a servo motor (provided a stand alone 5v power) a channel at a time beginning with the receivers channel one then through 4.

     

    The exercise confirmed proper communication with the receiver and transmitter. I then rewired the receiver cables to the input on the APM making sure I plugged the right receiver channel to the APM channel.

     

    For some reason, the exercise resolved my two motor only turning. Not sure if it will help but certainly is worth a shot ...

     

    cheers.

  • 3D Robotics

    First do a CLI reset/erase and then do your radio calibration again. If that doesn't solve it, doublecheck your soldering.

     

    BTW, you can't test a RC (PWM) pin with a voltmeter (I assume you were testing the signal pin, not +/-). PWM is a square wave and the average voltage over any period of time is not meaningful. The only way you can test it is with a logic analyzer or oscilloscope.

This reply was deleted.

Activity