Skip to content

v5.2.0

Compare
Choose a tag to compare
@ryanmelt ryanmelt released this 14 Dec 02:40
· 2483 commits to main since this release

OpenC3 COSMOS 5.2.0 - Modern, Production Ready, Command and Control

Welcome to OpenC3 COSMOS 5.2.0!

RAM Utilization Reduced 2-3x

This release reduces total RAM utilization by 2-3x by combining the different microservices that support each target and each scope into a new single "multi" microservice. Each individual ruby interpreter uses 50-60Mb of RAM so this can save up to 300Mb of RAM per target, and up to 200Mb of RAM per scope over previous versions! Microservices can still be broken out with new keywords in plugin.txt if more performance is needed. Running COSMOS with our demo application now only uses about 1.3Gb of RAM.

Targets Can be Mapped to Multiple Interfaces

Another key feature of this release is that Targets can now be mapped to multiple interfaces. Typically this can be used to have a different interface for commands vs telemetry. Or it can be used to have multiple interfaces that can receive telemetry for a target. Sending commands to multiple interfaces is also supported, but generally not desirable.

New Stash API

Scripts now have support for a new Stash API that allows saving state that can be retrieved by later runs of the same script (or other scripts). Data is stored and retrieved as key/value pairs.

Other Highlighted Improvements In This Release

  • Support variable command timeouts for long duration commands
  • Improved Redis Debug Tab in Admin
  • Added support for global subsettings
  • Support DISABLE_MESSAGES for command states
  • Support multiline strings in config files
  • Made log buffer depths configurable
  • Added support for offline_access_token api to support Enterprise edition
  • Added a new migration system to support upgrades between versions
  • Improved cleanup microservice efficiency
  • Allow running scripts outside of lib and procedure folders
  • Added new plugin.txt keywords to breakout individual target microservices to support high load packets
  • Updated dependency versions

Key Bug Fixes

  • Received time was being lost in the current value table for packets with a defined packet_time
  • Fixed several potential errors that could occur in reducer
  • Enforce that TlmViewer screen names must be lowercase
  • Fixed a bug where out of time order packets could cause the creation of a huge number of log files

All Pull Requests in this Release

Prerequisites:
Docker - Running OpenC3 requires a working Docker or Podman installation. Typically Docker Desktop on Windows / Mac. Plain Docker or Podman also works on linux. We actively develop and run with Docker Desktop on Mac/Windows, and Linux on Raspberry Pi, so if you have any issues on another platform, please let us know by submitting a ticket!

Minimum Resources allocated to Docker: 4GB RAM, 1 CPU, 80GB Disk
Recommended Resources allocated to Docker: 16GB RAM, 2+ CPUs, 100GB Disk
Also requires docker compose version 1.27+

To Run:

Please see our documentation at https://openc3.com

Try it out and let us know what you think! Please submit any issues as Github tickets, or any generic feedback to [email protected].

Thanks!

Full Changelog: Changelog