# doodle labs and joystick setup

Source: https://forum.modalai.com/topic/4549/doodle-labs-and-joystick-setup
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2025-06-30 07:31:49 UTC by Jetson Nano
Replies: 29 · Views: 5698

## Jetson Nano · 2025-06-30 07:31:49 UTC

Hey @Alex-Kushleyev @Eric-Katzfey @Chad-Sweet 
I had a query about setting up joystick with doodle labs. I am not able to setup the joystick properly, not every buttons and toggle is working. AUX channels for Turtle mode or toggle for changing modes. 

my setup is 
- voxl 2 to Fc v2 to ESC 
- doodle labs nano to voxl 2

## Reply by Eric Katzfey (ModalAI staff) · 2025-06-30 15:43:06 UTC

@Jetson-Nano Are you using QGC to map joystick buttons to functions? What version of PX4 are you running on your FC v2?

## Reply by Eric Katzfey (ModalAI staff) · 2025-06-30 16:00:56 UTC (in reply to Eric Katzfey)

@Eric-Katzfey For turtle mode with a joystick you need to set VOXL_ESC_MODE to 1 and, while not armed, press a button and keep it pressed while arming. For flight modes that should all be handled through QGC.

## Reply by Jetson Nano · 2025-07-01 03:57:10 UTC (in reply to Eric Katzfey)

@Eric-Katzfey yes , I am using the QGC to map joystick buttons. I am using the voxl-fpv-dev version from the modalai px4 repo. I am using the FPV 4-in-1 ESC. I am not able to get more than 2 toggle switches and also not able to assign them two way.

## Reply by Eric Katzfey (ModalAI staff) · 2025-07-01 15:03:38 UTC (in reply to Jetson Nano)

@Jetson-Nano `voxl-fpv-dev` is the name of the branch. The version will be a number, such as `1.14.0-8.104.3`. Most of the joystick button mapping is handled by QGC directly. It maps them to commands that are sent over Mavlink. But the turtle mode is something specific built into the ESC driver. For the joystick buttons to work for turtle mode you need to set VOXL_ESC_MODE to 1. For newer versions of the `voxl-fpv-dev` branch you can also set VOXL_ESC_MODE to 2. The verify that the button mapping is working you can look at the manual_control_setpoint topic in px4 and see if the aux1 / aux2 fields are changing between 0.0 and 1.0. (e.g. `px4-listener manual_control_setpoint`)

## Reply by Jetson Nano · 2025-07-02 04:16:07 UTC (in reply to Eric Katzfey)

@Eric-Katzfey Thank you for the support. I will test it out and get back to you encase of any further queries.

## Reply by Jetson Nano · 2025-07-09 05:07:31 UTC (in reply to Jetson Nano)

@Eric-Katzfey 
I tested what you asked me, since i am using external Fc and doodle labs, I am not able to assign AUX to any button, is there any work around on how to assign AUX

## Reply by Jetson Nano · 2025-07-09 10:32:57 UTC (in reply to Jetson Nano)

@Eric-Katzfey @Alex-Kushleyev 
hey guys, just a random thought, can I enable turtle mode through a button instead of taking AUX 1 into consideration. just a thought, any guidance and help would be greatly appreciated.

## Reply by Eric Katzfey (ModalAI staff) · 2025-07-09 15:52:35 UTC (in reply to Jetson Nano)

@Jetson-Nano What do you see if you go to the MAVLink console in QGC and look at the manual_control_setpoint topic? (`listener manual_control_setpoint`)?

## Reply by Eric Katzfey (ModalAI staff) · 2025-07-09 15:56:47 UTC (in reply to Eric Katzfey)

@Eric-Katzfey Also, there is a parameter called VOXL_ESC_T_ON. How is that set? It determines which button will be used for turtle mode. The code is here: https://github.com/modalai/px4-firmware/blob/ea098200d3c09b7af548bf7be29fda245fad8f17/src/modules/mavlink/mavlink_receiver.cpp#L2083

## Reply by Jetson Nano · 2025-07-14 11:13:45 UTC (in reply to Eric Katzfey)

@Eric-Katzfey 
This is the output i am getting while running ```listener manual_control_setpoint```
``` 
NuttShell (NSH) NuttX-11.0.0
nsh> listener manual_control_setpoint

TOPIC: manual_control_setpoint
 manual_control_setpoint
    timestamp: 438754659 (0.033455 seconds ago)
    timestamp_sample: 438754653 (6 us before timestamp)
    roll: 0.00000
    pitch: 0.00000
    yaw: 0.00000
    throttle: 0.00000
    flaps: 0.00000
    aux1: 0.00000
    aux2: 0.00000
    aux3: 0.00000
    aux4: 0.00000
    aux5: 0.00000
    aux6: 0.00000
    buttons: 0
    valid: True
    data_source: 2
    sticks_moving: False

nsh> listener manual_control_setpoint

TOPIC: manual_control_setpoint
 manual_control_setpoint
    timestamp: 446282690 (0.039850 seconds ago)
    timestamp_sample: 446282683 (7 us before timestamp)
    roll: 0.00000
    pitch: 0.00000
    yaw: 0.00000
    throttle: 0.00000
    flaps: 0.00000
    aux1: 0.00000
    aux2: 0.00000
    aux3: 0.00000
    aux4: 0.00000
    aux5: 0.00000
    aux6: 0.00000
    buttons: 0
    valid: True
    data_source: 2
    sticks_moving: False
```

## Reply by Jetson Nano · 2025-07-14 11:14:02 UTC (in reply to Eric Katzfey)

@Eric-Katzfey I am not able to see the option you have mentioned ```VOXL_ESC_T_ON```

## Reply by Eric Katzfey (ModalAI staff) · 2025-07-14 15:47:54 UTC (in reply to Jetson Nano)

@Jetson-Nano said in [doodle labs and joystick setup](/post/23065):
>  I am not able to see the option you have mentioned VOXL_ESC_T_ON

In the Mavlink console what do you see with "param show VOXL_ESC_*"?

And what about "ver all"?

## Reply by Eric Katzfey (ModalAI staff) · 2025-07-14 15:48:22 UTC (in reply to Jetson Nano)

@Jetson-Nano said in [doodle labs and joystick setup](/post/23064):
> This is the output i am getting while running listener manual_control_setpoint

What is the parameter COM_RC_IN_MODE set to?

## Reply by Jetson Nano · 2025-07-16 14:04:53 UTC (in reply to Eric Katzfey)

@Eric-Katzfey  COM_RC_IN_MODE is set to joystick only

## Reply by Jetson Nano · 2025-08-01 06:43:51 UTC (in reply to Eric Katzfey)

@Eric-Katzfey Hey hope you are doing fine, I checked the code and various branches of PX4, I noticed I was able to see the parameter ```VOXL_ESC_T_ON``` but the option only showcased button 1 for assignment . what to do if I want to assign another button.

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-01 20:46:48 UTC (in reply to Jetson Nano)

@Jetson-Nano You set that parameter to match the button you want to use.

## Reply by Jetson Nano · 2025-08-04 04:18:36 UTC (in reply to Eric Katzfey)

@Eric-Katzfey Thank you for reverting back, The options only show one option button 1. I tested with button one but the drone was not taking in the command for enabling the turtle mode.
I want to know whether the code was tested out, so that I can be sure about not missing out on any parameter or setup

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-04 15:45:00 UTC (in reply to Jetson Nano)

@Jetson-Nano It's a parameter that you can set to any number you want. In QGC you can look at the joysticks tab and see as you press each button which number it is. Then set the parameter to that number.

## Reply by Jetson Nano · 2025-08-11 07:06:43 UTC (in reply to Eric Katzfey)

@Eric-Katzfey I am not able to setup multiple buttons, it is only showing one option of ```button 1```.
Also after assigning the button one and trying to enable and use turtle mode, it is not working. 
Is there any particular version of px4  that this works with. 
My setup is VOXL 2 ---> TELEM 1 --> Flight core v2 --> TELEM 2 --> FPV ESC 
In normal setup the motors are working and rotating, but when I try to keep the drone upside down and enable the turtle mode , the QGC is still showing ```not ready``` message. Also I am not able to ARM because of this.
Is there anything I am missing out?

## Reply by Jetson Nano · 2025-08-13 14:52:39 UTC (in reply to Jetson Nano)

@Eric-Katzfey could you please help me out here

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-13 18:02:14 UTC (in reply to Jetson Nano)

@Jetson-Nano Let's try to walk through this and see where it is going wrong. Please provide answers to all of the following questions. Go to the joystick tab in QGC and press the button on the joystick that you want to use for turtle mode. Which number lights up when you press the button? Next, go to the MAVLink console and provide the output of these commands: `ver all`, `listener manual_control_setpoint`, `param show VOXL_ESC_MODE`, `param show VOXL_ESC_T_ON`, and `param show COM_RC_IN_MODE`. If VOXL_ESC_T_ON is not set to the number of the button you just discovered on the joystick tab then change it to the value you want. For example, by default VOXL_ESC_T_ON is set to 9. If you want to use button 10 instead then do `param set VOXL_ESC_T_ON 10`. If you had to change that parameter then reboot and verify that it is now set correctly. You should see the aux1 value in manual_control_setpoint change from 0.0 to 1.0 when you press the button that you have chosen. Can you verify that you are seeing that?

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-13 18:10:18 UTC (in reply to Jetson Nano)

@Jetson-Nano If all that seems to be working then press the turtle button and arm (with drone right side up, not upside down) and verify that with turtle mode enabled the propellers are spinning in the opposite direction and the drone won't lift off. Of course, you must be extremely careful when running this test!!! Make sure that the drone is in a location where it cannot cause damage or injure someone if it goes out of control. It would be best to completely remove the propellers and just verify that the motors are spinning in the opposite direction of normal flight.

## Reply by Jetson Nano · 2025-08-14 09:08:44 UTC (in reply to Eric Katzfey)

@Eric-Katzfey 
I followed the steps you suggested, i am attaching the Screenshots. I tried what you suggested the result is still the same, I am not able to arm the system. I tried with various options for ```VOXL_ESC_MODE```, still the same.

![Screenshot from 2025-08-14 14-29-56.png](https://forum.modalai.com/assets/uploads/files/1755162271699-screenshot-from-2025-08-14-14-29-56.png)

I clicked the assigned button here, AUX 1 values are changing but only when i  keep the ```voxl_ESC_MODE to UART passthorugh```

![Screenshot from 2025-08-14 14-30-08.png](https://forum.modalai.com/assets/uploads/files/1755162266678-screenshot-from-2025-08-14-14-30-08.png) 

![Screenshot from 2025-08-14 14-19-46.png](https://forum.modalai.com/assets/uploads/files/1755162367055-screenshot-from-2025-08-14-14-19-46.png) 

![Screenshot from 2025-08-14 14-19-43.png](https://forum.modalai.com/assets/uploads/files/1755162358189-screenshot-from-2025-08-14-14-19-43.png) 

![Screenshot from 2025-08-14 14-36-35.png](https://forum.modalai.com/assets/uploads/files/1755162406291-screenshot-from-2025-08-14-14-36-35.png)

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-14 16:45:33 UTC (in reply to Jetson Nano)

@Jetson-Nano Here are the steps I am using for testing. Here are my VOXL_ESC parameters:
![6d7b7752-038a-4078-8455-ce8b3f4e46dc-image.png](https://forum.modalai.com/assets/uploads/files/1755189235667-6d7b7752-038a-4078-8455-ce8b3f4e46dc-image.png) 
My VOXL_ESC_BAUD is set non-standard because I am using an ESC simulator. I have flight mode set to altitude mode. If I check the ESC commands I see no output:
![c4703501-1b3d-4d39-aeec-43e3e5cf3c10-image.png](https://forum.modalai.com/assets/uploads/files/1755189371505-c4703501-1b3d-4d39-aeec-43e3e5cf3c10-image.png) 
Then I arm and check ESC commands and see values:
![ecde7a30-8903-4116-819c-abd998b4d8b1-image.png](https://forum.modalai.com/assets/uploads/files/1755189617621-ecde7a30-8903-4116-819c-abd998b4d8b1-image.png) 
Then I disarm, press button 9, arm, move both sticks around and see these ESC commands:
![c0b19cce-bed1-4358-96c8-87595e4dd924-image.png](https://forum.modalai.com/assets/uploads/files/1755189807788-c0b19cce-bed1-4358-96c8-87595e4dd924-image.png) 
Notice that most motors are 0 except for 1 or 2 and are of opposite sign than normal. In this case pitch was centered and roll was full right. Hope this helps.

## Reply by Jetson Nano · 2025-08-15 04:07:32 UTC (in reply to Eric Katzfey)

@Eric-Katzfey 
Thank you for reverting back, I will check these out and get back to you. Also I will flash the FC once more and see if I have any luck.
I would like to know which is the version of PX4 you are using.

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-15 15:26:36 UTC (in reply to Jetson Nano)

@Jetson-Nano I was using v1.14.0-8.106.1

## Reply by Jetson Nano · 2025-08-22 06:37:14 UTC (in reply to Eric Katzfey)

Hey @Eric-Katzfey ,
sorry for the late reply, I tested it out by keeping the drone straight and enabling turtle mode, it is working. I should also press both the turtle mode button and arm button together to get it working.
The major issue still is there, When i try to arm the system by keeping it facing down or in an angle, the drone is not accepting the command and is not arming.
I am attaching screenshot for your reference.
Please help me out here. I am using the px4 firmware version 1.14.0 dev 8.104.4
Since it is working when I keep it straight and arm, I feel there is something wrong in the logic somewhere or in the parameters.

![Screenshot from 2025-08-22 12-00-46.png](https://forum.modalai.com/assets/uploads/files/1755844506169-screenshot-from-2025-08-22-12-00-46.png)

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-22 15:51:29 UTC (in reply to Jetson Nano)

@Jetson-Nano I'm sure it is related to your parameter settings. Take a look at our parameter settings for FPV drones and compare against what you are using: https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-px4-params/-/blob/dev/params/v1.14/platforms/D0008_v5.params?ref_type=heads

## Reply by Jetson Nano · 2025-08-23 06:06:38 UTC (in reply to Eric Katzfey)

@Eric-Katzfey Thank you for reverting back, I am able to get the turtle mode working now, The error was due to the safety parameters, once i changed it to the FPV setup, it was working.

Once again thank you for the support. It was really helpful.
