# GPIO on DSP?

Source: https://forum.modalai.com/topic/4749/gpio-on-dsp
Category: VOXL 2 and VOXL 2 Mini (https://forum.modalai.com/category/26/voxl-2-and-voxl-2-mini)
Tags: voxl-2
Posted: 2025-09-18 15:38:11 UTC by czarsimon
Replies: 7 · Views: 2158

## czarsimon · 2025-09-18 15:38:11 UTC

Hello, in the documentation for the VOXL 2 connector J19 pin 9 is listed as a GPIO, the other pins are connected to the SLPI/DSP, is the GPIO connected to the DSP as well? How can it be controlled from within the DSP? Are there any other pins that can be used as GPIO and controlled from the DSP/PX4? Thank you

## Reply by Vinny (ModalAI staff) · 2025-09-18 23:41:23 UTC

Hi @czarsimon 
J10 pin 9 is a Voltage for Spektrum Style RC modules that require a power ON/OFF/ON sequence to bind.
GPIO_159 is the GPIO that enables this feature. If held static ON, this is a reverse protected 3.3V pin, up to 1A of support.

![6ca43c92-9147-4f70-836d-093ca968c2a7-image.png](https://forum.modalai.com/assets/uploads/files/1758238648668-6ca43c92-9147-4f70-836d-093ca968c2a7-image.png) 
![83491011-d3ab-4314-8704-5bb92ddfe9d3-image.png](https://forum.modalai.com/assets/uploads/files/1758238843641-83491011-d3ab-4314-8704-5bb92ddfe9d3-image.png) 

All Board-to-Cable (JST's) connectors are on the DSP since they are purpose designed for Flight Control features.
You'll need to use the Board-to-Board connectors (J3 and J5) for Apps GPIOs.

https://docs.modalai.com/voxl2-connectors/#j3---legacy-board-to-board-connector-b2b

https://docs.modalai.com/voxl2-connectors/#j5---high-speed-board-to-board-connector-hsb2b

Hope this helps!

## Reply by jmltt · 2026-06-09 19:54:36 UTC (in reply to Vinny)

@Vinny Can you explain how the J10/J19, M0094 and the spektrum receiver are meant to work together?

I have a dev drone w/ VOXL2 & spektrum satellite receiver.  After flashing the latest SDK (1.6.3) the receiver and transmitter stay bound but I have to force a rebind to get RC data coming in to PX4 every time I power cycle the drone.  No issue up to SDK 1.1.2 and I noticed the way kernel GPIO initialization is handled changed in 1.1.3.  More details here:

https://forum.modalai.com/topic/5243/spektrum-rc-bind-issues-after-sdk-update

I'm guessing this has to do with GPIO pin settings for pins 46, 67 or 159 being set wrong on boot, but I don't know enough about the hardware to understand what's going on. If I have a spektrum receiver on a dev drone w/ M0054 that is already bound to a transmitter, what should the GPIO pin settings be on boot to enable rc data flow to px4?

## Reply by jmltt · 2026-06-12 17:22:49 UTC (in reply to jmltt)

@jmltt nvm solved - GPIO pin 46 needs to have direction set to in or else data won't get through for some reason

one of the more recent voxl2 kernel board support package updates in the system image went from initializing GPIO46 as input to just not initializing it at all

## Reply by tom (ModalAI staff) · 2026-06-12 19:02:28 UTC (in reply to jmltt)

@jmltt The last ModalAI supported SDK on the Sentinel platform is SDK 1.5.0. Which doesn't mean that you won't success with newer SDKs, we just haven't tested with it.

## Reply by jmltt · 2026-06-15 14:57:51 UTC (in reply to tom)

@tom assuming this reply was accidental.  I was asking about how the M0094 worked and required GPIO pin settings for rc data flow

## Reply by tom (ModalAI staff) · 2026-06-16 03:29:28 UTC (in reply to jmltt)

@jmltt Apologies, context was lost. For clarity, sentinel was the last dev drone in which spektrum rc was supported and SDK 1.5.0 was the last SDK tested on said platform. Later SDKs have different gpio defaults which is why you're running into this issue

## Reply by jmltt · 2026-06-16 15:36:36 UTC (in reply to tom)

@tom got it, I think you indirectly answered my question by giving me the last valid configuration.  Am I looking in the right place?:

voxl sdk 1.5.0 -> system image 1.8.04 -> recipes-kernel/linux-msm/files/dts/common/m0xxx-modalai-gpio.dtsi :

```
&soc {
	voxl_gpio {
		...
		
		modalai,gpio-init-output-high = <0 1 53 56 57 85 86 87 88 89 124 152 157 159>;
		modalai,**gpio-init-output-low** = <36 37 **46** 54 55 67 82 83 84 131 153 154 155>;
		modalai,gpio-init-input = <48 49 50 51 52 110 111 112 113 114>;
		
		status = "ok";
	};

	...
};
```

So settings for gpio pin 46 on sentinel w/ spektrum receiver should be direction:out, value:0 assuming they aren't overwritten somewhere else.
