Paparazzi Center/Evolutions

From PaparazziUAV
Jump to navigation Jump to search


Hello ! I'm an intern student for 5 months at the ENAC UAV Lab (February to June 2016). My mission is to conceive a new HMI for the Paparazzi Center in Python/Qt to make it more intuitive and maintainable. This page is dedicated to explanations and talks about how could be the brand-new Paparazzi Center...

Current Paparazzi Center

UI Taxonomy

Paparazzicenter screencap 160315.png Link to Current Paparazzi Center Wiki Page

Menu Bar

  • A/C (New, Copy, Delete, Save, New Build Target, Quit)
  • Session (New, Save, Delete)
  • Tools (Launchable/Executable Tools: App Server, GCS, etc....)
  • View (Fullscreen)
  • Help (About, Get Help, Version)


  • Aircraft Selection (List of Aircrafts)
  • Aircraft Reload XML (conf.xml)
  • Aircraft Color Selection (Color Chooser)
  • Airframe Selection/Editor
  • Flight Plan Selection/Editor
  • Settings Manager(Add, Edit, Remove)
  • Modules Manager
  • Radio Selection/Editor
  • Telemetry Selection/Editor


  • Target Selection (Target List: AP, NPS, etc....)
  • Target Operation (Clean, Build)
  • Flash Mode Selection
  • Flash Operation (Upload)


  • Session Selection (List of Sessions)
  • Session Operation (Execute, Stop/Remove All Processes)
  • Process List Manager (Command Line, Start, Stop, Remove)


  • Status Window Console
  • Status Bar

New Paparazzi Center


The new HMI of the Paparazzi Center must be conceived to be the most intuitive and maintainable as possible. In order to do that, a few things have to be redesigned...


Main organization

  1. Be usable on a small laptop or tablet
  2. Be easily manipulable
  3. Reach quickly any step of use
  4. Display always all the useful informations

Terms and data management

  1. Be understandable with a minimal knowledge or learning phase
  2. Respect the old input and output XML files formats

High level functions

  1. Form an assembly of components to build a configuration
  2. Choose quickly and easily the desired components in well defined categories
  3. Check that the configuration makes sense
  4. Gather configurations (set)
  5. Build the configuration for a specific use
  6. Flash the code into a real device
  7. Launch programs individually
  8. Launch programs together to realize a mission (session)
  9. Save/edit/remove a configuration, a set of configurations and a session

UI Taxonomy

New Paparazzi Center HMI

Menu & Bottom bars

  • Menu : Active mode (Standard/Developer), Set cache to current Pprz Center state, Restore default Pprz Center state, Settings, Quit
  • Set : Set manager
  • Configuration : New empty configuration, Save configuration as, Save, Remove
  • Session : New empty session, Save session as, Save, Remove
  • Tools : All existing tools (GCS, Server, etc.)
  • View : Full screen
  • Help : Tutorials, Credits
  • Home : Value of the current Paparazzi UAV home directory (click to open a terminal here).
  • Mode : Switch between Standard and Developer modes.
  • Versions : Values of the run and build Paparazzi UAV installed versions.

Equipment tab

Equipment tab
New equipment file chooser
  • This tab is dedicated to the management of the current configuration equipments.
  • On the right is the current equipment of the configuration (Airframe, Settings/Modules, Flight Plan, Radio, Telemetry).
  • In the middle are 3 buttons : Add (External file chooser for now), Remove & Edit (are available if item selected in the current equipment).
  • On the left will be an interactive tree (continuous search, drag & drop).
  • On the right corner is a quick build button : clean and build the current configuration with the selected target.

Build/Flash tab

Clean process succeeded
  • The first part of this tab is dedicated to cleaning and building the current configuration.
  • The clean button starts a clean process and displays the result of this process in the line below.
Build process running
Build process succeeded
  • The result line is used as a progress bar as well : it's moving at each line of log emitted by the process (going to the right and then to the left).
  • The build button starts a build process and displays the result of this process in the line below.
  • The number of info/warnings/errors found in logs is displayed in real time at the bottom of the tab.
  • The show console button is a shortcut to reach the last tab easily (display console with colors).

Run session tab

Simulation session running
  • A session is composed of programs with options for each of them.
  • A program can be individually selected and then started or stopped.
  • Programs can be started all together (those not running yet only) and stopped all together (those running only).
Programs and options management
  • A program can be added from the tools menu (for now, before a sessions manager).
  • Remove program button : program can be removed if selected.
  • Remove option button : option can be removed if selected.
  • Add option button : empty option can be added.
  • Options can be edited by clicking on them and then pressing enter.

Console tab

Extract of the output console with application logs only
Extract of the output console during a build process
  • All the logs received by the application (its or external) can be displayed in the console with colors.
  • The application logs are displayed without background and with the text colored (blue -> info, red -> errors) .
  • The processes logs are displayed with a black text with a colored background (green -> info, yellow -> warning, red -> error).
  • The processes logs filters can be set by checking the check-boxes. Radio-buttons are just pre-selections of check states.
  • The application logs can't be filtered yet (but as the level of logs can be set, it will be possible).

Conception and models

Click here to see my first propositions of the new Paparazzi Center HMI (Git repository).

Source code

Click here to get the current version of the new Paparazzi Center HMI (Git repository).