CAN Modules

From OpenMotics
Revision as of 14:46, 21 August 2015 by Wilbert (talk | contribs)
Jump to navigation Jump to search


When using an Input module, all switches needs to be connected in STAR towards the Input module. To allow customers to also use BUS connected switches, we've developed hardware and firmware to make this possible. For these BUS connected switches, we've decided to use the CAN protocol since this protocol is designed for environments with high distortion which makes this a very reliable solution.

We've 2 types of hardware designs that we've made:

  • CAN Control: This is the CAN gateway that will convert RS485 message to CAN messages. When using CAN switches, 1 CAN controller is needed.
  • CAN Switch: This is the hardware that will contain up to 8 switches, temperature sensor, humidity sensor and up to 8 leds. It will have 2 PCB designs:
    • CAN Switch for Niko: Niko switches have a small PCB behind their switches. To make an Openmotics CAN switch, just change the Niko PCB by an Openmotics PCB.
    • General CAN Switch: This small PCB will contains all the connections to connect any kind of switch.

How does it work

The CAN control unit is connected to the RS485 bus and to the CAN bus and will convert the messages between CAN and RS485. The CAN control unit is the start of the CAN bus. The CAN switches will be connected in BUS starting at the CAN Control unit and going from 1 switch to the other.

The limit of the Openmotics system is 240 inputs and 240 outputs, the same limit applies on the "used" CAN switches. The definition of "used" CAN switch is important: Every single switch (and for example a Niko CAN switch has 6 single switches) behaves independently, if the switch is never used, it won't take any of the 240 possible inputs). Once a single switch is pressed for the first time, it will register in the CAN Control and will take 1 input. Once 8 single switches are registered, one full virtual input module is used. As of the 9th registered input, a second virtual input module is created. The same applies for the sensors: Once a single switch is pressed, the sensor (temperature, humidity etc) for that CAN switch will be registered in the CAN control module. When more then 8 sensors are registered, a second virtual sensor module will be created.

The CAN control will manage all the virtual Openmotics Input and Sensor modules.