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
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:
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.
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:
- Main Dashboard Node: Interfaces with the Nextion display via UART and translates user input into CANopen messages
- LED Node: Receives CANopen messages and provides visual feedback through 6 LEDs representing data bits
- Button Node: Generates CANopen SDO messages when the button is pressed, demonstrating input handling
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.