Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. VOXL Compute & Autopilot
  3. VOXL 2
  4. (Platform 1.0.0) Bug in the most recent VOXL2 ESC Firmware (Random motors reverse directions each arm)

(Platform 1.0.0) Bug in the most recent VOXL2 ESC Firmware (Random motors reverse directions each arm)

Scheduled Pinned Locked Moved VOXL 2
35 Posts 4 Posters 8.8k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • John Nomikos 0J Offline
    John Nomikos 0J Offline
    John Nomikos 0
    Regular
    wrote on last edited by John Nomikos 0
    #1

    Good afternoon,

    Recently, I updated the ESC firmware on one of our drones to the most recent firmware. And I gave the ESC generic params for the specific type of ESC that I am using (m0117).

    I noticed a peculiar issue when arming the drone. Each arm, a random motor would be spinning much slower than the rest. Upon closer inspection, whichever motor affected by this would actually reverse direction from what it was set to.

    Every motor did this at least once. It feels random which motors are affected. As an example,

    Arm #1: every motor spins correctly except bottom right which reversed direction and spins slower.
    
    Arm # 2: everything spinned correctly.
    
    Arm #3: top left motor reversed direction and everything else spinned correctly.
    
    Arm #4: bottom left and bottom right reversed direction and everything else spinned correctly.
    

    We saw this issue on two separate drones with different ESC parameters and most recent ESC firmware. I did not see this issue in the earlier ESC firmware.

    I recorded a video of one of our motors. At the end of the video it shows the issue.

    Here's a drive link to the video: https://drive.google.com/file/d/16pHMBFjkoxJK90SuMcxZnteA9qsAoME4/view?usp=sharing

    How to recreate the problem

    Step 1: Flash platform 1.0.0 on your VOXL2
    Step 2: Reboot drone. Update ESC firmware by doing voxl-esc update-firmware command
    Step 3: Load ESC params, choose whatever works best for you.
    Step 4: Do whatever you need to do to setup your drone so that you can arm it on QGC.
    Step 5: Arm drone on QGC. You may need to disarm and arm a few times to see the issue.

    Please let me know if you have any further questions.

    Thank you,

    John Nomikos.

    Alex KushleyevA 1 Reply Last reply
    0
    • John Nomikos 0J John Nomikos 0

      Good afternoon,

      Recently, I updated the ESC firmware on one of our drones to the most recent firmware. And I gave the ESC generic params for the specific type of ESC that I am using (m0117).

      I noticed a peculiar issue when arming the drone. Each arm, a random motor would be spinning much slower than the rest. Upon closer inspection, whichever motor affected by this would actually reverse direction from what it was set to.

      Every motor did this at least once. It feels random which motors are affected. As an example,

      Arm #1: every motor spins correctly except bottom right which reversed direction and spins slower.
      
      Arm # 2: everything spinned correctly.
      
      Arm #3: top left motor reversed direction and everything else spinned correctly.
      
      Arm #4: bottom left and bottom right reversed direction and everything else spinned correctly.
      

      We saw this issue on two separate drones with different ESC parameters and most recent ESC firmware. I did not see this issue in the earlier ESC firmware.

      I recorded a video of one of our motors. At the end of the video it shows the issue.

      Here's a drive link to the video: https://drive.google.com/file/d/16pHMBFjkoxJK90SuMcxZnteA9qsAoME4/view?usp=sharing

      How to recreate the problem

      Step 1: Flash platform 1.0.0 on your VOXL2
      Step 2: Reboot drone. Update ESC firmware by doing voxl-esc update-firmware command
      Step 3: Load ESC params, choose whatever works best for you.
      Step 4: Do whatever you need to do to setup your drone so that you can arm it on QGC.
      Step 5: Arm drone on QGC. You may need to disarm and arm a few times to see the issue.

      Please let me know if you have any further questions.

      Thank you,

      John Nomikos.

      Alex KushleyevA Offline
      Alex KushleyevA Offline
      Alex Kushleyev
      ModalAI Team
      wrote on last edited by
      #2

      @John-Nomikos-0 ,

      In order to resolve your issue, I highly recommend to switch the ESC params to use our new smooth spin-up procedure. You can see how to enable it in the following esc param file (note that your motor control params are different, so don't just take this whole parameter file and use it):

      https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/master/voxl-esc-params/Sentinel_V1/Sentinel_V1.xml?ref_type=heads#L69

      You will need to enter the kV value of the motor (motor_kv) and i would recommend updating the spinup_rpm_target to the rpm that motor would normally spin at like 10% power (usually in the range of 1000-3000 rpm). You can shorten the spinup time (spinup_time_ms) as 1500ms (1.5 seconds) was chosen in this case for a relatively large propeller with a lot of inertia. You can use 500ms as a good starting point for small motors/props. Having long spinup time will not hurt anything though.

      If you see that during the smooth spinup, the motor seems to "slip" and stall, then increase the spinup_power slightly, by 10 units or so. This "slip" can happen if the spin-up power is very low and there is just not enough force to keep the motor spinning during the initial phase.

      Also, please update min_num_cross_for_closed_loop to 5 as in this example. protection_stall_check_rpm should be set to less than minimum nominal RPM. So If the lowest normal RPM that the motor + propeller can spin (say at 7-10% power) is 2000rpm, I would set the stall check to 1000 or 1250 to prevent false triggers. This stall detection will protect the motor from burning out if it gets physically stuck due to some external event (hits something or gets tangled).

      Please try this out and let us know if it resolves your problem!

      Alex

      John Nomikos 0J 2 Replies Last reply
      1
      • Alex KushleyevA Alex Kushleyev

        @John-Nomikos-0 ,

        In order to resolve your issue, I highly recommend to switch the ESC params to use our new smooth spin-up procedure. You can see how to enable it in the following esc param file (note that your motor control params are different, so don't just take this whole parameter file and use it):

        https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/master/voxl-esc-params/Sentinel_V1/Sentinel_V1.xml?ref_type=heads#L69

        You will need to enter the kV value of the motor (motor_kv) and i would recommend updating the spinup_rpm_target to the rpm that motor would normally spin at like 10% power (usually in the range of 1000-3000 rpm). You can shorten the spinup time (spinup_time_ms) as 1500ms (1.5 seconds) was chosen in this case for a relatively large propeller with a lot of inertia. You can use 500ms as a good starting point for small motors/props. Having long spinup time will not hurt anything though.

        If you see that during the smooth spinup, the motor seems to "slip" and stall, then increase the spinup_power slightly, by 10 units or so. This "slip" can happen if the spin-up power is very low and there is just not enough force to keep the motor spinning during the initial phase.

        Also, please update min_num_cross_for_closed_loop to 5 as in this example. protection_stall_check_rpm should be set to less than minimum nominal RPM. So If the lowest normal RPM that the motor + propeller can spin (say at 7-10% power) is 2000rpm, I would set the stall check to 1000 or 1250 to prevent false triggers. This stall detection will protect the motor from burning out if it gets physically stuck due to some external event (hits something or gets tangled).

        Please try this out and let us know if it resolves your problem!

        Alex

        John Nomikos 0J Offline
        John Nomikos 0J Offline
        John Nomikos 0
        Regular
        wrote on last edited by
        #3

        @Alex-Kushleyev Are some of these settings changeable via px4 params? Like motor_kv

        I am curious how these esc settings actually work. Do they overwrite px4 parameters?

        Alex KushleyevA 1 Reply Last reply
        0
        • John Nomikos 0J John Nomikos 0

          @Alex-Kushleyev Are some of these settings changeable via px4 params? Like motor_kv

          I am curious how these esc settings actually work. Do they overwrite px4 parameters?

          Alex KushleyevA Offline
          Alex KushleyevA Offline
          Alex Kushleyev
          ModalAI Team
          wrote on last edited by
          #4

          @John-Nomikos-0 , the ESC params / settings are completely separate from PX4. PX4 cannot modify the ESC params - all the ESC configuration is done through our tool voxl-esc. You should make sure the correct ESC params are installed before starting PX4.

          PX4 just has the interface to control the ESC by sending the RPM commands to spin the motors.

          Alex

          1 Reply Last reply
          1
          • Alex KushleyevA Alex Kushleyev

            @John-Nomikos-0 ,

            In order to resolve your issue, I highly recommend to switch the ESC params to use our new smooth spin-up procedure. You can see how to enable it in the following esc param file (note that your motor control params are different, so don't just take this whole parameter file and use it):

            https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/master/voxl-esc-params/Sentinel_V1/Sentinel_V1.xml?ref_type=heads#L69

            You will need to enter the kV value of the motor (motor_kv) and i would recommend updating the spinup_rpm_target to the rpm that motor would normally spin at like 10% power (usually in the range of 1000-3000 rpm). You can shorten the spinup time (spinup_time_ms) as 1500ms (1.5 seconds) was chosen in this case for a relatively large propeller with a lot of inertia. You can use 500ms as a good starting point for small motors/props. Having long spinup time will not hurt anything though.

            If you see that during the smooth spinup, the motor seems to "slip" and stall, then increase the spinup_power slightly, by 10 units or so. This "slip" can happen if the spin-up power is very low and there is just not enough force to keep the motor spinning during the initial phase.

            Also, please update min_num_cross_for_closed_loop to 5 as in this example. protection_stall_check_rpm should be set to less than minimum nominal RPM. So If the lowest normal RPM that the motor + propeller can spin (say at 7-10% power) is 2000rpm, I would set the stall check to 1000 or 1250 to prevent false triggers. This stall detection will protect the motor from burning out if it gets physically stuck due to some external event (hits something or gets tangled).

            Please try this out and let us know if it resolves your problem!

            Alex

            John Nomikos 0J Offline
            John Nomikos 0J Offline
            John Nomikos 0
            Regular
            wrote on last edited by
            #5

            @Alex-Kushleyev

            It worked! Thank you a lot. I did everything that you recommended

            I had to up the spinup_power by a lot. It was originally at around 70. I stopped seeing issues at 130.

            Thanks for the help!

            Alex KushleyevA 1 Reply Last reply
            0
            • John Nomikos 0J John Nomikos 0

              @Alex-Kushleyev

              It worked! Thank you a lot. I did everything that you recommended

              I had to up the spinup_power by a lot. It was originally at around 70. I stopped seeing issues at 130.

              Thanks for the help!

              Alex KushleyevA Offline
              Alex KushleyevA Offline
              Alex Kushleyev
              ModalAI Team
              wrote on last edited by
              #6

              @John-Nomikos-0

              That is great to hear!

              130 spinup power sounds a little bit on the high side (however, I am not saying it is wrong). Are you able to share the part of the params that you updated, perhaps i can spot something that might be off or recommend a a change? I typically use spinup power of about 100 or less. Basically, if you are able to share the following params (this example is from the Sentinel V1 ESC params.

              Another test that I typically do is check the current that the motor draws during the the spin-up phase. There are a few ways to do that, including voxl-esc-spin.py command that will print out the current drawn by each spinning motor (or just one, if you are spinning only one), including the current drawn during the start-up phase.

               <param name="spinup_type"         value="1"/>      <!-- 0: traditional, 1: sinusoidal -->
                  <param name="spinup_power"        value="80"/>     <!-- power used to during spin-up procedure -->
                  <param name="latch_power"         value="70"/>     <!-- power used during latching stage of spin-up (out of 999)-->
                  <param name="spinup_power_ramp"   value="8"/>      <!-- it will take ( 4096 / (spinup_power_ramp*10000) ) seconds to ramp sinusoidal start-up power from 0 to spinup_power -->
                  <param name="spinup_rpm_target"   value="1500"/>   <!-- Desired RPM at the end of the sinusoidal spin-up procedure -->
                  <param name="spinup_time_ms"      value="1500"/>   <!-- Duration of the sinusoidal spin-up procedure -->
                  <param name="spinup_bemf_comp"    value="1"/>      <!-- 0: disable, 1:enable back-emf compensation in sinusoidal spin-up procedure -->
                  <param name="motor_kv"            value="880"/>    <!-- kV value of the motor. used in back-emf compensation during spin-up -->
                  
                  <param name="min_num_cross_for_closed_loop" value="5"/>  <!-- exit latching mode of fixed power after this number of zero crossings -->
                  <param name="protection_stall_check_rpm" value="750"/> <!-- if motor spins below this RPM, stall check will trigger and stop / restart the motor -->
              
              
              John Nomikos 0J 1 Reply Last reply
              0
              • Alex KushleyevA Alex Kushleyev

                @John-Nomikos-0

                That is great to hear!

                130 spinup power sounds a little bit on the high side (however, I am not saying it is wrong). Are you able to share the part of the params that you updated, perhaps i can spot something that might be off or recommend a a change? I typically use spinup power of about 100 or less. Basically, if you are able to share the following params (this example is from the Sentinel V1 ESC params.

                Another test that I typically do is check the current that the motor draws during the the spin-up phase. There are a few ways to do that, including voxl-esc-spin.py command that will print out the current drawn by each spinning motor (or just one, if you are spinning only one), including the current drawn during the start-up phase.

                 <param name="spinup_type"         value="1"/>      <!-- 0: traditional, 1: sinusoidal -->
                    <param name="spinup_power"        value="80"/>     <!-- power used to during spin-up procedure -->
                    <param name="latch_power"         value="70"/>     <!-- power used during latching stage of spin-up (out of 999)-->
                    <param name="spinup_power_ramp"   value="8"/>      <!-- it will take ( 4096 / (spinup_power_ramp*10000) ) seconds to ramp sinusoidal start-up power from 0 to spinup_power -->
                    <param name="spinup_rpm_target"   value="1500"/>   <!-- Desired RPM at the end of the sinusoidal spin-up procedure -->
                    <param name="spinup_time_ms"      value="1500"/>   <!-- Duration of the sinusoidal spin-up procedure -->
                    <param name="spinup_bemf_comp"    value="1"/>      <!-- 0: disable, 1:enable back-emf compensation in sinusoidal spin-up procedure -->
                    <param name="motor_kv"            value="880"/>    <!-- kV value of the motor. used in back-emf compensation during spin-up -->
                    
                    <param name="min_num_cross_for_closed_loop" value="5"/>  <!-- exit latching mode of fixed power after this number of zero crossings -->
                    <param name="protection_stall_check_rpm" value="750"/> <!-- if motor spins below this RPM, stall check will trigger and stop / restart the motor -->
                
                
                John Nomikos 0J Offline
                John Nomikos 0J Offline
                John Nomikos 0
                Regular
                wrote on last edited by
                #7

                @Alex-Kushleyev Sure.

                Here's what I changed (from esc_params_generic_m0117.xml)

                <param name="spinup_power"        value="130"/>     <!-- power used to during spin-up procedure -->
                <param name="spinup_rpm_target"   value="3300"/>   <!-- Desired RPM at the end of the sinusoidal spin-up procedure -->
                <param name="spinup_time_ms"      value="500"/>   <!-- Duration of the sinusoidal spin-up procedure -->
                <param name="motor_kv"            value="2400"/>    <!-- kV value of the motor. used in back-emf compensation during spin-up -->
                <param name="min_num_cross_for_closed_loop" value="5"/>  <!-- exit latching mode of fixed power after this number of zero crossings -->
                <param name="protection_stall_check_rpm" value="700"/> <!-- if motor spins below this RPM, stall check will trigger and stop / restart the motor -->
                
                

                Here's what it was before I changed it:

                <param name="spinup_power"        value="70"/>     <!-- power used to during spin-up procedure -->
                <param name="spinup_rpm_target"   value="1000"/>   <!-- Desired RPM at the end of the sinusoidal spin-up procedure -->
                <param name="spinup_time_ms"      value="1000"/>   <!-- Duration of the sinusoidal spin-up procedure -->
                <param name="motor_kv"            value="0"/>    <!-- kV value of the motor. used in back-emf compensation during spin-up -->
                <param name="min_num_cross_for_closed_loop" value="100"/>  <!-- exit latching mode of fixed power after this number of zero crossings -->
                <param name="protection_stall_check_rpm" value="1000"/> <!-- if motor spins below this RPM, stall check will trigger and stop / restart the motor -->
                
                John Nomikos 0J 1 Reply Last reply
                0
                • John Nomikos 0J John Nomikos 0

                  @Alex-Kushleyev Sure.

                  Here's what I changed (from esc_params_generic_m0117.xml)

                  <param name="spinup_power"        value="130"/>     <!-- power used to during spin-up procedure -->
                  <param name="spinup_rpm_target"   value="3300"/>   <!-- Desired RPM at the end of the sinusoidal spin-up procedure -->
                  <param name="spinup_time_ms"      value="500"/>   <!-- Duration of the sinusoidal spin-up procedure -->
                  <param name="motor_kv"            value="2400"/>    <!-- kV value of the motor. used in back-emf compensation during spin-up -->
                  <param name="min_num_cross_for_closed_loop" value="5"/>  <!-- exit latching mode of fixed power after this number of zero crossings -->
                  <param name="protection_stall_check_rpm" value="700"/> <!-- if motor spins below this RPM, stall check will trigger and stop / restart the motor -->
                  
                  

                  Here's what it was before I changed it:

                  <param name="spinup_power"        value="70"/>     <!-- power used to during spin-up procedure -->
                  <param name="spinup_rpm_target"   value="1000"/>   <!-- Desired RPM at the end of the sinusoidal spin-up procedure -->
                  <param name="spinup_time_ms"      value="1000"/>   <!-- Duration of the sinusoidal spin-up procedure -->
                  <param name="motor_kv"            value="0"/>    <!-- kV value of the motor. used in back-emf compensation during spin-up -->
                  <param name="min_num_cross_for_closed_loop" value="100"/>  <!-- exit latching mode of fixed power after this number of zero crossings -->
                  <param name="protection_stall_check_rpm" value="1000"/> <!-- if motor spins below this RPM, stall check will trigger and stop / restart the motor -->
                  
                  John Nomikos 0J Offline
                  John Nomikos 0J Offline
                  John Nomikos 0
                  Regular
                  wrote on last edited by
                  #8

                  Also, I am now running into a problem where the drone does not lift off and tilts everytime I arm and try to lift off. I never ran voxl-esc-calibrate though, so I will try that. I never knew that existed until I read it on another forum post.

                  As a note I'm using 1804-2400kv motors

                  Alex KushleyevA 1 Reply Last reply
                  0
                  • John Nomikos 0J John Nomikos 0

                    Also, I am now running into a problem where the drone does not lift off and tilts everytime I arm and try to lift off. I never ran voxl-esc-calibrate though, so I will try that. I never knew that existed until I read it on another forum post.

                    As a note I'm using 1804-2400kv motors

                    Alex KushleyevA Offline
                    Alex KushleyevA Offline
                    Alex Kushleyev
                    ModalAI Team
                    wrote on last edited by
                    #9

                    @John-Nomikos-0 , thank you for the details!

                    I see that the following setting is not listed, please make sure that <param name="spinup_bemf_comp" value="1"/> is set to 1. If you have it as zero, that would explain the higher than usual power required to keep the motor spinning during the spin-up. Basically, with back-emf compensation enabled, the spin-up procedure automatically adds more power as the motor spins up, as the back-emf voltage generated by the motor at higher rpms will counter the voltage that is applied to the motor. Once you set that parameter to 1, I believe you should be able to drop the spinup power back to 80 or so. please try!

                    https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/master/voxl-esc-params/Sentinel_V1/Sentinel_V1.xml?ref_type=heads#L75

                    Regarding the drone tilting, this could happen due to incorrect actuator (motor) mapping in PX4. If this is not done correctly, the thrust will be applied in wrong location and the vehicle will not fly.

                    Alex

                    John Nomikos 0J 1 Reply Last reply
                    0
                    • Alex KushleyevA Alex Kushleyev

                      @John-Nomikos-0 , thank you for the details!

                      I see that the following setting is not listed, please make sure that <param name="spinup_bemf_comp" value="1"/> is set to 1. If you have it as zero, that would explain the higher than usual power required to keep the motor spinning during the spin-up. Basically, with back-emf compensation enabled, the spin-up procedure automatically adds more power as the motor spins up, as the back-emf voltage generated by the motor at higher rpms will counter the voltage that is applied to the motor. Once you set that parameter to 1, I believe you should be able to drop the spinup power back to 80 or so. please try!

                      https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/master/voxl-esc-params/Sentinel_V1/Sentinel_V1.xml?ref_type=heads#L75

                      Regarding the drone tilting, this could happen due to incorrect actuator (motor) mapping in PX4. If this is not done correctly, the thrust will be applied in wrong location and the vehicle will not fly.

                      Alex

                      John Nomikos 0J Offline
                      John Nomikos 0J Offline
                      John Nomikos 0
                      Regular
                      wrote on last edited by
                      #10

                      @Alex-Kushleyev Thank you for the advice. Changing that parameter allowed me to set power back down to 80 with no issues.

                      Hmm also QGC does show that the actuators are mapped correctly. I also double checked that props are on right and are spinning the right direction. I will investigate further. I'm trying to fly it in VIO currently.

                      Is it necessary to calibrate the escs with voxl-esc-calibrate.py? I have not done that.

                      Alex KushleyevA 1 Reply Last reply
                      0
                      • John Nomikos 0J John Nomikos 0

                        @Alex-Kushleyev Thank you for the advice. Changing that parameter allowed me to set power back down to 80 with no issues.

                        Hmm also QGC does show that the actuators are mapped correctly. I also double checked that props are on right and are spinning the right direction. I will investigate further. I'm trying to fly it in VIO currently.

                        Is it necessary to calibrate the escs with voxl-esc-calibrate.py? I have not done that.

                        Alex KushleyevA Offline
                        Alex KushleyevA Offline
                        Alex Kushleyev
                        ModalAI Team
                        wrote on last edited by
                        #11

                        @John-Nomikos-0

                        Yes, you should perform the ESC calibration - it should be done for best results whenever you have a new motor or propeller type. There is more information about it in the other thread you found. Then you would need to update your PX4 parameters for min and max rpm so the commanded thrust is properly mapped to what motors can achieve.

                        Also, if you are experimenting with new motors and props, it is always better to fly in manual mode to make sure the basic flight is working properly and then test higher level modes like VIO.

                        @modaltb , are there any other params that need updating if John is using a custom drone for his custom motor/prop combo?

                        Alex

                        John Nomikos 0J 1 Reply Last reply
                        0
                        • Alex KushleyevA Alex Kushleyev

                          @John-Nomikos-0

                          Yes, you should perform the ESC calibration - it should be done for best results whenever you have a new motor or propeller type. There is more information about it in the other thread you found. Then you would need to update your PX4 parameters for min and max rpm so the commanded thrust is properly mapped to what motors can achieve.

                          Also, if you are experimenting with new motors and props, it is always better to fly in manual mode to make sure the basic flight is working properly and then test higher level modes like VIO.

                          @modaltb , are there any other params that need updating if John is using a custom drone for his custom motor/prop combo?

                          Alex

                          John Nomikos 0J Offline
                          John Nomikos 0J Offline
                          John Nomikos 0
                          Regular
                          wrote on last edited by
                          #12

                          @Alex-Kushleyev

                          The interesting thing is that these aren't new motors and props. We got them working previously on the older esc firmware and even did PID tuning. Drone was flying smoothly. But of course, changing the ESC firmware parameters could have completely invalidated that.

                          Alex KushleyevA 1 Reply Last reply
                          0
                          • John Nomikos 0J John Nomikos 0

                            @Alex-Kushleyev

                            The interesting thing is that these aren't new motors and props. We got them working previously on the older esc firmware and even did PID tuning. Drone was flying smoothly. But of course, changing the ESC firmware parameters could have completely invalidated that.

                            Alex KushleyevA Offline
                            Alex KushleyevA Offline
                            Alex Kushleyev
                            ModalAI Team
                            wrote on last edited by
                            #13

                            @John-Nomikos-0 , i see. In that case, if you kept the old control parameters the same (such as the calibration curve and gainst, etc), the new firmware should work the same. The new firmware only had changes that relate to the spin-up procedure. Therefore, if you have migrated your old params to the new params correctly (you could double check that all the control params should be the same between your old param file and new param file), then the issue may be somewhere else. You should try to fly in non VIO mode, just manual mode to check if the drone flies well manually.

                            Alex

                            John Nomikos 0J 1 Reply Last reply
                            0
                            • Alex KushleyevA Alex Kushleyev

                              @John-Nomikos-0 , i see. In that case, if you kept the old control parameters the same (such as the calibration curve and gainst, etc), the new firmware should work the same. The new firmware only had changes that relate to the spin-up procedure. Therefore, if you have migrated your old params to the new params correctly (you could double check that all the control params should be the same between your old param file and new param file), then the issue may be somewhere else. You should try to fly in non VIO mode, just manual mode to check if the drone flies well manually.

                              Alex

                              John Nomikos 0J Offline
                              John Nomikos 0J Offline
                              John Nomikos 0
                              Regular
                              wrote on last edited by John Nomikos 0
                              #14

                              @Alex-Kushleyev And just to confirm, the actuators tab should be where I am testing that the motors are mapped correctly, right?

                              We were seeing this problem when flying in stabilized flight mode as well. I can try manual next

                              John Nomikos 0J modaltbM 2 Replies Last reply
                              0
                              • John Nomikos 0J John Nomikos 0

                                @Alex-Kushleyev And just to confirm, the actuators tab should be where I am testing that the motors are mapped correctly, right?

                                We were seeing this problem when flying in stabilized flight mode as well. I can try manual next

                                John Nomikos 0J Offline
                                John Nomikos 0J Offline
                                John Nomikos 0
                                Regular
                                wrote on last edited by
                                #15

                                Even in manual mode it tries to eat dirt as soon as it tries to lift off. I triple checked, motors are mapped correctly and spinning in the right direction

                                1 Reply Last reply
                                0
                                • John Nomikos 0J John Nomikos 0

                                  @Alex-Kushleyev And just to confirm, the actuators tab should be where I am testing that the motors are mapped correctly, right?

                                  We were seeing this problem when flying in stabilized flight mode as well. I can try manual next

                                  modaltbM Offline
                                  modaltbM Offline
                                  modaltb
                                  ModalAI Team
                                  wrote on last edited by modaltb
                                  #16

                                  Hey @John-Nomikos-0 , you'll need to know how things are wired up to "quickly" be able to use this guide: https://docs.modalai.com/modal-esc-px4-user-guide/#actuator-setup-using-qgc

                                  If you don't know the wiring, it becomes a fun guess and check game....

                                  To reverse, you could try these I believe:

                                  MODAL_IO_SDIR1
                                  MODAL_IO_SDIR2
                                  MODAL_IO_SDIR3
                                  MODAL_IO_SDIR4
                                  
                                  John Nomikos 0J 1 Reply Last reply
                                  0
                                  • modaltbM modaltb

                                    Hey @John-Nomikos-0 , you'll need to know how things are wired up to "quickly" be able to use this guide: https://docs.modalai.com/modal-esc-px4-user-guide/#actuator-setup-using-qgc

                                    If you don't know the wiring, it becomes a fun guess and check game....

                                    To reverse, you could try these I believe:

                                    MODAL_IO_SDIR1
                                    MODAL_IO_SDIR2
                                    MODAL_IO_SDIR3
                                    MODAL_IO_SDIR4
                                    
                                    John Nomikos 0J Offline
                                    John Nomikos 0J Offline
                                    John Nomikos 0
                                    Regular
                                    wrote on last edited by
                                    #17

                                    @modaltb I have actually successfully been able to use the "Identify and assign motors" functionality, so I was using that to identify the motors.

                                    I'm going to try via command line just to make sure that the actuator test matches with what is expected

                                    John Nomikos 0J 1 Reply Last reply
                                    0
                                    • John Nomikos 0J John Nomikos 0

                                      @modaltb I have actually successfully been able to use the "Identify and assign motors" functionality, so I was using that to identify the motors.

                                      I'm going to try via command line just to make sure that the actuator test matches with what is expected

                                      John Nomikos 0J Offline
                                      John Nomikos 0J Offline
                                      John Nomikos 0
                                      Regular
                                      wrote on last edited by John Nomikos 0
                                      #18

                                      @John-Nomikos-0

                                      Double checked using command line
                                      actuator_test set

                                      It matches what I see on the actuators tab.

                                      Moving back to previous ESC firmware to see if problem persists.
                                      Nevermind, I think I would need to plug into ESCs to do that

                                      John Nomikos 0J 1 Reply Last reply
                                      0
                                      • John Nomikos 0J John Nomikos 0

                                        @John-Nomikos-0

                                        Double checked using command line
                                        actuator_test set

                                        It matches what I see on the actuators tab.

                                        Moving back to previous ESC firmware to see if problem persists.
                                        Nevermind, I think I would need to plug into ESCs to do that

                                        John Nomikos 0J Offline
                                        John Nomikos 0J Offline
                                        John Nomikos 0
                                        Regular
                                        wrote on last edited by
                                        #19

                                        Just to clarify, I am still unable to fly with the most recent ESC firmware. All of the motors are mapped correctly and the props are on right, but the drone still seems to eat dirt whenever I throttle it up. It even completely flipped over once. I tried in manual mode and same story.

                                        Any other suggestions? I'm starting to run out of ideas 😢

                                        Alex KushleyevA Eric KatzfeyE 2 Replies Last reply
                                        0
                                        • John Nomikos 0J John Nomikos 0

                                          Just to clarify, I am still unable to fly with the most recent ESC firmware. All of the motors are mapped correctly and the props are on right, but the drone still seems to eat dirt whenever I throttle it up. It even completely flipped over once. I tried in manual mode and same story.

                                          Any other suggestions? I'm starting to run out of ideas 😢

                                          Alex KushleyevA Offline
                                          Alex KushleyevA Offline
                                          Alex Kushleyev
                                          ModalAI Team
                                          wrote on last edited by
                                          #20

                                          @John-Nomikos-0 i have asked for help from our other devs, we will follow up with further suggestions.

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          ModalAI
                                          Categories Recent Tags ModalAI.com Docs
                                          © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups