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 IO
  4. VOXL 2 IO Board troubleshooting - Driver will not start

VOXL 2 IO Board troubleshooting - Driver will not start

Scheduled Pinned Locked Moved VOXL 2 IO
17 Posts 5 Posters 3.5k 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.
  • Jeremy FrederickJ Jeremy Frederick

    Hello,

    I just received my new VOXL IO board with the updated bootloader and I'm working to integrate it now. Here is an explanation of my setup and the programming steps I've taken so far.

    Goal:
    Manipulate a servo using the VOXL IO board's PWM output.

    Setup:
    VOXL2 running SDK 1.1.2, VOXL IO board with latest bootloader, plugged into port J19, VOXL_ESC for ESC and EXTERNAL for RC command.

    Programming Steps:
    Flashed the updated firmware with the UART 7 edit made for J19 utilization, flashed the voxl_io parameters using the px4-configure wizard. Everything during this process seems to have worked fine.

    Issue:
    Whenever I try to start the voxl2_io driver, I receive the following:

    672e6a05-2055-4c12-8d88-860f0e8f20f9-image.png

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

    @Jeremy-Frederick

    can you start px4 in foreground mode using

    systemctl stop voxl-px4 #stop the voxl-px4 service
    
    voxl-px4 -d
    #wait for px4 to start and finish printing messages
    qshell voxl2_io start
    

    You should get the printout from the voxl2_io module. when running commands using px4-qshell the messages from the DSP (SLPI) are not printed.

    1 Reply Last reply
    0
    • Jeremy FrederickJ Jeremy Frederick

      Hello,

      I just received my new VOXL IO board with the updated bootloader and I'm working to integrate it now. Here is an explanation of my setup and the programming steps I've taken so far.

      Goal:
      Manipulate a servo using the VOXL IO board's PWM output.

      Setup:
      VOXL2 running SDK 1.1.2, VOXL IO board with latest bootloader, plugged into port J19, VOXL_ESC for ESC and EXTERNAL for RC command.

      Programming Steps:
      Flashed the updated firmware with the UART 7 edit made for J19 utilization, flashed the voxl_io parameters using the px4-configure wizard. Everything during this process seems to have worked fine.

      Issue:
      Whenever I try to start the voxl2_io driver, I receive the following:

      672e6a05-2055-4c12-8d88-860f0e8f20f9-image.png

      Jeremy FrederickJ Offline
      Jeremy FrederickJ Offline
      Jeremy Frederick
      Regular
      wrote on last edited by
      #3

      @Jeremy-Frederick Alex, thanks for the quick response. It looks like PX4 is still expecting to find the IO board on port 2, where do I need to update the uart number? Originally I thought updating the UART number in the flashing bash script was all that is necessary but now I see why that was an incorrect assumption.

      25402aa0-20c2-431f-9c7a-b35151af5a96-image.png

      Eric KatzfeyE 1 Reply Last reply
      0
      • Jeremy FrederickJ Jeremy Frederick

        @Jeremy-Frederick Alex, thanks for the quick response. It looks like PX4 is still expecting to find the IO board on port 2, where do I need to update the uart number? Originally I thought updating the UART number in the flashing bash script was all that is necessary but now I see why that was an incorrect assumption.

        25402aa0-20c2-431f-9c7a-b35151af5a96-image.png

        Eric KatzfeyE Offline
        Eric KatzfeyE Offline
        Eric Katzfey
        ModalAI Team
        wrote on last edited by
        #4

        @Jeremy-Frederick All of the start commands are in the file /usr/bin/voxl-px4-start. The /etc/modalai/voxl-px4.conf file provides the configuration for how those start commands are called. In your case, if you want to use M0065 for RC input only, then set RC to M0065_SBUS and it will call qshell voxl2_io start -d -p 7

        Jeremy FrederickJ 1 Reply Last reply
        0
        • Eric KatzfeyE Eric Katzfey

          @Jeremy-Frederick All of the start commands are in the file /usr/bin/voxl-px4-start. The /etc/modalai/voxl-px4.conf file provides the configuration for how those start commands are called. In your case, if you want to use M0065 for RC input only, then set RC to M0065_SBUS and it will call qshell voxl2_io start -d -p 7

          Jeremy FrederickJ Offline
          Jeremy FrederickJ Offline
          Jeremy Frederick
          Regular
          wrote on last edited by
          #5

          @Eric-Katzfey I'm not looking to run RC through the IO board, I'm using external RC commands for control. I'm looking to utilize the PWM outputs on the board to control a servo for a dropper mechanism. I made the change and am commanding the start of the voxl2_io driver successfully. As of now I am still unable to drive a servo through the QGC actuators tab, all the correct parameters have been loaded.

          48787adc-3ad4-4e8c-bd36-4c6a9dc1b909-image.png

          Alex KushleyevA V 2 Replies Last reply
          0
          • Jeremy FrederickJ Jeremy Frederick

            @Eric-Katzfey I'm not looking to run RC through the IO board, I'm using external RC commands for control. I'm looking to utilize the PWM outputs on the board to control a servo for a dropper mechanism. I made the change and am commanding the start of the voxl2_io driver successfully. As of now I am still unable to drive a servo through the QGC actuators tab, all the correct parameters have been loaded.

            48787adc-3ad4-4e8c-bd36-4c6a9dc1b909-image.png

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

            @Jeremy-Frederick ,

            Hi @Jeremy-Frederick , we are moving towards using updated M0065 firmware and PX4 driver which has some improvements as well as easier to debug. Can you please check out this thread : https://forum.modalai.com/topic/3265/additional-voxl-2-pwm-ouputs

            You will need to update M0065 firmware and use px4 build from a branch (either build it yourself or i provided a link to deb in that thread).

            When you update the M0065 firmware, if you also have the ESC plugged in, just unplug the ESC UART connection in order to avoid any confusion, because the M0065 and ESC use the same tools / protocol to update the firmware. You will not be able to upload wrong firmware to any of these boards, but unplugging the ESC uart will just make things simpler, so that the update tools can autodetect the port.

            After you install the updates, please check output of voxl-px4 -d | grep VOXL2_IO , which will print a bunch of voxl2 io driver initialization info. then make sure your channel mapping is set up correctly (specifically, VOXL2_IO_FUNC* params and then you can test using QGC.

            You should see output that looks something like this, which is set up to map motors 1-4 to pwm, but you may need to change it for your aux functionality. There is no change in how you start the driver (you can still provide the port number, etc)

            INFO  [muorb] SLPI: VOXL2_IO: Driver starting
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_BAUD  : 921600
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC1 : 101
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC2 : 102
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC3 : 103
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC4 : 104
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC5 : 0
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC6 : 0
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC7 : 0
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC8 : 0
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_DIS   : 1000
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MIN   : 1100
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MAX   : 2000
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMIN  : 1050
            INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMAX  : 2000
            INFO  [muorb] SLPI: VOXL2_IO: 
            INFO  [muorb] SLPI: VOXL2_IO: Opening UART device 2, baud rate 921600
            INFO  [muorb] SLPI: VOXL2_IO: Successfully opened UART device
            INFO  [muorb] SLPI: VOXL2_IO: Detecting M0065 board...
            INFO  [muorb] SLPI: VOXL2_IO: 	VOXL2_IO ID: 0
            INFO  [muorb] SLPI: VOXL2_IO: 	Board Type : 35: ModalAi I/O Expander (M0065)
            INFO  [muorb] SLPI: VOXL2_IO: 	Unique ID  : 0x4304296039364B560671FF36
            INFO  [muorb] SLPI: VOXL2_IO: 	Firmware   : version    2, hash f94baad1
            INFO  [muorb] SLPI: VOXL2_IO: 	Bootloader : version    0, hash 17147346*
            INFO  [muorb] SLPI: VOXL2_IO: 	Reply time : 2584us
            INFO  [muorb] SLPI: VOXL2_IO: Driver initialization succeeded
            
            Jeremy FrederickJ 1 Reply Last reply
            0
            • Alex KushleyevA Alex Kushleyev

              @Jeremy-Frederick ,

              Hi @Jeremy-Frederick , we are moving towards using updated M0065 firmware and PX4 driver which has some improvements as well as easier to debug. Can you please check out this thread : https://forum.modalai.com/topic/3265/additional-voxl-2-pwm-ouputs

              You will need to update M0065 firmware and use px4 build from a branch (either build it yourself or i provided a link to deb in that thread).

              When you update the M0065 firmware, if you also have the ESC plugged in, just unplug the ESC UART connection in order to avoid any confusion, because the M0065 and ESC use the same tools / protocol to update the firmware. You will not be able to upload wrong firmware to any of these boards, but unplugging the ESC uart will just make things simpler, so that the update tools can autodetect the port.

              After you install the updates, please check output of voxl-px4 -d | grep VOXL2_IO , which will print a bunch of voxl2 io driver initialization info. then make sure your channel mapping is set up correctly (specifically, VOXL2_IO_FUNC* params and then you can test using QGC.

              You should see output that looks something like this, which is set up to map motors 1-4 to pwm, but you may need to change it for your aux functionality. There is no change in how you start the driver (you can still provide the port number, etc)

              INFO  [muorb] SLPI: VOXL2_IO: Driver starting
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_BAUD  : 921600
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC1 : 101
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC2 : 102
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC3 : 103
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC4 : 104
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC5 : 0
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC6 : 0
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC7 : 0
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC8 : 0
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_DIS   : 1000
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MIN   : 1100
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MAX   : 2000
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMIN  : 1050
              INFO  [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMAX  : 2000
              INFO  [muorb] SLPI: VOXL2_IO: 
              INFO  [muorb] SLPI: VOXL2_IO: Opening UART device 2, baud rate 921600
              INFO  [muorb] SLPI: VOXL2_IO: Successfully opened UART device
              INFO  [muorb] SLPI: VOXL2_IO: Detecting M0065 board...
              INFO  [muorb] SLPI: VOXL2_IO: 	VOXL2_IO ID: 0
              INFO  [muorb] SLPI: VOXL2_IO: 	Board Type : 35: ModalAi I/O Expander (M0065)
              INFO  [muorb] SLPI: VOXL2_IO: 	Unique ID  : 0x4304296039364B560671FF36
              INFO  [muorb] SLPI: VOXL2_IO: 	Firmware   : version    2, hash f94baad1
              INFO  [muorb] SLPI: VOXL2_IO: 	Bootloader : version    0, hash 17147346*
              INFO  [muorb] SLPI: VOXL2_IO: 	Reply time : 2584us
              INFO  [muorb] SLPI: VOXL2_IO: Driver initialization succeeded
              
              Jeremy FrederickJ Offline
              Jeremy FrederickJ Offline
              Jeremy Frederick
              Regular
              wrote on last edited by
              #7

              @Alex-Kushleyev I appreciate it, all is working now

              1 Reply Last reply
              0
              • V Offline
                V Offline
                valvarez
                Contributor
                wrote on last edited by
                #8

                Hello @Jeremy-Frederick
                I'm just trying to perform the same operation. What servo have you used? How did you make the connection? I have doubts about the 5V power supply for the servos and the 3.3V signal from the IO board.

                Thank you!

                Jeremy FrederickJ 1 Reply Last reply
                0
                • V valvarez

                  Hello @Jeremy-Frederick
                  I'm just trying to perform the same operation. What servo have you used? How did you make the connection? I have doubts about the 5V power supply for the servos and the 3.3V signal from the IO board.

                  Thank you!

                  Jeremy FrederickJ Offline
                  Jeremy FrederickJ Offline
                  Jeremy Frederick
                  Regular
                  wrote on last edited by
                  #9

                  @valvarez Any PWM based servo should work, we're using 5g servos with very little torque capability and haven't seen any issues with the power supply capabilities of the IO board in this regard. I connected the PWM Signal to output 1 on the IO board and the 5V and G of the same port. Has been working consistently through QGC.

                  VinnyV 1 Reply Last reply
                  0
                  • Jeremy FrederickJ Jeremy Frederick

                    @valvarez Any PWM based servo should work, we're using 5g servos with very little torque capability and haven't seen any issues with the power supply capabilities of the IO board in this regard. I connected the PWM Signal to output 1 on the IO board and the 5V and G of the same port. Has been working consistently through QGC.

                    VinnyV Offline
                    VinnyV Offline
                    Vinny
                    ModalAI Team
                    wrote on last edited by
                    #10

                    Hi @Jeremy-Frederick @valvarez
                    ModalAI has not designed any power supply reference voltages on JST connectors as a REF or Power Tap Off as capable of powering servos.
                    If you wish to power micro-servos then please do so at your own risk. However, you may likely damage your ModalAI hardware since we do not have any back EMF/Stall/Load dump protection on any of our JST connectors.

                    Servos need to have their independent supply from your system battery.
                    Apologies we have not made that clearer in our Tech Docs.

                    Thanks!

                    Jeremy FrederickJ 1 Reply Last reply
                    0
                    • VinnyV Vinny

                      Hi @Jeremy-Frederick @valvarez
                      ModalAI has not designed any power supply reference voltages on JST connectors as a REF or Power Tap Off as capable of powering servos.
                      If you wish to power micro-servos then please do so at your own risk. However, you may likely damage your ModalAI hardware since we do not have any back EMF/Stall/Load dump protection on any of our JST connectors.

                      Servos need to have their independent supply from your system battery.
                      Apologies we have not made that clearer in our Tech Docs.

                      Thanks!

                      Jeremy FrederickJ Offline
                      Jeremy FrederickJ Offline
                      Jeremy Frederick
                      Regular
                      wrote on last edited by
                      #11

                      @Vinny Appreciate the heads up

                      1 Reply Last reply
                      0
                      • Denver HopkinsD Denver Hopkins referenced this topic on
                      • Jeremy FrederickJ Jeremy Frederick

                        @Eric-Katzfey I'm not looking to run RC through the IO board, I'm using external RC commands for control. I'm looking to utilize the PWM outputs on the board to control a servo for a dropper mechanism. I made the change and am commanding the start of the voxl2_io driver successfully. As of now I am still unable to drive a servo through the QGC actuators tab, all the correct parameters have been loaded.

                        48787adc-3ad4-4e8c-bd36-4c6a9dc1b909-image.png

                        V Offline
                        V Offline
                        valvarez
                        Contributor
                        wrote on last edited by
                        #12

                        @Jeremy-Frederick said in VOXL 2 IO Board troubleshooting - Driver will not start:

                        @Eric-Katzfey I'm not looking to run RC through the IO board, I'm using external RC commands for control. I'm looking to utilize the PWM outputs on the board to control a servo for a dropper mechanism. I made the change and am commanding the start of the voxl2_io driver successfully. As of now I am still unable to drive a servo through the QGC actuators tab, all the correct parameters have been loaded.

                        48787adc-3ad4-4e8c-bd36-4c6a9dc1b909-image.png

                        Hello @Jeremy-Frederick
                        Do you remember how you made that change? I can't find a way to change the port
                        f3e4affb-4163-409c-a08f-674b8ffc1314-imagen.png

                        Eric KatzfeyE 1 Reply Last reply
                        0
                        • V valvarez

                          @Jeremy-Frederick said in VOXL 2 IO Board troubleshooting - Driver will not start:

                          @Eric-Katzfey I'm not looking to run RC through the IO board, I'm using external RC commands for control. I'm looking to utilize the PWM outputs on the board to control a servo for a dropper mechanism. I made the change and am commanding the start of the voxl2_io driver successfully. As of now I am still unable to drive a servo through the QGC actuators tab, all the correct parameters have been loaded.

                          48787adc-3ad4-4e8c-bd36-4c6a9dc1b909-image.png

                          Hello @Jeremy-Frederick
                          Do you remember how you made that change? I can't find a way to change the port
                          f3e4affb-4163-409c-a08f-674b8ffc1314-imagen.png

                          Eric KatzfeyE Offline
                          Eric KatzfeyE Offline
                          Eric Katzfey
                          ModalAI Team
                          wrote on last edited by
                          #13

                          @valvarez It's the -p option as shown in the screenshot above.

                          V 1 Reply Last reply
                          0
                          • Eric KatzfeyE Eric Katzfey

                            @valvarez It's the -p option as shown in the screenshot above.

                            V Offline
                            V Offline
                            valvarez
                            Contributor
                            wrote on last edited by valvarez
                            #14

                            @Eric-Katzfey Replaced it with -p 7
                            430bfa5e-1177-4ab2-88eb-5555fc756746-imagen.png

                            V 1 Reply Last reply
                            0
                            • V valvarez

                              @Eric-Katzfey Replaced it with -p 7
                              430bfa5e-1177-4ab2-88eb-5555fc756746-imagen.png

                              V Offline
                              V Offline
                              valvarez
                              Contributor
                              wrote on last edited by
                              #15

                              @valvarez UPDATE: I took another IOBoard and connected it to see what happened. To my surprise, it has shown something different. After updating it, I get the same thing as with the other one. The firmware that im using is voxl2_io_firmware_m0065_v1_35_58c82813.bin from https://developer.modalai.com/asset/7

                              WhatsApp Image 2025-02-16 at 21.45.52.jpeg

                              V 1 Reply Last reply
                              0
                              • V valvarez

                                @valvarez UPDATE: I took another IOBoard and connected it to see what happened. To my surprise, it has shown something different. After updating it, I get the same thing as with the other one. The firmware that im using is voxl2_io_firmware_m0065_v1_35_58c82813.bin from https://developer.modalai.com/asset/7

                                WhatsApp Image 2025-02-16 at 21.45.52.jpeg

                                V Offline
                                V Offline
                                valvarez
                                Contributor
                                wrote on last edited by
                                #16

                                @valvarez UPDATE 2: With that firmware is working: https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl2-io/-/blob/master/voxl2-io-tools/firmware/modalai_m0065_firmware_v0_2_RC1_f94baad1.bin

                                27eb2d04-f149-4e27-badd-89df9d29e9c5-imagen.png

                                Alex KushleyevA 1 Reply Last reply
                                0
                                • V valvarez

                                  @valvarez UPDATE 2: With that firmware is working: https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl2-io/-/blob/master/voxl2-io-tools/firmware/modalai_m0065_firmware_v0_2_RC1_f94baad1.bin

                                  27eb2d04-f149-4e27-badd-89df9d29e9c5-imagen.png

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

                                  @valvarez , yes, this is the expected correct behavior.

                                  I believe you were initially using older M0065 firmware (version 1) as well as older PX4 build which was working with that version of M0065 (VOXL2 IO board). However that release had some issues that were fixed and you should not use firmware version 1.

                                  The older PX4 version used a different (old) driver for the voxl2-io board, and you can tell that because the debug print was very short and it accepted SW version 1:

                                  SLPI: Detected M0065 protocol version. SW: 1, HW: 35
                                  

                                  If you see that, it means you are using outdated (buggy) software. The latest (stable) firmware is verion 2 and the corresponding PX4 driver will require that version and print out a lot more information about the board and the VOXL2_IO params.

                                  Alex

                                  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

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