For people who are interesting in a CANopen architecture on reprap or other arduino/AVR/atmega projects. CAN & ethernet powerlink related stuff too.
People interested , add you there :
Some people are cons CANopen implementation , arguing it's expensive and complex. Since this protocol is made to be cheap and simple, and most of this people don't know CANopen, we can only waste our time trying to explain what it is here since there is a lot of information on the web. We understood that "It's already have been discussed" here :
Main CANopen Features from http://www.thaiio.com/CANinfo.html :
- Network Management (Network Start-Up, Node Monitoring, Node Synchronization, etc.)
- Master/Slave configuration, Multi-Master & direct communication between Slaves supported
- Was originally designed for Motion Control
- Supports device profiles for Digital I/O, Analog I/O, Motion Controllers, Sensors, Actuator, etc.
- All CANopen devices “speak the same language”
- Devices are interchangeable (plug & play)
Looks http://en.wikipedia.org/wiki/CANopen and links in bottom page for further information.
Interesting profiles for reprap :
- CiA 402: CANopen device profile for drives and motion control
- CiA 406: Device profile for encoders (rotating and linear) - product example http://www.vicatronic.fr/fraba.htm
- CiA 420 series: CANopen profiles for extruder downstream devices
find tutorial and presentation about CANopen here : http://www.canseminar.com/Tutorials.html
hardware considerations have move on CAN_AVR page.
An AVR Port by Andreas GLAUSER and Peter CHRISTEN already exists in CanFestival for at90can128. I've worked to make it compile fine , fix some header and autotools. I've not commit yet my modification because i can't test it for the moment because i need the hardware. Why use this stack ?
- because it's already available for PIC18, C51, AVR etc see http://www.canfestival.org/documentation/supported-platforms-and-can-devices . Future architecture could use specialized MCU sharing same pieces of softwares.
- it's maintained by few company like Lolitech
- it's quality code , revision 3, many years experiences
- it's a more and more complete CANopen stack ( lot of profiles )
- has tools as Object Dictionary editor, virtual master node ...
Modification list :
- remove static config.h
- fix source header for avr-libc
- add Makefile.in for drivers/AVR
- add MCU switch in configure
- convert example/AVR/Slave Makefile into a proper Makefile.in
First thing we need after making CANopen working is a bootloader on CANopen.
- http://www.canfestival.org : open source CAN and CANopen stack.
- http://www.ocera.org/download/documents/documentation/wp2.html CANopen is a part of OCERA architecture.
- http://www.beremiz.org : Open Source framework for automation
- http://www.ethernet-powerlink.org is "CANopen over Ethernet"
- http://www.irobotics.org/robochair.html mobile robotics open platfom for assistive applications , use CANopen.
- http://caraca.sourceforge.net CAN Remote Automation and Control with the AVR , and already has CAN using an obsolete
AT90S4433 and his external interrupt register.
- http://ecomodder.com community need CAN/CANopen to communicate with their car and work with arduino.