Future features and enhancements for ArduDeck.
Priority: P1 Complexity: Medium Target: Modes Wizard + Rates Tab
Pilots often want different stick sensitivity for different situations:
- Learning: Slow, forgiving response
- Freestyle: Balanced, controlled but responsive
- Racing: Fast, snappy response
- Cinematic: Ultra-smooth for filming
Currently, rates are a single profile. Changing them requires landing and connecting to configurator.
Allow users to configure 2-3 rate profiles and switch between them in-flight using an AUX switch.
Step 1: Choose Your Profiles
Which flying styles do you use?
[Smooth] [Normal] [Fast]
Turtle icon Gauge icon Rocket icon
"Slow & steady" "Balanced feel" "Snappy response"
Perfect for Good for most For experienced
filming flying pilots
Step 2: Assign a Switch
Which switch should change your rates?
[Switch A] [Switch B] [Switch C] [Switch D]
AUX1 AUX2 AUX3 AUX4
Tip: Use a 3-position switch for 3 profiles,
or a 2-position switch for 2 profiles.
Step 3: Test It
Flip your switch to see which profile activates:
[====|====|====] <- Switch position indicator
LOW MID HIGH
Current: [SMOOTH] - Slow, cinematic movements
Rate curve visualization showing gentle curve
iNav:
rateprofile <0-2>via CLI to select active profile- MSP2 0x2007/0x2008 for read/write rates
- Adjustment function for in-flight switching (needs research)
Betaflight:
MSP_SET_ADJUSTMENT_RANGEfor AUX-based profile switching- Adjustment ID for rate profile selection
- Multiple rate profiles supported natively
interface RateProfileState {
// Profile data
profiles: RateProfile[]; // 2-3 profiles
activeProfileIndex: number; // Currently selected
// Switch assignment
auxChannel: number; // Which AUX controls switching
switchPositions: number[]; // PWM ranges for each profile
// Live preview
rcChannels: number[]; // For showing active profile
// Presets
presets: RatePreset[]; // Smooth, Normal, Fast, etc.
}
interface RateProfile {
id: string;
name: string; // "Smooth", "Normal", "Fast"
icon: LucideIcon;
description: string;
rates: RatesConfig;
}- RateProfileWizard - Step-by-step setup (in Modes Wizard or standalone)
- RateProfileSelector - Quick switcher in Rates Tab header
- RateProfileCard - Visual card showing profile with rate curve
- RateCurvePreview - Live visualization of rate response
| Preset | Roll/Pitch Rate | Expo | Feel |
|---|---|---|---|
| Smooth | 200 | 40 | Slow, cinematic, very forgiving |
| Normal | 400 | 25 | Balanced, good for most flying |
| Freestyle | 600 | 15 | Responsive, good for tricks |
| Racing | 800 | 5 | Fast, linear, snappy |
- "Smooth" not "Low rates with high expo"
- "How fast your drone spins" not "Angular velocity"
- "Flip your switch" not "Change AUX channel PWM value"
- Show the feel, not the numbers
| File | Changes |
|---|---|
stores/rate-profile-store.ts |
New store for profile state |
MspConfigView.tsx |
Add profile selector to RatesTab |
msp-handlers.ts |
Add profile switching MSP calls |
modes-wizard-store.ts |
Optional: integrate with modes wizard |
rate-presets.ts |
New file for beginner presets |
- Does iNav support adjustment functions for rate profile switching?
- Should this be part of Modes Wizard or a separate Rates Wizard?
- How many profiles to support? (2 vs 3)
- Should we show rate curves or simplified "feel" indicators?
(Add future features here)
Last updated: 2025-01-19