Rover Start/Stop Switch

Morning,

I upgraded my rover to 4.1.5 - it was on some very old 3.X version before - and it seems like the functionality of my start/stop switch for auto movement has gone away. Mission Planner emits a GCS message say “AUTO Trigger Switch On/Off” (something around those lines) - but the rover just continues to move along in AUTO mode regardless of the switch’s state.

Anyone have any luck with this feature on a semi-recent version of ArduRover?

No idea what that feature was, but all you have to do is switch out of AUTO mode.

You can set an RCx_OPTION to 54 if you want a quick toggle to hold mode.

Hey! The features is documented here:

https://ardupilot.org/rover/docs/startstop-switch.html

Basically we don’t have a transmitter or GCS connected.

If this isn’t working - no worries. I will just write up a quick Lua script.

Do you know if there is anyway to sense the input of a switch via Lua like this feature was somehow doing?

Well I assume it should work as intended. But perhaps you have another problem that is keeping it from entering AUTO - a failsafe of any sort.

The auto mission works - its just that the start/stop switch does not disable power to the motors (like described in the Wiki). I had it working on an older firmware version - updated to 4.1.5 - now it is no longer working.

Here are the messages received when I move the switch:

image

However - throttle remains regardless of the AUTO trigger state. Manually switching to HOLD does stop the motors.

Sounds like a possible reason to raise a GitHub issue.

Sounds good - do you know a way to read GCS messages in Lua? I was thinking I could write a quick fix for now by just reading GCS message and waiting for that message to appear - then triggering AUTO mode.

You can’t read them, only send them. What’s the condition you’re waiting for? Just that the switch has been flipped?

So basically I am deploying this rover from a drone (winching it down). When the rover hits the ground it flips a switch - when that happens it should begin a pre-loaded auto mission. So basically during flight I have it in hold mode - and then when it hits the ground it flicks the switch and is put into AUTO mode.

I have played around with having a breach height via Lua.

Once the vehicle has gone above 25’ it goes into a function where it is constantly checking to see if it has been deployed. Once that altitude returns below 25’ it puts the rover into AUTO. I never go below 100’ during my flight - so I think 25’ is a safe measurement that won’t accidently breach.

But - I would like to continue with use of this switch if possible.

Skip the start/stop switch feature entirely if it isn’t working correctly.

Do it all in Lua. Poll for the switch position. On switch change set AUTO or HOLD as appropriate.

Yes - that is what I am looking at now. Just don’t know how to poll for the switch position in Lua… Somehow ArduRover knows so it must be somewhere. I have the switch hooked up to AUXOUT1 on Cube - and not seeing anything change on CH9_OUT when the switch triggers.

You should see servo 9 change.

I think you’re looking for the button API. Example here:

Documentation:

https://ardupilot.org/rover/docs/common-buttons.html

1 Like

Great - thank you so much!

Looks like I might not even need Lua. Seems like I can have the BTN_FUNCx set to AUTO mode.

Just wanted to touch back on this and state that the BTN setup worked!

I don’t think we need to fix the Start/Stop switch functionality since BTN replaces it with even more features!

1 Like