ELEV-8 v2 with v3 flight controller, motors run backwards now, but props are correct. Ok?

lorddamaxlorddamax Posts: 5
edited 2016-04-25 - 04:09:02 in Microcontrollers
I just upgraded my v2 to the v3 controller. Seems the v3 controller wants the motors to turn the opposite direction the v2 did. WSo all my motors are wrong, but, the propellers are all correct for that coinfiguration.

Is this an actual problem? Or is it ok since the props match?

Main reason I'm asking is the v2 is, um, let's just say it's ALMOST worth trashing and buying a new one, instead of taking out nearly every screw in the thing just to get to the wires tied up in the belly of the thing. I'm quite advanced with arduino, microprocessors, programming, etc... is there a change I can make in the firmware to compensate? Or do I have to spend half a day cursing at it? :)

Needless to say, because of a broken screw, then a bent arm, and then a bad ESC, I've already had to do this 3 times post-assembly. Doing it a 4th is, shall we say, undesirable? :)

Comments

  • Hmm. Just as I posted this I realized that the fix is merely turn the FC 90 degrees, and re-number the motors. (Plug 4 into 3, 3 into 2, 2 into 1, and 1 into 4). Well, and swap the prop colors so the 'front' is clear. My original blue arms have already been replaced and the shiny stickers are long gone anyway.

    I was looking at the thing in a somewhat dark room and realized hey, wait, these are actually correct. In the poor light I didnt realize I had turned it 90 degrees, the blue and black props looked the same.

    Hmm. Nifty. That saves about 2 hours, 4 beers, and an immeasurable amount of sanity.
  • It can be easily changed in the firmware, source if you need to, but I was going to suggest the 90-degree turn as well. I think the Hoverfly board is opposite to just about every other flight controller out there, and the V3 board uses the more common config.

    If you do want to try it in the firmware, there's a set of statements around the middle of elev8-main.cpp that look like this:
        //X configuration
        Motor[OUT_FL] = ThroOut + (((+PitchOut + RollOut - YawOut) * ThroMix) >> 7);
        Motor[OUT_FR] = ThroOut + (((+PitchOut - RollOut + YawOut) * ThroMix) >> 7);
        Motor[OUT_BL] = ThroOut + (((-PitchOut + RollOut + YawOut) * ThroMix) >> 7);
        Motor[OUT_BR] = ThroOut + (((-PitchOut - RollOut - YawOut) * ThroMix) >> 7);
    

    If you want to use reversed props, change the signs of the YawOut values to this:
        //X configuration
        Motor[OUT_FL] = ThroOut + (((+PitchOut + RollOut + YawOut) * ThroMix) >> 7);
        Motor[OUT_FR] = ThroOut + (((+PitchOut - RollOut - YawOut) * ThroMix) >> 7);
        Motor[OUT_BL] = ThroOut + (((-PitchOut + RollOut - YawOut) * ThroMix) >> 7);
        Motor[OUT_BR] = ThroOut + (((-PitchOut - RollOut + YawOut) * ThroMix) >> 7);
    

    That makes the opposite motors speed up / slow down in response to yaw control. Do note that I haven't *tested* this, so if you decide to try it, make sure it's responding the way you think it should before you put it more than a few inches into the air.
  • I swapped two wires on each ESC so everything is straight. If you "fix" it in firmware, you're going to have to remember to do it every time Jason published a newer version.
  • Nah, I just did the 90 degree turn, so much easier. I'm sure I'll tweak the hell out of the firmware eventually (my 3d printer's firmware is so tweaked, I'm dreading a major upgrade I need to actually use!) but for now, the 90 degree turn is so much easier.

    Thanks for the details on the firmware. Any references on tweaking later on are invaluable time savers.
Sign In or Register to comment.