CANopen On-Board Protocol Stack
ECSS criticality B pre-qualified CANopen library for use in space environment
Download
Main Features
Complete CANopen software stack implementation, compliant with CiA 301, CiA 306 and ECSS-E-ST-50-15C standards. Highly customizable and configurable open-source library targeted for critical embedded systems.
ECSS criticality level B
validation test suite and documentation which includes: documentation pack compliant with ECSS-E-ST-40C and ECSS-Q-ST-80C standards; ECSS-E-ST-50-15C validation tests; 100% line, branch and decision coverage by unit-tests
C language API
of the library provides: pure C99/C11 interface; object-oriented design; static memory allocation; no external libraries dependencies; C++ wrappers (for non-critical software)
Complete implementation
of all applicable CANopen services according to CiA 301 and ECSS-E-ST-50-15C: PDO, SDO, SYNC, EMCY, NMT; support for ECSS-based bus redundancy in NMT service; support for ECSS “time objects”
Object dictionary code generator
from human-readable DCF device configuration files (CiA 306) to static C structures
CANopen library pre-qualification project
CANopen is a communication protocol for embedded systems, standardized by CAN in Automation (CiA), of which N7 Space is a proud member. The CANopen protocol is designed to work on the data link provided by CAN (Controller Area Network) – a robust standard widely adopted by the automotive industry. All modern cars are required to include this bus in their diagnostic systems.
Due to its popularity, robustness, and the availability of high-quality components ready for CANopen protocol deployments, the ECSS (European Cooperation for Space Standardization) committee created a version of CANopen specifically designed for on-board use in spacecraft (ECSS-E-ST-50-15C).
Based on a European Space Agency funded initiative for an open-source library providing CANopen stack implementation according to ECSS standards, N7 Space performed and successfully completed the qualification of the existing field-tested open-source library – lely-core by Lely Industries. This extensive, feature-rich library with high code quality is configurable, well documented, and an excellent candidate for critical systems, already proven in the robotics industry.
Within the project scope, two additional repositories were created: Test Environment (a framework for creating validation tests) and Test Suite (containing the tests themselves). The tests were executed on a space-grade ARM microcontroller (SAMV71 on ATSAMV71-XULT development board) housed in custom equipment prepared by BD Sensors Space and connected to a PC via JTAG and CAN dongles.
In a follow-up activity supported by ESA, the pre-qualification status was extended to additional platforms: SAMRH71F20, SAMRH707F18 and GR712RC (LEON3). Development support tools were introduced to help CANopen engineers design, verify, and monitor complex networks with multiple nodes defined by device configuration files (DCF).
CANopen network development support tools
Configuring a complete CANopen network with services across multiple nodes requires careful configuration of each node's Object Dictionary. Based on extensive experience, N7 Space provides a comprehensive set of tools for the CANopen network engineering process. The complexity of the Object Dictionary, especially in its "raw" version stored in standard DCF files, requires significant attention and manual verification by network engineers. The DCF file itself provides only key-value pairs; the interpretation of this data is defined in the CANopen standard CiA-306. N7 Space tools provide support on both levels – raw data stored in the Object Dictionary and its interpretation in the context of the whole network. They enable users to verify semantic correctness of multiple nodes building the CANopen network and offer comprehensive support for network editing. Our tools can also leverage network descriptions to support monitoring and instrumentation of live networks.
Tools capabilities
- Node configuration (DCF) validation according to CiA 306 and CiA 306-1
- Network setup (CPJ) validation according to CiA 306-3
- ECSS-specific features (e.g. bus redundancy) support
- Plugin for Visual Studio Code, with network tree-view
- LSP support for integrating with other editors
- CAN bus traffic interpretation based on network configuration
- CANopen nodes simulation
- Command Line Interface (CLI) for easy automation, including Continuous Integration (CI)
About us
N7 Space is a Warsaw-based software house dedicated to the space industry. We specialize in on-board software for satellite systems. Our software is customizable and can be deployed on various small and medium-scale satellites, including high-tech scientific missions. We are a proud member of the CAN in Automation (CiA) association.
Our products & services
We offer custom software for a wide range of on-board systems based on SPARC or ARM architectures running bare-metal or RTOS-based applications, commonly used in small satellite missions. Using one of these microcontrollers? Contact us for reliable software verified according to ESA ECSS standards!
We can take full responsibility for your software development process based on rigorous ESA ECSS standards. With our expertise, you will save time and resources while ensuring smooth project execution. We can also provide your team with a formal MBSE toolchain tailored to your platform with various models customized for your specific mission needs, resulting in a faster and more consistent development process.
Experience
On-board software development for the following missions: PROBA3, Comet Interceptor, ARIEL, HERA, EagleEye.
- Capability to provide low-level platform-dependent software (bootloaders and BSPs).
- Dedicated application software development with real-time operating systems.
Execution of software projects for European Space Agency:
- multiple ESA projects with high TRL and criticality B or C,
- ESA Spice for Space (S4S) assessment closed successfully,
- experience in usage and development of MBSE toolchains for various embedded systems.
Download
N7 Space provides commercial support for deployment of the open-source Lely CANopen library for on-board target systems. A criticality B pre-qualified version of this library was prepared during an ESA-funded activity. Pre-qualification data packs are available for ATSAMV71Q21, SAMV71Q21RT, SAMRH71F20, SAMRH707F18, and GR712RC. We can support deployment of the library for different target platforms, including porting the test suite and adapting the qualification environment.
Source Code
User Manuals
Development Tools
A commercial license is required for advanced features of the VSCode plugin.
Contact Us
If you are interested in using lely-core in your project, contact us to get pricing for full qualification data pack and deployment support. We can provide support in target deployment and adaptations of test suite for particular project needs.
Our Partners