AeroTune is a feel-based FPV drone tuning assistant that turns Blackbox CSV logs into clear, pilot-readable PID recommendations.
Instead of overwhelming pilots with raw graphs and confusing numbers, AeroTune translates flight-log behavior into simple tuning decisions:
What is wrong?
What PID term should change?
Why should it change?
What should I test next?
AeroTune is designed as a local-first tool.
FPV Blackbox CSV logs can be large, especially when recording longer flights or high-rate gyro data. Running AeroTune locally avoids common web-hosting issues such as upload limits, request timeouts, slow processing, and failed large-file uploads.
Local use also keeps flight logs on the pilot’s own machine instead of forcing uploads to a server.
For this stage of the project, local-first development keeps AeroTune practical, fast, and easier to maintain as a solo-built tool. The focus is on improving the analyzer logic, CSV optimizer, and tuning recommendations before building a more complex hosted interface.
- Upload FPV Blackbox CSV logs
- Analyze roll, pitch, and yaw independently
- Detect common tuning problems
- Get simple PID direction changes instead of fake final PID numbers
- Built-in CSV optimizer for messy or oversized logs
- Pilot-focused recommendations with confidence reasons
- Clean local web UI
AeroTune currently identifies:
- Clean tune
- Propwash / bounceback
- High-frequency noise
- Low-frequency wobble / bounce
- Mid-frequency vibration
- High-throttle oscillation
- Weak hold / drift
- Poor tracking
- Slow stick response
Example output:
ROLL: Propwash detected
Change: D up slightly, P down slightly
Why: D helps damp dirty-air recovery, but motor heat must be checked.
The built-in optimizer converts compatible logs into a standard AeroTune-ready format:
time, gyro_x, gyro_y, gyro_z, setpoint_roll, setpoint_pitch, setpoint_yaw, throttle
This helps keep analysis consistent across logs with different column names or large exported files.
FPV tuning is hard because raw data does not always explain flight feel.
AeroTune bridges the gap between:
Blackbox data → pilot intuition → safe tuning decision
It is designed for pilots building or tuning drones with mixed parts, DIY frames, different prop sizes, noisy motors, imperfect filtering, or custom freestyle/cinematic goals.
Conservative tuning for smooth flight, lower heat risk, and stable behavior.
Sharper response and tighter stick feel.
Softer movement for smoother cinematic flying.
Clone the repo:
git clone https://github.com/bostromdev/AeroTune.git
cd AeroTuneInstall dependencies:
python3 -m pip install -r requirements.txt
python3 -m pip install python-multipartRun locally:
python3 -m uvicorn main:app --reloadOpen:
http://127.0.0.1:8000
- Python
- FastAPI
- Pandas
- NumPy
- HTML
- CSS
- JavaScript
- FPV Blackbox CSV exports
AeroTune/
├── app/
│ ├── analyzer.py
│ ├── parser.py
│ ├── main.py
│ └── log_validator.py
├── static/
│ └── index.html
├── assets/
│ └── screenshots/
├── sources.md
├── RELEASE_NOTES.md
├── requirements.txt
└── README.md
AeroTune tuning logic is based on established FPV PID tuning principles:
- P controls tracking and sharpness
- I improves attitude hold
- D adds damping for propwash and bounceback but can increase heat/noise
- Feedforward improves stick response
- Yaw D is normally kept at 0
See:
sources.md
AeroTune gives conservative tuning recommendations, not guaranteed final PID values.
Always:
- Make small changes
- Test one change at a time
- Check motor temperature after D-term changes
- Fix mechanical vibration before tuning around it
Planned future improvements:
- Before / after tune comparison
- PSD band-energy analysis
- Flight-feel prediction
- Better mobile UI
- Community log examples
- iOS app concept
Built by Christopher Bostrom
GitHub: bostromdev
AeroTune helps FPV pilots stop guessing and start making data-backed tuning decisions.


