Announcement

Collapse
No announcement yet.

Motors on second expansion hub run slow. Why?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Motors on second expansion hub run slow. Why?

    We just added a second expansion hub to our setup.

    We notice that the drive motors connected to the second hub run slow.
    Do you know how to resolve this problem?

    We could connect all 4 drive motors to the hub#1 but the cables are too short (yes we could extend them, but....)

    Config:
    We have the 2 right side drive motors (right front-back) going to hub#1
    We have the 2 left side drive motors (left front-back) going to hub#2
    Battery is connected directly to hub#1

    I wonder if the problem is because the battery power to hub#2 is not coming straight from the battery, it is daisy-chained through the hub#1

    Please help! Any tips are highly appreciated.

    Thanks
    Raj

    Mentor- FTC 15167
    -Raj
    Mentor, Robo Troopers
    FTC Team 15167

  • #2
    We did a little test which ruled out the battery connection speculation - "I wonder if the problem is because the battery power to hub#2 is not coming straight from the battery, it is daisy-chained through the hub#1"

    I connected the battery to hub#2. Still the motors connected to hub#2 run slow. I guess there is something different in electronics between the hubs which cause this. I know I updated the firmware yesterday using the phone and the hubs daisy-chained. So both should have the same firmware.

    Now checking for newer firmware on Rev Robotics site...
    -Raj
    Mentor, Robo Troopers
    FTC Team 15167

    Comment


    • #3
      Have you checked that all 4 motors are the same? My team is pretty good at throwing motors in bins at random, then expecting when they pull a motor the correct one is in the correct bin. They have had to troubleshoot why are the motors going at different speeds for this reason.

      Are all motors set to the same mode? Run using encoders and Run without encoders will result in different speeds.

      If using Run with encoders, are encoder wires plugged in? Non polarized plugs right way around? In correct motor port? No encoder counts and motors will be running at full speed. My team when troubleshooting usually push the joysticks all the way so they don't see that the motors running faster don't run slower with less joystick, they just see the motors running at different speeds.

      When the Neverest motors get old the encoders can become intermittent, especially under load. Our arm was acting crazy, looking at the encoder counts that we displayed on the driver station showed non repeatable positions and counts.

      Config file? I'm pretty sure if Neverest motors are set to the original Tetrix motor setting they will run at different speeds, assuming run using encoders.



      Other coding errors?

      Another test could be to temporarily put extension wires on the motors and see if they all go at the same speed on the same hub. Or swap the pairs, does the speed follow the hub or the motor?

      Write some test code where the motor turns just slowly enough that you can count the rotations. Get a single separate test motor and put a flag on it. Time how long it takes to run XX rotations. Try on different ports on different hubs. This can help determine if it is a hub, or port, or motor, or software problem.



      Comment


      • #4
        Thank you very much for so many tips. We will go through the steps in the next few hours....
        Motors are identical, unless they made some error in shipment (we just got these 4 motors from goBilda, all planetary gear ones). We will also triple check the ports...although we did double check the ports yesterday.

        As for programming issues I will forward this to our programmer.......


        They are not using run using encoders for tele-op. Should we do that?

        They are also reporting a problem where set motor power = 0 is not working. I mean they assume that the motor should brake (resist external movement) if set = 0 I think that will happen only if it is in the run with encoder mode but they are running without encoders, for teleop

        Thanks!


        Originally posted by 3805Mentor View Post
        Have you checked that all 4 motors are the same? My team is pretty good at throwing motors in bins at random, then expecting when they pull a motor the correct one is in the correct bin. They have had to troubleshoot why are the motors going at different speeds for this reason.

        Are all motors set to the same mode? Run using encoders and Run without encoders will result in different speeds.

        If using Run with encoders, are encoder wires plugged in? Non polarized plugs right way around? In correct motor port? No encoder counts and motors will be running at full speed. My team when troubleshooting usually push the joysticks all the way so they don't see that the motors running faster don't run slower with less joystick, they just see the motors running at different speeds.

        When the Neverest motors get old the encoders can become intermittent, especially under load. Our arm was acting crazy, looking at the encoder counts that we displayed on the driver station showed non repeatable positions and counts.

        Config file? I'm pretty sure if Neverest motors are set to the original Tetrix motor setting they will run at different speeds, assuming run using encoders.



        Other coding errors?

        Another test could be to temporarily put extension wires on the motors and see if they all go at the same speed on the same hub. Or swap the pairs, does the speed follow the hub or the motor?

        Write some test code where the motor turns just slowly enough that you can count the rotations. Get a single separate test motor and put a flag on it. Time how long it takes to run XX rotations. Try on different ports on different hubs. This can help determine if it is a hub, or port, or motor, or software problem.


        Last edited by FTC15167; 12-28-2018, 11:04 AM. Reason: corrected typos
        -Raj
        Mentor, Robo Troopers
        FTC Team 15167

        Comment


        • #5
          Take a second to remove your daisy chain and verify both hubs were updated. We always update our hubs individually and then verify that the update went through before reconnecting them.

          Comment


          • #6
            Originally posted by FTC15167 View Post
            Thank you very much for so many tips. We will go through the steps in the next few hours....
            Motors are identical, unless they made some error in shipment (we just got these 4 motors from goBilda, all planetary gear ones). We will also triple check the ports...although we did double check the ports yesterday.

            As for programming issues I will forward this to our programmer.......


            They are not using run using encoders for tele-op. Should we do that?

            They are also reporting a problem where set motor power = 0 is not working. I mean they assume that the motor should brake (resist external movement) if set = 0 I think that will happen only if it is in the run with encoder mode but they are running without encoders, for teleop

            Thanks!


            If you are not using run using encoders, then anything pertaining to encoders is not an issue (which was most of my post).
            My team typically does not use run using encoders for drive wheels in teleop. The max speed in run using encoders is about 80% of available speed. This is to have some overhead to increase power to maintain the set speed with higher loads. On the other hand run using encoders should make all the motors turn at the same speed, unless loaded to the point where the controller is set at max power and the motor still cannot maintain the set speed.

            So far with REV our wheel motors have been on one hub so we don't have experience there. I don't remember there being an issue with the Modern Robotics motor controllers which only have two ports so different wheels were on different controllers having different speeds with different controllers.

            When setpower is set to zero and you are in zero power mode coast the motor wires are disconnected. In brake mode the motor wires are shorted together. The spinning motor now creates a magnetic field that opposes the spinning of the motor slowing it more rapidly. No or very slow motion creates no or insignificant field, producing no resistance to turning.
            The only way to hold a motor in a set position is with Run to Position Run mode.

            Another thought, with run without encoders motor speed is dependent on load. Does one side have a reason to be loaded heavier than the other?
            Last edited by 3805Mentor; 12-28-2018, 11:49 AM.

            Comment


            • #7
              One that bit us...
              Make sure that the motors on the 2nd REV hub have the same DC motor type selected in the config. If they aren't the same, they will be using different PID values, and setPower will have different effect.

              Comment


              • #8
                We found the problem!
                The firmware on the hubs were different versions.
                Interestingly, we did update the firmware using the phones and it was said to be successful. However the hubs were daisy chained at that time (the phone software did say that it will update firmware on all hubs attached to it, so we assumed all is well)

                Anyway, we connected the hubs to a PC, installed REV's software on it and did the firmware update that way.
                After the firmware update, the motors started running at the same speed.

                Thanks to everyone for helping us with their valuable tips!
                -Raj
                Mentor, Robo Troopers
                FTC Team 15167

                Comment


                • #9
                  Thank you! This was it.........unfortunately I just read your post.

                  Originally posted by mjurisch2017 View Post
                  Take a second to remove your daisy chain and verify both hubs were updated. We always update our hubs individually and then verify that the update went through before reconnecting them.
                  -Raj
                  Mentor, Robo Troopers
                  FTC Team 15167

                  Comment


                  • #10
                    Thanks again for the tips.

                    Our programmer wants the robot to be able to do diagonally, For that he says 2 diagonally opposite wheels have to brake (not move). Hence the conversation about set power = 0
                    Looks like he has resolved the problem by giving a tiny bit of opposite power to those wheels.


                    Originally posted by 3805Mentor View Post

                    If you are not using run using encoders, then anything pertaining to encoders is not an issue (which was most of my post).
                    My team typically does not use run using encoders for drive wheels in teleop. The max speed in run using encoders is about 80% of available speed. This is to have some overhead to increase power to maintain the set speed with higher loads. On the other hand run using encoders should make all the motors turn at the same speed, unless loaded to the point where the controller is set at max power and the motor still cannot maintain the set speed.

                    So far with REV our wheel motors have been on one hub so we don't have experience there. I don't remember there being an issue with the Modern Robotics motor controllers which only have two ports so different wheels were on different controllers having different speeds with different controllers.

                    When setpower is set to zero and you are in zero power mode coast the motor wires are disconnected. In brake mode the motor wires are shorted together. The spinning motor now creates a magnetic field that opposes the spinning of the motor slowing it more rapidly. No or very slow motion creates no or insignificant field, producing no resistance to turning.
                    The only way to hold a motor in a set position is with Run to Position Run mode.

                    Another thought, with run without encoders motor speed is dependent on load. Does one side have a reason to be loaded heavier than the other?
                    -Raj
                    Mentor, Robo Troopers
                    FTC Team 15167

                    Comment

                    Working...
                    X