About Yamcs

Yamcs /jæmz/ is open source mission control software developed by Space Applications Services, an independent Belgian company, with a subsidiary in Houston, USA.

The aim of Space Applications Services is to research and develop innovative systems, solutions and products and provide services to the aerospace and security markets and related industries. Activities cover manned and unmanned spacecraft, launch/re-entry vehicles, control centers, robotics and a wide range of information systems.

Yamcs is developed around the criteria of flexibility and open source code to innovate, reduce MCS development, implementation and integration costs through easy expandability, scalability, and adaptability over time.

Space Standards

  • CCSDS/OMG XML Telemetric and Command Exchange (XTCE) v1.1 and v1.2
  • CCSDS 133.0-B-2 Space Packet Protocol
  • CCSDS Space Data Link Protocols (AOS/TM/USLP/TC frames)
  • CCSDS 232.1-B-2 Communications Operation Procedure (COP-1)
  • CCSDS File Delivery Protocol (CFDP)
  • CCSDS Space Link Extension (FCLTU/RAF/RCF)

Licensing

Yamcs is publicly available under GNU Affero GPL license, with source code published to GitHub. Yamcs API and clients are publicly available under GNU Lesser GPL.

Space Applications Services is copyright holder, and can provide alternative licensing.

Some plugins and related software products are only available to customers. For example, the integration with SPELL for procedural execution, or custom development that specifically targets a customer's project.

Distribution

Yamcs together with your extensions can be packaged into a tarball with executables using the Yamcs Maven Plugin. How you deploy this into your environment, is your choice.

For customers, we often provide package-based solutions (Yum, APT). These are not publicly available.

Deployment

Yamcs requires only a Java Runtime Engine. It can be used on-premises or with any cloud provider.

Yamcs supports distributed deployments through the use of replication and cascading. Replication allows to mirror data between two Yamcs instances (both push and pull are possible) allowing for redundancy, or separation of concerns. Cascading is used in the case where a secondary mission control center goes through a primary mission control center before reaching the target space system.

Using Yamcs

Yamcs has an extensive HTTP API (REST + WebSocket), and comes with a web application that uses a large portion of this API. You can use this API to integrate into your own software. If your software is written in Java or Python, you can use our API client libraries, for other languages you will need to use directly the HTTP API.

For operational displays and commanding, we provide a desktop display editor and runtime solution called Yamcs Studio.

Many of our users prefer web-based solutions, so there is ongoing effort to allow running Yamcs Studio displays on the Yamcs web application. Or you can use third-party solutions like OpenMCT or Grafana.

Support

Community support makes use of GitHub. This is bug-focused, rather than feature-focused.

Enterprise support can use GitHub or private ticket trackers, depending on customer preference.

Yamcs for any mission

Organizations using Yamcs