ICE_ENABLE in Ardurover

Hi - we have a 15HP petrol mower that can move on battery only, and has a starter motor.
We would like to electric motor to the start of the paddock, then fire up the ICE and blade for mowing, then shut down the motor after the cut. The ICE settings in plane look excellent - are they available in ROVER, and if not - any suggestions on how to script it easily - we will have RPM sensor, and relays for start and stop. Thanks in advance, Paul.

Figured i’d give the custom build server a crack - what an excellent tool. It allowed me to add ICE and inparticular “internal combustion engine support” into the ROVER build.
per the log Enable Internal Combustion Engine support
Unfortunately in the optimise phase it removed "
per the log “Removing AP_ICENGINE_ENABLED
Feels like im pushing up the wrong tree…

Is there enough support for ICE engine management in ROVER ??
I could script this up, but hoping not to duplicate the ICE functionality in PLANE. TIA.

If you are comfortable with setting up a build environment and have at least a passing understanding of C++, look through the source for references to AP_ICENGINE_ENABLED and add the appropriate flags/calls in the Rover libraries.

At a glance, it appears that all of the underpinnings are there to make it work without a major overhaul of Rover.

As an example of how easy it might be to incorporate a feature from Copter/Plane to Rover, have a look at PR 21115 where I only needed to add a couple of common sense definitions and conditions to allow a previously unavailable Lua binding. ICE support may prove more challenging, but perhaps not by much.

You might be interested to know also that I added onboard FFT and harmonic notch support to Rover in a similar fashion, mostly as a minor experiment to see how harmonic filtering might help Rover tuning. Turns out, at least for the testing I did, it doesn’t really have a major effect, but there is an added benefit that I just discovered:

You can use RPM1_TYPE=4 and use the onboard FFT as a synthetic RPM sensor. I just tested on my mower, and it looks pretty good as an RPM source that requires no additional wiring. There’s even a scale factor that can be applied if the dominant frequency peak is a multiple of engine RPM. Only works on Rover 4.3+ at the moment and likely needs an F7 or H7 processor (I had to increase the FFT window to 256 for reliable output).