What's Changed
First of all, as always, this is the best version of Cockpit we ever had and we think you should update to it right now 🙂
This version has a lot of new features and bug fixes, but I want to focus on 3 points that are very important:
1. The new video processing pipeline
We've been working on it for a while and it's finally here. This is for sure the biggest change on 1.17. It's a complete rewrite, now using ffmpeg behind the scenes to process the video. This means you can now record videos of any length and quality you want, without any performance issues. No more memory constraints! We tested it with recording of more than 3 hours and it is working flawlessly. Your video is now processed in real time, during the recording, which means you always have a playable video inside your desktop folder. It's truly better by design.
It's important to mention that for this new pipeline to work we made it so Cockpit Lite (the web/extension version) records the video but does not process it, and the processing of the video chunks should be made using Cockpit Standalone (the desktop version).
2. Native support for TCP/UDP MAVLink endpoints
With our focus on BlueOS-based vehicles, it was not on our plans to work on that yet, but we received the invaluable contribution of @amir-hossein-zarei in #2084 adding support for TCP and UDP endpoints (both client and server types) on the vehicle connection. This means you can now connect Cockpit to your MAVLink vehicle even if it's not running BlueOS or connected through a Serial-UART adaptor!
3. MAVLink Command waypoints
For a long time you could only do simple "pass by" missions on Cockpit, but now we support any kind of MAVLink waypoint, so you can plan complex missions with loops, loiters, servo commands and others. This comes together with a lot of new features around the mission-planning part, like offline tiles, new drawing tools, distance and power estimates (BlueBoat only for now), and more. We know there're a lot on the mission drawing that we still need to add to make a top-notch mission planning experience, but we are happy to say we now have the foundation for that.
Besides those, the performance of Cockpit has been improved a lot, we have fixed a lot of bugs in your most used features and we believe your experience should be a lot better with 1.17. This was another long beta cycle, with a little less than 3 months of development. The last took 4 months, so linear extrapolation tells us that we are going to hit our goal of having new stable releases every month at 1.19 😄
With all that said, please download this new version, enjoy it and happy piloting!
New features
- DIY widget: autocomplete data-lake variables by @mahdikarami8484 in #2109
- Support native desktop protocols (UDP and TCP) by @amir-hossein-zarei in #2084
- Allow usage of string variables in the Very Generic Indicator by @rafaellehmkuhl in #2116
- stores: snapshot: Make comment a valid json to be parsed by software by @patrickelectric in #2126
- snapshot: Create dedicated action to allow taking snapshots with a button click by @rafaellehmkuhl in #2127
- Display battery level as an icon reflecting the charge percentage by @mahdikarami8484 in #2130
- Add initial support for command waypoints by @rafaellehmkuhl in #2054
- Add option to store map tiles for offline missions by @ArturoManzoli in #2085
- Allow inserting waypoints between existing mission items by @ArturoManzoli in #2131
- Provide estimated power, duration, distance and coverage on mission planning by @ArturoManzoli in #2123
- Add grid and distance scale to the maps by @rafaellehmkuhl in #2151
- Refactor video processing pipeline to allow recording of long videos by @rafaellehmkuhl in #2164
- Allow setting global origin of MAVLink vehicles by @rafaellehmkuhl in #2162
- Add collapsible container to iFrame component by @ArturoManzoli in #2213
- Add video recording health monitor by @rafaellehmkuhl in #2206
- ardupilot: Add variables from non-main sources to the Data Lake by @rafaellehmkuhl in #1815
- Add option on iFrame widget to use vehicle address as the base URL by @rafaellehmkuhl in #2222
- Add support for sending SYSTEM_TIME and using TIMESYNC for measuring roundtrip latency on communication with the vehicle by @Williangalvani in #2211
- Add color-coding and option to lock the alerts mini-widget by @ArturoManzoli in #2251
Bug fixes
- video: Include telemetry overlay files when downloading raw video chunks by @rafaellehmkuhl in #2145
- Fix tile-downloading button being over the waypoint config menu by @rafaellehmkuhl in #2150
- Fix strip ansi resolution by @rafaellehmkuhl in #2165
- Fix shared command reference across mission waypoints by @ArturoManzoli in #2169
- Fix default cruise speed not working by @ArturoManzoli in #2158
- Fix position of the zoom controls in both the Map widget and the Mission Planning view by @rafaellehmkuhl in #2176
- app: main-menu: config-menus: Fix closing button not working on some situations by @rafaellehmkuhl in #2178
- Prevent measuring tag to be displayed over the last waypoint marker by @ArturoManzoli in #2181
- Fix windows dev setup by @robertlong13 in #2182
- Fix long loading video chunks raw tab by @rafaellehmkuhl in #2180
- joystick: sdl: Prevent "JavaScript error" popups from appearing on joystick connection by @rafaellehmkuhl in #2197
- joystick: sdl: Fix initial trigger values being incorrectly mapped by @rafaellehmkuhl in #2194
- Fix streams being duplicated (causing unnecessary resource usage) on reconnection by @rafaellehmkuhl in #2208
- Re-add ArduPilot system ID variable, as a fallback by @ES-Alexander in #2214
- map: mavlink: Consider commands with coordinates 0/0 to be non-nav by @rafaellehmkuhl in #2205
- Add missing buttons in the FarmStick flight joystick by @rafaellehmkuhl in #2216
- Limit vehicle position max sampling rate on Vehicle-Store by @ArturoManzoli in #2219
- electron: resource-monitoring: Fix metric of CPU used by app by @rafaellehmkuhl in #2223
- map: mavlink: fix overly broad command condition by @ES-Alexander in #2230
- blueos: external-widgets: Catch case where an extension fails to respond by @rafaellehmkuhl in #2236
- Warn user a single and final time when a recording monitor detects a dropped stream by @rafaellehmkuhl in #2234
- widgets: collapsible-container: avoid shallow construction by @ES-Alexander in #2237
- Improve and fix MAVLink system/component handling by @ES-Alexander in #2229
- Fix a bunch of bugs in the Input widgets by @ES-Alexander in #2241
- Fix performance issues in the Map widget and Mission Planning by @rafaellehmkuhl in #1604
- Improve GCS conflict checking by @ES-Alexander in #2243
- Fix waypoint command panel expansion problem by @ArturoManzoli in #2247
- Fix shallow copies that were braking original elements by @ArturoManzoli in #2248
- Fix Mission Planning structured clone bug by @ArturoManzoli in #2254
- Stop pushing null values to settings synced with BlueOS by @rafaellehmkuhl in #2252
- Fix input widget inconsistencies by @ArturoManzoli in #2256
- Fix more input widget inconsistencies by @ES-Alexander in #2257
- Fix recording of video streams with delayed SPS/PPS by @rafaellehmkuhl in #2274
Other changes
- vehicle: Add MAVLinkVehicle abstraction by @patrickelectric in #2112
- Move MAVLink specific code from ArduPilot to MAVLink Vehicle by @patrickelectric in #2125
- Add native support for the 8BitDo Ultimate 2C joystick by @rafaellehmkuhl in #2129
- README.md: add lite terminology for Extension by @ES-Alexander in #2148
- joystick: mavlink-manual-control: add actuator button funcs by @ES-Alexander in #2132
- sensor-logging: Record for the entire run of the application by @rafaellehmkuhl in #2187
- joysticks: Add the
Thrustmaster SimTask FarmStickflight joystick by @rafaellehmkuhl in #2192 - joystick: Log info about connected devices by @rafaellehmkuhl in #2196
- Improve several video pipeline parts by @rafaellehmkuhl in #2203
- Improve reading names on the DataLake tools menu by @rafaellehmkuhl in #2215
- README: improve dev quick-start section by @ES-Alexander in #2227
- widgets: map: use a copter icon for copters by @ES-Alexander in #2226
- register_service: update Extension name to Cockpit Lite by @ES-Alexander in #2244
- More MAVLink message handling improvements by @ES-Alexander in #2242
- Improved waypoint drawing logic to speed up loading of large draft missions by @ArturoManzoli in #2250
- update splash screen and about dialog by @ArturoManzoli in #2258
- workflows: ci.yml: remove Bazaar deployment by @ES-Alexander in #2259
- index: change browser app title to use Lite branding by @ES-Alexander in #2263
New Contributors
- @amir-hossein-zarei made their first contribution in #2084
- @robertlong13 made their first contribution in #2182
Full Changelog: v1.16.0...v1.17.0