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

    Spektrum RC Bind Issues after SDK Update

    Sentinel
    1
    2
    39
    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.
    • J
      jmltt
      last edited by

      I've got an older Sentinel that shipped with Spektrum RC satellite receiver and some SDK pre v1.0.0 (I think it's SDK v0.8). It hasn't been used since we got it and I was setting up for first flight. I flashed the lastest SDK (1.6.3) and went through the set up procedure, calibrated it and flew it with the same Spektrum Transmitter I've used for some other Sentinels we've been flying more regularly.

      I noticed after power cycling the vehicle and transmitter (Spektrum SPM9900), the Spektrum receiver and transmitter appear to bind automatically as expected (solid orange light on transmitter and receiver light up at same time when powered on), but px4 never gets the RC data (px4-listener input_rc returns never published) until I force them to rebind by running voxl-bind-spektrum -s and setting the transmitter in bind mode.

      Does anyone know what could be causing this? I don't know enough about how the spektrum bind board (M0094) works, but reading through voxl-spektrum-bind.c I'm guessing this has something to do with the GPIO pin direction settings. Did the default settings change between SDK versions? I don't have this problem with other Sentinels running SDK 1.1

      1 Reply Last reply Reply Quote 0
      • J
        jmltt
        last edited by jmltt

        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?

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