What's Changed
After a long beta cycle (almost 4 months 😮💨) we are finally releasing the new Stable version of Cockpit, and this is our biggest release so far, by far!
Our goal was to improve stability and performance as much as we could, but that didn't stop us from adding some cool new features as well. This version was tested extensively by our development team as well as by Blue Robotics' internal test team.
Our beta releases are tested on the PR level, while for the stable releases we test the entire application with a pre-defined set of cases and procedures. That means you can always count on the stable releases to provide a robust experience, while still being able to try out new features and improvements in the betas.
This was the first stable release to use the new testing procedures, and it took a little more than what we were aiming initially. You can expect the next ones to be released at least in a monthly basis, while the betas will keep being released as needed, usually once or twice a week.
We trully believe that this is the best version of Cockpit so far and we hope you enjoy it as much as we do. Happy piloting :)
Known issues
- Processing long/large videos can still fail as memory-usage grows proportionally. For the time we recommend you to stick with smaller recordings or follow one of the workarounds listed here. We are working on a definitive solution to be merged in the next weeks.
- Conflict resolutions on the settings synchronization system are still below expectations. We already have a solution for it that was approved and is going to be released in the next beta.
New features
- Add support for deadband calibration and exponential scaling on the joystick by @rafaellehmkuhl in #1854
- Automatically arm and change mode to "guided" when user requests a GoTo command by @rafaellehmkuhl in #1899
- Add Points of Interest (PoI) feature to the maps by @rafaellehmkuhl in #1906
- Allow disabling one or more joysticks by @rafaellehmkuhl in #1874
- Add option to delete users from BlueOS by @ArturoManzoli in #1847
- Add splash screen on Cockpit boot by @ArturoManzoli in #1866
- Disable joystick by default if there are other GCSs already controlling the vehicle by @rafaellehmkuhl in #1908
- Add recording toggle functionality by @rafaellehmkuhl in #1881
- Add initial implementation of the Pirate Mode by @rafaellehmkuhl in #1912
- Allow setting the frequency for individual MAVLink messages by @rafaellehmkuhl in #1858
- Add support for bitfields in the MAVLink data-flattener by @Williangalvani in #1947
- Add dedicated macOS binary for Apple Silicon machines (boosting performance significantly) by @rafaellehmkuhl in #1925
- Add EKF status mini-widget by @Williangalvani in #1948
- Allow defining home location and auto-switching to map by @ArturoManzoli in #1766
- Enable background usage of joysticks (move Electron implementation to use SDL) by @rafaellehmkuhl in #1876
- Add snapshot tool mini widget by @ArturoManzoli in #1933
- Allow monitoring CPU usage and GPU memory (standalone-only) by @rafaellehmkuhl in #1970
- Allow unknown joysticks to use visual config by @ArturoManzoli in #1946
- Add serial connection by @patrickelectric in #1930
- Merge Electron logs with Cockpit internal ones by @rafaellehmkuhl in #1973
- Fully refactor the README by @rafaellehmkuhl in #1983
- Allow the DIY widget to inherit from the Cockpit interface styles by @rafaellehmkuhl in #2029
- Allow data-lake variables to be populated by joystick axes by @rafaellehmkuhl in #2061
- Do not switch joystick profile automatically on selection by @rafaellehmkuhl in #2031
- Add autoSave functionality to the DIY widget by @mahdikarami8484 in #2078
- Add
usage
andfrequency
of each BlueOS CPU core (and averages) to the data-lake by @rafaellehmkuhl in #2079 - Add network info (speed and total transmitted) of BlueOS to the data-lake by @rafaellehmkuhl in #2080
- Refactor video stream mapping UI by @rafaellehmkuhl in #2077
- Allow query params in the URL field of the HTTP Actions by @rafaellehmkuhl in #2091
- Allow settings custom user agent on the HTTP Actions by @rafaellehmkuhl in #2094
Bug fixes
- Remove non-functional options from the joystick axis function selection by @rafaellehmkuhl in #1901
- Always use standard joystick mapping from our database if available by @rafaellehmkuhl in #1902
- Use current protocol for fetching BlueOS data by @Williangalvani in #1877
- Fix clock widget overflowing on the Steam Deck by @rafaellehmkuhl in #1907
- Fix auto-updates on macOS (sign and notarize the app) by @rafaellehmkuhl in #1903
- Fix 4K video processing by @rafaellehmkuhl in #1920
- Fix protocol used to make requests on BlueOS by @rafaellehmkuhl in #1922
- Add missing colon in the protocol of BlueOS by @rafaellehmkuhl in #1923
- Fix fetching of memory-usage (standalone-only) by @rafaellehmkuhl in #1919
- Fix background rotation of the video player widget by @rafaellehmkuhl in #1939
- Fix tooltip position relative to markers on the maps widget by @rafaellehmkuhl in #1926
- Fix telemetry capture on PostHog by @rafaellehmkuhl in #1943
- Fix notarizing and signing on macOS by @rafaellehmkuhl in #1934
- Fix stop routine on the console capture of the underlying-fallback by @rafaellehmkuhl in #1941
- Fix automatic vehicle discovery by @rafaellehmkuhl in #1952
- Fix connection after selecting a stream in the Mini Video Recorder widget by @rafaellehmkuhl in #1954
- Get the Action Discovery Modal back to work by @rafaellehmkuhl in #1957
- Fix gamepad-to-cockpit-standard mapping for the Xbox One joysticks by @rafaellehmkuhl in #1821
- Avoid redundant data-lake updates triggering Actions by @ES-Alexander in #1964
- Add missing filesystem permissions to fix video persistence and access on the Flatpak package by @rafaellehmkuhl in #1974
- src: components: About.vue: update old docs link by @ES-Alexander in #1986
- Severely reduce the lag in the table tab of the joystick configuration page for constrained setups by @rafaellehmkuhl in #1969
- Fix support for generic SDL joysticks by @rafaellehmkuhl in #1991
- Show save button in the username dialog when there are no users registered by @rafaellehmkuhl in #2013
- username: Only open prompt dialog in the first vehicle connection by @rafaellehmkuhl in #2014
- Make sure mission altitudes are numerical values in Ardupilot data by @Williangalvani in #2023
- Fix MAVLink Message Action independence by @ES-Alexander in #2044
- Treat non-persistent user vars correctly in the data-lake by @ES-Alexander in #2045
- Include ID on messages that have it in the data-flattener of Ardupilot by @rafaellehmkuhl in #2030
- Fix updates on macOS (arm64) by @rafaellehmkuhl in #2056
- Cast joystick button values to the correct type before checking for press by @rafaellehmkuhl in #2055
- Make internal/external correspondency of the video streams persistent between sessions by @rafaellehmkuhl in #2057
- Fix webRTC stream duplicate on reconnection by @ArturoManzoli in #2072
- Make downloading of Ardupilot missions 100% reliable by @rafaellehmkuhl in #2066
- Fix video library modal slowing cockpit down by @ArturoManzoli in #2076
- Make uploading of Ardupilot missions 100% reliable by @rafaellehmkuhl in #2067
- Fix adding of new query parameters in the HTTP Actions by @rafaellehmkuhl in #2090
- Warn instead of throwing on creation of already existing data-lake variable by @rafaellehmkuhl in #2097
- Fix joystick calibrations not being applied on the the Standalone version (SDL pipeline) by @rafaellehmkuhl in #2100
- Fix switching variables and external variable tracking in the Slider widget by @rafaellehmkuhl in #2098
- Fix vehicle marking not showing on the Map widget by @ArturoManzoli in #2101
- Fix non-BlueOS connections not dealing with heartbeat messages by @rafaellehmkuhl in #2106
- Avoid WebRTC URI configuration to break main interface by @patrickelectric in #2110
- Disable the video player of the video library in the standalone version by @rafaellehmkuhl in #2122
Minor changes
- Stop requesting unknown Ardupilot default messages by @Williangalvani in #1894
- Make options of the arm safety dialog more clear and make it easy to cancel it by @rafaellehmkuhl in #1898
- Do not render both joystick config tabs (visual and table) simultaneously by @rafaellehmkuhl in #1917
- underlying-fallback: Improve text to suggest hard-resetting by @rafaellehmkuhl in #1928
- Fix type of bag-of-holdings response by @patrickelectric in #1931
- Improve text and reorder options in the arm safety dialog by @ES-Alexander in #1909
- Create pull request template for GitHub by @ES-Alexander in #1949
- Add default joystick profiles for the Steam Deck by @rafaellehmkuhl in #1918
- Simplify interactions in the Dial widget by @ES-Alexander in #1965
- Improve language in the configuration of Cockpit by @ES-Alexander in #1979
- Fix style of localStorage key by @rafaellehmkuhl in #1985
- Reduce spam of BlueOS sync routine logs by @rafaellehmkuhl in #1996
- Add strip-ansi package by @ArturoManzoli in #2069
- Warn user about auto-arming vehicle by @ArturoManzoli in #2065
- Improve reliability of snapcraft installation by @rafaellehmkuhl in #2081
- Disable apply button for invalid URL configurations in the General menu by @patrickelectric in #2111
- Disable auto-update offers on arm64/apple-silicon/m-series Macs by @rafaellehmkuhl in #2107
- Warn mac users that are running the x64 version on arm64 macs by @rafaellehmkuhl in #2108
New Contributors
- @mahdikarami8484 made their first contribution in #2078
Full Changelog: v1.15.2...v1.16.0