Skip to content

Support for different boards and airframes #16

@Cyberslug

Description

@Cyberslug

Hi Paul, as you may have guessed what is driving my suggestions are the different choices I have made for radio, ESP32-S3 boards and recently aircraft type. My latest suggestions for change are the following. I have actually implemented the first three of these and can create a PR if this interests you.

  1. Add the ability to define the pins used in a central place. When looking at the various arduino pin definition files for example XIAO ESP32-S3 and WAVESHARE ESP32-S3 I notice that notation such as D0, D1 etc map to different GPIO pins on the ESP32-S3. This means that selecting D0 on one board is a completely different pin on another board. The pins are defined for each modelType for servos and motors and in config for auxiliary things, this could lead to errors when adopting a new board type. I suggest placing all the pin definitions in a separate file that is included as part of the config class.
  2. Add the ability to swap red and green for the inbuilt Neopixel. I am using a Waveshare ESP32-S3 zero board (or a clone thereof - not sure) and I notice that the onboard LED appears to use GRB instead of RGB for setting the colour. The fix is to optionally swap red and green in the call to rgbLedWrite. I have come across this before in other projects. I suggest adding a config option "SWAP_NEOPIXEL_RED_GREEN".
  3. Add the ability to power on (and hence calibrate) in an attitude other than flying level. My test plane (as are almost all my planes) is a tail dragger. The current calibration assumes that the plane is powered on in its flying attitude. I suggest adding pitch and roll trim to the config to allow for planes to be powered standing on their undercarriages. The roll trim is just for completeness.
  4. Add pass through for additional channels. This is just an idea but my test aircraft is a little foamy with retracts. While I haven't looked at doing this it might be nice to add the ability to allow additional channels to pass through and be used for things like the retracts. Indeed this might actually already be possible. I also know there is a danger in making things difficult to understand here but it would be nice.

Just thoughts and changes I am making for my personal use. Just let me know if I am getting annoying.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions