AGCON - Arduino Generic CANopen Node

Hardware and software to build many different devices that can communicate via the CANopen protocol.

Similar projects worth following
This project aims to provide hardware and software to build a versatile and generic device that can be used to connect all sorts of sensors and actuators to a CANopen network. My main intention is to use these devices in home automation applications.

The hardware is based on the ubiquitous ATmega 328 microcontroller found e.g. on the Arduino Uno. The mc is preflashed with the Arduino bootloader and can be programmed using an FTDI USB to serial adapter.

Connection to the CAN bus is established via an MCP2515 CAN controller.

The free input and output pins of the ATmega are not routed to the available connectors. Instead, the board features a prototyping area that can be used to customize the device to connect to any sensor or actuator. This allows to mass-produce the board and use it for many different applicati

Initial hardware design and proof of concept software can be found on GitHub.

Future plans:

  1. Make HowTo CANopen Video
  2. Further improve the Arduino library
  3. Make RPi Shield MCP2515 CAN bus interface, DONE
  4. Further improve the openHAB CANopen binding
  5. Setup fabulous home automation network

  • Improved CANopen Arduino library

    Jens Geisler07/23/2015 at 19:43 0 comments

    • Extensive changes to reduce SRAM usage
    • Removed need for extra timers
    • Added write access flag to object dictionary entry callback
    • Added LED blinky code
    • Wrapped all in one easy to use Arduino class

  • First Prototype working

    Jens Geisler03/31/2015 at 18:53 0 comments

    I have now a first working prototype of the AGCON board with DHT22 temperature and humidity sensor, BMP085 pressure sensor and supply voltage measurement and timed 12V switch working and connected to openHAB.

    Source code is messy but should serve as starting point for CANFestivino library:

  • openHAB binding improved

    Jens Geisler03/07/2015 at 21:19 0 comments

    • Implemented full support for PDOs (Tx and Rx), SDOs (expedited only), NMT heartbeat (with auto start), sync master
    • Implemented support for all numeric CANopen data types (no strings yet)
    • Started implementing tests

    A test setup with an RPi running openHAB and fitted with a home-made CAN bus shield, connected to an Arduino programmed CANFestival CANopen device with some sensors is on the way.

  • openHAB CANopen binding published

    Jens Geisler02/20/2015 at 07:35 0 comments

    A pre alpha version of an openHAB (open home automation bus) CANopen binding is now on github (see link to the left).

    This binding allows to integrate the openHAB home automation server, e.g. running on a Raspberry Pi, into the CANopen network, enabling easy configuration of logging, web access, cloud integration, automation rules and scripts and all the good stuff.

  • Arduino CANopen library published

    Jens Geisler02/20/2015 at 07:30 1 comment

    A pre alpha version of an Arduino CANopen library based on CANFestival is now on github (see link to the left).

View all 5 project logs

Enjoy this project?



fhennerich wrote 03/14/2016 at 19:35 point

Have you tried to use Arduino via CODESYS and CAN ? I want to control Arduino via CODESYS on Raspberry Pi and PiXtend Board for a study work.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates