Collection of preconfigured presets for OpenIPC FPV Configurator application.
Adding a new preset to this repository is straightforward. Follow these steps to contribute your FPV camera configuration:
- Click the "Fork" button at the top right of this repository
- Clone your forked repository to your local machine:
git clone https://github.com/YOUR-USERNAME/fpv-presets.git cd fpv-presets
- Run the provided creation script which will guide you through the process:
This interactive script will:
./create_preset.sh
- Ask for your preset details
- Create the necessary folder structure
- Generate a template
preset-config.yaml
file
-
Create a new folder inside the
presets
directory. Use a descriptive name for your preset:mkdir -p presets/my-awesome-preset
-
Inside your preset folder, create a
preset-config.yaml
file with the following structure:name: "My Awesome Preset" category: "Race" # Options: Race, Freestyle, Cinematic, Indoor, LongRange, etc. author: "Your Name" description: "A detailed description of what this preset is optimized for" status: "Official" # Options: Draft, Testing, Stable, Official (used by OpenIPC devs) tags: - mario - aio - daylight - lowlatency # Camera configuration settings files: majestic.yaml: nightMode: false bitrate: 4 wdr: false # Add all your camera configuration parameters here
-
Make sure to include all relevant parameters for your preset in the
files
section
- Test your preset with the OpenIPC FPV Configurator to ensure it works as expected
- Verify that your
preset-config.yaml
file is properly formatted and contains all necessary settings
-
Commit your changes:
git add presets/my-awesome-preset/ git commit -m "Add My Awesome Preset for XYZ camera" git push origin main
-
Go to the original repository and click "Pull Request"
-
Fill out the PR template with details about your preset
- The
PRESET_INDEX.yaml
file is automatically generated - don't modify it manually - Each preset must include a complete
preset-config.yaml
file - Make sure your preset has a unique and descriptive name
- Include as much detail as possible in the description to help users understand when to use your preset
Each preset is a self-contained folder under the presets/
directory. It includes:
preset-config.yaml
: Defines preset metadata, attributes, and modified files.- YAML configuration files (e.g.,
wfb.yaml
,majestic.yaml
). - Optional
sensor/
folder: Includes binary files likemilos-sensor.bin
.
Example Structure:
presets/
├── high_power_fpv/
│ ├── preset-config.yaml
│ ├── sensor/
│ └── milos-sensor.bin
The preset-config.yaml
file defines:
- Metadata:
name
,author
,description
, andcategory
. - Optional Sensor: Specifies a binary file (e.g.,
milos-sensor.bin
) to be transferred to the remote device. - Files: Specifies files and their key-value modifications.
Example:
name: "High Power FPV"
author: "OpenIPC"
description: "Optimized settings for high-power FPV."
sensor: "milos-sensor.bin"
files:
wfb.yaml:
wireless.txpower: "30"
wireless.channel: "161"
majestic.yaml:
fpv.enabled: "true"
system.logLevel: "info"
- The application scans the
presets/
directory. - It parses each
preset-config.yaml
to create aPreset
object. - File modifications are transformed into a bindable
ObservableCollection<FileModification>
for the UI.
What hppens when a preset is applied:
-
Sensor File Transfer:
- If a sensor is specified, it is transferred using SCP:
scp presets/high_power_fpv/sensor/milos-sensor.bin user@remote:/etc/sensors/milos-sensor.bin
- If a sensor is specified, it is transferred using SCP:
-
File Modifications:
- Each attribute in
files
is applied usingyaml-cli
:yaml-cli -i /etc/wfb.yaml "wireless.txpower" "30" yaml-cli -i /etc/wfb.yaml "wireless.channel" "161" yaml-cli -i /etc/majestic.yaml "fpv.enabled" "true" yaml-cli -i /etc/majestic.yaml "system.logLevel" "info"
- Each attribute in
-
Logs:
- Logs success or failure of sensor transfer and YAML modifications.
-
Preset List:
- Displays all available presets using a
ListBox
. - Users can select a preset by its name.
- Displays all available presets using a
-
Details Panel:
- Displays metadata (
Name
,Author
,Description
). - Lists file modifications and sensor file.
- Displays metadata (
-
"Apply Preset" Button:
- Applies the selected preset’s changes to the remote device.
- Button is enabled only if a preset is selected.
- Dynamic Preset Management:
- Add/remove presets by simply editing the
presets/
directory.
- Add/remove presets by simply editing the
- File Abstraction:
- Presets only define attributes; the app handles file locations.
- Sensor File Handling:
- Automatically transfers sensor binaries if specified.
- User-Friendly UI:
- Select a preset, view details, and apply it with a single click.
- Add capability for users to add their own repo's
- Save current settings to a file