Ok so I've been comparing the Sentinel I have on an older SDK with no issues after power cycling with the one I just updated to the latest SDK and I noticed for the sentinel on the older SDK (1.1.2), the /sys/class/gpio only has the following
voxl2:~$ ls /sys/class/gpio/
export gpiochip1076 gpiochip1094 unexport
gpiochip1072 gpiochip1085 gpiochip1100
where the sentinel with the latest SDK shows:
sentinel (D0006):~$ ls /sys/class/gpio/
export gpio1152/ gpio1184/ gpio1213/ gpio1259/
gpio1100/ gpio1153/ gpio1185/ gpio1214/ gpiochip1072/
gpio1101/ gpio1154/ gpio1186/ gpio1224/ gpiochip1076/
gpio1136/ gpio1155/ gpio1187/ gpio1231/ gpiochip1085/
gpio1137/ gpio1156/ gpio1188/ gpio1252/ gpiochip1094/
gpio1148/ gpio1157/ gpio1189/ gpio1253/ gpiochip1100/
gpio1149/ gpio1167/ gpio1210/ gpio1254/ unexport
gpio1150/ gpio1182/ gpio1211/ gpio1255/
gpio1151/ gpio1183/ gpio1212/ gpio1257/
Then I ran voxl-bind-spektrum -ds on both and get nearly identical output, the SDK 1.6.3 the spektrum bind GPIO pin for M0154 is set even thought I'm on M0054
SDK 1.6.3:
sentinel (D0006):~$ voxl-bind-spektrum -ds
Enabling debug mode
Writing 1259 to /sys/class/gpio/export for gpio pin 1259
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1259
Writing 1259 to /sys/class/gpio/export for gpio pin 1259
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1259
Writing 1259 to /sys/class/gpio/export for gpio pin 1259
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1259
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
number of pulses: 7
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1120
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing in to /sys/class/gpio/gpio%d/direction for gpio pin 1146
read 0 from gpio pin 1146
Writing 1120 to /sys/class/gpio/export for gpio pin 1120
Writing in to /sys/class/gpio/gpio%d/direction for gpio pin 1120
read 0 from gpio pin 1120
An orange light should now be flashing on your receiver
If so, your receiver is successfully in binding mode
SDK 1.1.2
voxl2:~$ voxl-bind-spektrum -ds
Enabling debug mode
Writing 1259 to /sys/class/gpio/export for gpio pin 1259
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1259
Writing 1259 to /sys/class/gpio/export for gpio pin 1259
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1259
Writing 1259 to /sys/class/gpio/export for gpio pin 1259
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1259
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
number of pulses: 7
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 1 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing 0 to /sys/class/gpio/gpio%d/value for gpio pin 1146
Writing 1146 to /sys/class/gpio/export for gpio pin 1146
Writing in to /sys/class/gpio/gpio%d/direction for gpio pin 1146
read 0 from gpio pin 1146
An orange light should now be flashing on your receiver
If so, your receiver is successfully in binding mode
Now the SDK1.1.2 quad shows:
voxl2:~$ ls /sys/class/gpio/
export gpio1259 gpiochip1076 gpiochip1094 unexport
gpio1146 gpiochip1072 gpiochip1085 gpiochip1100
And SDK1.6.3:
sentinel (D0006):~$ ls /sys/class/gpio/
export gpio1148 gpio1155 gpio1185 gpio1212 gpio1254 gpiochip1094
gpio1100 gpio1149 gpio1156 gpio1186 gpio1213 gpio1255 gpiochip1100
gpio1101 gpio1150 gpio1157 gpio1187 gpio1214 gpio1257 unexport
gpio1120 gpio1151 gpio1167 gpio1188 gpio1224 gpio1259
gpio1136 gpio1152 gpio1182 gpio1189 gpio1231 gpiochip1072
gpio1137 gpio1153 gpio1183 gpio1210 gpio1252 gpiochip1076
gpio1146 gpio1154 gpio1184 gpio1211 gpio1253 gpiochip1085
The pin settings after running voxl-spektrum-bind are the same for both vehicles in /sys/class/gpio/gpio1146 and /sys/class/gpio/gpio1259. After power cycling I'm right back where I started, but the settings for gpio1259 persist on the v1.6.3 quad.
I'm guessing I need to do something with the settings for gpio pin 46 or 159 to fix this. What should the gpio pin settings be on boot for a VOXL2 vehicle with an already bound spektrum receiver? Is the problem that /sys/class/gpio/gpio1259 settings persist between power cycles? Where are all these gpio settings getting written to on boot?