ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

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

    VOXL 2
    4
    35
    2264
    Loading More Posts
    • 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.
    • Alex KushleyevA
      Alex Kushleyev ModalAI Team @John Nomikos 0
      last edited by

      @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 Reply Quote 0
      • John Nomikos 0J
        John Nomikos 0 @Alex Kushleyev
        last edited by

        @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 Reply Quote 0
        • Alex KushleyevA
          Alex Kushleyev ModalAI Team @John Nomikos 0
          last edited by

          @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 Reply Quote 0
          • John Nomikos 0J
            John Nomikos 0 @Alex Kushleyev
            last edited by

            @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 Reply Quote 0
            • Alex KushleyevA
              Alex Kushleyev ModalAI Team @John Nomikos 0
              last edited by

              @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 Reply Quote 0
              • John Nomikos 0J
                John Nomikos 0 @Alex Kushleyev
                last edited by 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 modaltbM 2 Replies Last reply Reply Quote 0
                • John Nomikos 0J
                  John Nomikos 0 @John Nomikos 0
                  last edited by

                  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 Reply Quote 0
                  • modaltbM
                    modaltb ModalAI Team @John Nomikos 0
                    last edited by 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 1 Reply Last reply Reply Quote 0
                    • John Nomikos 0J
                      John Nomikos 0 @modaltb
                      last edited by

                      @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 Reply Quote 0
                      • John Nomikos 0J
                        John Nomikos 0 @John Nomikos 0
                        last edited by 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 1 Reply Last reply Reply Quote 0
                        • John Nomikos 0J
                          John Nomikos 0 @John Nomikos 0
                          last edited by

                          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 Reply Quote 0
                          • Alex KushleyevA
                            Alex Kushleyev ModalAI Team @John Nomikos 0
                            last edited by

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

                            1 Reply Last reply Reply Quote 0
                            • Eric KatzfeyE
                              Eric Katzfey ModalAI Team @John Nomikos 0
                              last edited by

                              @John-Nomikos-0 Is this on a custom drone? Seems like perhaps a bad PX4 parameter somewhere. Maybe you can wipe everything and start from scratch?

                              John Nomikos 0J 1 Reply Last reply Reply Quote 0
                              • John Nomikos 0J
                                John Nomikos 0 @Eric Katzfey
                                last edited by John Nomikos 0

                                @Eric-Katzfey Maybe there's something with my ESC firmware parameters that's causing issues?

                                I'm going to try to flash an esc config that is used on a modalai drone to see if it's any different

                                Also, is there an easy way to go to the previous ESC firmware version without manually plugging in? I want to go back to see if this is due to the firmware flash in a time-efficient manner. I'm pretty sure there isn't but I wanted to make absolute sure

                                Also it is on a custom drone, but we got our drone flying with the exact same parameters on the previous ESC version on 1.0.0. Really is seeming like an ESC firmware issue to me.

                                Alex KushleyevA 1 Reply Last reply Reply Quote 0
                                • Alex KushleyevA
                                  Alex Kushleyev ModalAI Team @John Nomikos 0
                                  last edited by

                                  @John-Nomikos-0

                                  Yes i can provide you with old firmware for m0117 (the original firmware you had before). You will need your old ESC params. All this can be done right from voxl2 without unplugging. I will follow up tomorrow morning.

                                  John Nomikos 0J 1 Reply Last reply Reply Quote 0
                                  • John Nomikos 0J
                                    John Nomikos 0 @Alex Kushleyev
                                    last edited by

                                    @Alex-Kushleyev said in (Platform 1.0.0) Bug in the most recent VOXL2 ESC Firmware (Random motors reverse directions each arm):

                                    Yes i can provide you with old firmware for m0117 (the original firmware you had before). You will need your old ESC params. All this can be done right from voxl2 without unplugging. I will follow up tomorrow morning.

                                    Sounds good. I don't think we ever changed the ESC params on the old firmware version. So they would be whatever the ESC came out of the factory with. I'm assuming there are default parameters available for the old firmware, right?

                                    Alex KushleyevA 1 Reply Last reply Reply Quote 0
                                    • Alex KushleyevA
                                      Alex Kushleyev ModalAI Team @John Nomikos 0
                                      last edited by

                                      @John-Nomikos-0 , yes i will provide the default params that are loaded during production.

                                      Alex KushleyevA 1 Reply Last reply Reply Quote 1
                                      • Alex KushleyevA
                                        Alex Kushleyev ModalAI Team @Alex Kushleyev
                                        last edited by Alex Kushleyev

                                        @John-Nomikos-0 ,

                                        I have uploaded the older firmware that was used during production of M0117-1 ESC : https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/dev/voxl-esc-tools/firmware/old/modalai_esc_firmware_m0117_1_v0_36_f75f1fdb.bin

                                        The default params that are loaded with that are here : https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/params-v1/voxl-esc-params/old/esc_params_modalai_4_in_1_revb.xml (please note that this is not the same as the latest esc_params_modalai_4_in_1_revb.xml in dev or master branch.

                                        (you can put the old firmware file into the following location: /usr/share/modalai/voxl-esc-tools/firmware/

                                        Note that if you want to perform the ESC downgrade right on VOXL 2, you need to get both of these files on your VOXL2 and run the following commands:

                                        cd /usr/share/modalai/voxl-esc-tools/
                                        
                                        #disable PX4
                                        voxl-esc enable-bridge
                                        
                                        #upload firmware to each ESC ID (you will hear a sad beep after each update, which means the params are invalid - this is ok
                                        python3 voxl-esc-upload-firmware.py --firmware-file firmware/modalai_esc_firmware_m0117_1_v0_36_f75f1fdb.bin --id 0
                                        python3 voxl-esc-upload-firmware.py --firmware-file firmware/modalai_esc_firmware_m0117_1_v0_36_f75f1fdb.bin --id 1
                                        python3 voxl-esc-upload-firmware.py --firmware-file firmware/modalai_esc_firmware_m0117_1_v0_36_f75f1fdb.bin --id 2
                                        python3 voxl-esc-upload-firmware.py --firmware-file firmware/modalai_esc_firmware_m0117_1_v0_36_f75f1fdb.bin --id 3
                                        
                                        #upload old params (one command to update params on all 4 ESCs)
                                        python3 voxl-esc-upload-params.py --params-file <path_to_your_params_file>/esc_params_modalai_4_in_1_revb.xml
                                        
                                        #detect the ESCs
                                        python3 voxl-esc-scan.py
                                        
                                        #re-enable PX4
                                        voxl-esc disable-bridge
                                        

                                        Your firmware has should now be updated to have the hash f75f1fdb, which is the original firmware that you had on the ESC and the old firmware esc_params_modalai_4_in_1_revb.xml should have been the firmware that you received installed during production.

                                        Depending on the baud rate that you use in your latest ESC params, you may have to update it (the old baud rate was 250K but it could have been changed to 2Mbit, please double check).

                                        Let me know if you have any issues in this process

                                        Alex

                                        John Nomikos 0J 2 Replies Last reply Reply Quote 0
                                        • John Nomikos 0J
                                          John Nomikos 0 @Alex Kushleyev
                                          last edited by John Nomikos 0

                                          @Alex-Kushleyev Thank you so much for the help. I will try this next week. Have a great weekend!

                                          1 Reply Last reply Reply Quote 0
                                          • John Nomikos 0J
                                            John Nomikos 0 @Alex Kushleyev
                                            last edited by

                                            @Alex-Kushleyev said in (Platform 1.0.0) Bug in the most recent VOXL2 ESC Firmware (Random motors reverse directions each arm):

                                            python3 voxl-esc-upload-params.py --params-file

                                            So I successfully flashed the firmware on all 4 ESCs. But uploading params gave me this error

                                            voxl2:/usr/share/modalai/voxl-esc-tools$ python3 voxl-esc-upload-params.py --params-file /esc_params_modalai_4_in_1_revb.xml 
                                            Detected Python version : 3.6.9 (default, Mar 10 2023, 16:46:00) 
                                            [GCC 8.4.0]
                                            Found voxl-esc tools bin version: 1.2
                                            
                                            INFO: Params file name : /esc_params_modalai_4_in_1_revb.xml 
                                            INFO: Params file size : 6971 bytes
                                            
                                            
                                            VOXL Platform: M0054
                                            Detected VOXL2 M0054 or M0104!
                                            Found previous connection information in .voxl_esc_cache ..
                                            Prioritizing /dev/slpi-uart-2 @ 2000000
                                            INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 2000000
                                            Sending library name request: libslpi_uart_bridge_slpi.so
                                            Received standard error event 2
                                            Sending initialization request
                                            INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 250000
                                            INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 921600
                                            INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 230400
                                            INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 57600
                                            INFO: ESC(s) detected on port: /dev/slpi-uart-2, baud rate: 57600
                                            INFO: ESCs detected:
                                            INFO: ---------------------
                                            ID: 0, SW: 36, HW: 34: ModalAi 4-in-1 ESC (M0117-1)
                                            ID: 1, SW: 36, HW: 34: ModalAi 4-in-1 ESC (M0117-1)
                                            ID: 2, SW: 36, HW: 34: ModalAi 4-in-1 ESC (M0117-1)
                                            ID: 3, SW: 36, HW: 34: ModalAi 4-in-1 ESC (M0117-1)
                                            ---------------------
                                            ERROR: ESC firmware version 36 is incompatible with params supported by this utility
                                                   Acceptable ESC firmware versions are:  [38]
                                            

                                            I think voxl-esc-upload-params is checking for the version. I could modify it and try again, unless there is an earlier tool meant for this firmware

                                            Alex KushleyevA 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Powered by NodeBB | Contributors