Post

MORE CANopen Communication Backbone Prototype

Development of a CANopen communication backbone prototype for the MORE modular research vehicle.

Grade: 9.0

MORE CANopen Communication Backbone Prototype

MORE CANopen Communication Backbone Prototype

During my third semester at HAN University of Applied Sciences, I collaborated with Antonios Gkougkoulidis to develop a communication backbone prototype for the MORE (MOdular REsearch) vehicle. This project aimed to create a scalable, plug-and-play communication system that would enable automotive students to effectively test and simulate their projects.

Project Context

The MORE vehicle is an ambitious educational project where students design, build, and manage a fully modular research vehicle from scratch. The vehicle’s modularity allows for easy swapping of front, middle, and rear sections, enabling rapid implementation and testing of new automotive technologies ranging from powertrains to automated driving systems.

However, the vehicle lacked a unified communication interface for its electronics, with each system operating independently or through direct connections. This resulted in complex wiring, increased weight, and maintenance challenges.

Content

Here’s our prototype demonstration showing the CANopen communication system in action:

Below are some pictures of the final prototype setup:

Complete prototype 1
Complete prototype 2

System Architecture

Our solution utilized CANopen, a higher-level protocol built on top of the CAN bus, to provide robust and flexible communication between vehicle components.

System Architecture

The architecture consists of:

  • Physical CAN Bus: Twisted pair cables (CAN_H, CAN_L) with 120Ω termination resistors
  • Access Nodes: Olimexino STM32F3 microcontrollers acting as communication endpoints
  • CANopen Protocol Stack: Implementing Object Dictionary, SDOs, and PDOs for standardized communication
  • User Interface: Dashboard display and PC interface for monitoring and debugging

Features

  • Reliable Communication: CAN bus provides fault-tolerant communication with differential signaling
  • Scalable Architecture: Easy addition of new nodes without disrupting existing communication
  • Real-time Data Exchange: PDOs (Process Data Objects) for time-critical data transmission
  • Configuration Management: SDOs (Service Data Objects) for device configuration and parameter access
  • Visual Feedback: LED indicators showing communication status and data flow
  • Dashboard Interface: Nextion display for user interaction and system monitoring
  • Development Tools: PC interface with UART for debugging and system analysis

Technical Specifications

  • Bus Speed: 1 Mbps (CAN 2.0B High Speed)
  • Communication Range: Up to 40 meters
  • Protocol: CANopen with Object Dictionary implementation
  • Node Addressing: 7-bit Node IDs (0-127)
  • Physical Layer: ISO 11898 compliant differential signaling

Implementation Details

The prototype demonstrates essential CANopen functionalities through three interconnected nodes:

  1. Main Dashboard Node: Interfaces with the Nextion display via UART and translates user input into CANopen messages
  2. LED Node: Receives CANopen messages and provides visual feedback through 6 LEDs representing data bits
  3. Button Node: Generates CANopen SDO messages when the button is pressed, demonstrating input handling
Symposium Poster
Use diagram
Sketch diagram
Hierarchy diagram
User diagram diagram

Technologies Used

  • Programming Languages: C with STM32 HAL library
  • Development Environment: STM32CubeIDE with visual configuration tools
  • CANopen Implementation: CANopenNode library with STM32 driver integration
  • Hardware: Olimexino STM32F3 microcontrollers, Nextion display
  • Testing Tools: PCAN hardware/software, Logic Analyzer, CANopen Magic software
  • Communication Protocols: CAN 2.0B, CANopen, UART

Testing and Validation

Our testing approach included:

  • Subsystem Testing: Individual validation of UART communication, CAN frame transmission, and CANopen message handling
  • Integration Testing: Verification of complete system operation with multiple nodes
  • Protocol Analysis: Using PCAN and CANopen Magic to monitor and analyze message flow
  • Signal Verification: Logic analyzer measurements to ensure proper electrical signaling

Key Achievements

  • Successfully implemented a working CANopen communication backbone
  • Demonstrated scalable architecture suitable for vehicle integration
  • Created template code for future access node development
  • Established foundation for plug-and-play vehicle electronics
  • Provided comprehensive documentation for future development teams

Future Expansion Recommendations

  • Library Development: Create common functions for analog/digital sensors and data logging
  • MATLAB Integration: Enable communication between access nodes and MATLAB-based measurement tools
  • Wireless Connectivity: Add cloud communication capabilities for vehicle-to-vehicle and remote monitoring
  • Plug-and-Play Enhancement: Develop GUI-based configuration tools for non-programming users

Challenges and Solutions

One of the main challenges was implementing the CANopen protocol stack on resource-constrained microcontrollers while maintaining real-time performance. We addressed this by:

  • Utilizing the proven CANopenNode library as our foundation
  • Implementing efficient Object Dictionary management
  • Optimizing message routing and processing algorithms
  • Creating robust error handling and fault recovery mechanisms

Project Impact

This prototype serves as the foundation for the MORE vehicle’s communication infrastructure, enabling:

  • Standardized interfaces for student projects
  • Simplified integration of new vehicle systems
  • Reduced wiring complexity and improved maintainability
  • Enhanced data collection capabilities for research purposes

The project successfully demonstrates that CANopen is a viable solution for the MORE vehicle’s communication needs and provides a solid starting point for full vehicle integration.

Lessons Learned

Working on this project taught us valuable lessons about:

  • Industrial communication protocols and their practical implementation
  • The importance of iterative development and stakeholder feedback
  • Balancing functional requirements with technical constraints
  • The value of comprehensive documentation for project continuity

Currently, the project’s resources are archived in the MORE project repository, available for future development teams to build upon our foundation.


This project was completed as part of the multidisciplinary challenge project (EMBSYP13-PRJ3) at HAN University of Applied Sciences, Embedded Systems Engineering program, S3 2022-2023.

This post is licensed under CC BY 4.0 by the author.