Difference between revisions of "Memory Model AIO"

From OpenMotics
Jump to navigation Jump to search
(270 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== General Configuration Bytes ==
+
== Introduction ==
 +
 
 +
The AIO has an onboard Eeprom connected via I2C to the DSPIC33E (The Master). This document describes the Eeprom memory locations used. When changes are made by using CLI instruction "Eeprom write", do not forget the use the CLI instruction "Eeprom activate" to activate the changes that have been made.
 +
 
 +
== General Configuration Bytes (Page 0) ==
 
; Page 0 -> Controller specific data
 
; Page 0 -> Controller specific data
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||0
 +
|}
 +
 +
: When this value = 255, Automatic detection (detected via the Front Panel Hardware) will be done if this module is a Core or a Core+ module. When this value = 0 the system is forced to act as a Core, when this value = 1 the system is forced to act as a Core+ without any hardware detection.
  
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 9: Line 22:
 
|}
 
|}
  
: Number of input modules: This byte specifies the number of input (input, temperature, oled ...) modules known by the Master controller on the RS485 bus.
+
: Number of output modules: This byte specifies the number of output (output, dim control, shutter/curtain ...) modules known by the Master controller on the RS485 bus. Maximum 80.
  
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 18: Line 31:
 
|}
 
|}
  
: Number of output modules: This byte specifies the number of output (output, dim control, shutter/curtain ...) modules known by the Master controller on the RS485 bus.
+
: Number of input modules: This byte specifies the number of input (input, can control ...) modules known by the Master controller on the RS485 bus. Maximum 80.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||3
 +
|}
 +
 
 +
: Number of sensor modules: This byte specifies the number of sensor modules known by the Master controller on the RS485 bus. Maximum 16.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||4
 +
|}
 +
 
 +
: Scan time RS485 sensor modules: This value (between 1 and 254) will indicate the scan time (in 100ms) between each of the sensor module values of the individual modules. If the value =255 or =0, the standard value (50) will be taken (=value scan every 5 seconds). The more sensor modules, the lower this value can be set.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||5
 +
|}
 +
 
 +
: Nr of CAN Inputs: This value indicate the number of CAN inputs found on the CAN bus. When this value is 0 or 255 then no inputs have been found yet.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||6
 +
|}
 +
 
 +
: Nr of CAN sensors: This value indicate the number of CAN sensors found on the CAN bus. When this value is 0 or 255 then no sensors have been found yet.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||7
 +
|}
 +
 
 +
: Nr of CAN modules: This value indicate the number of CAN modules found on the CAN bus. When this value is 0 or 255 then no CAN modules have been found yet.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||8
 +
|}
 +
 
 +
: Scan time RS485 Bus: This value (between 1 and 254) will indicate the scan time (in ms) between each individual module. If the value =255 or =0, the standard value (8) will be taken (=scan time 8ms between 2 communication sessions). Higher value will slow down the bus, too low values can increase the error rate on the Bus.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||9
 +
|}
 +
 
 +
: Nr of CAN Control modules: This value (max 16) indicates the number of CAN Control modules found on the RS485 Bus. When this value is 0 or 255 then no CAN Control modules have been found yet.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||10
 +
|}
 +
 
 +
: Scan time RS485 Can Control modules: This value (between 1 and 254) will indicate the scan time (in 100ms) between each of the Can Control modules. If the value =255 or =0, the standard value (50) will be taken (=value scan every 5 seconds).
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||11
 +
|}
 +
 
 +
: Automatic Module Discovery Byte:
 +
: * Automatic Module Discovery.BIT0: This bit will indicate if the module discovery is enabled (>0) or disabled (=0). When Automatic module discovery is enabled, during startup of the Core/Core+, the system will check for new modules on the RS485 Bus. This feature only works for GEN3 hardware. If GEN2 hardware must be added, Automatic Module Discovery must be disabled and a manual add (by using the init button when the module is in discovery mode) must be executed to add such a module. Once that module is added, Automatic Module Discovery can be enabled again.
 +
: * Automatic Module Discovery.BIT1: This bit represents if new (BIT=1) or old (BIT=0) slave firmware is used. This bit should be set correctly whether automatic search or manual discovery is used. These are the firmware versions that are being considered as new:
 +
: ** Output V6.0.15 or higher
 +
: ** Dim Control V6.0.16 or higher
 +
: ** Input V6.0.23 or higher
 +
: ** Temp V6.0.13 or higher
 +
: ** Can Control V6.0.36 or higher
 +
: * Automatic Module Discovery.BIT2: This bit represents if full handshake (BIT=1) needs to be done or that the module can be with limited handshake (BIT=0). This will only work if BIT0=0 and BIT1=1.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||12
 +
|}
 +
 
 +
: Termination CAN bus byte: The CAN bus needs a termination at the beginning and the end of the CAN bus. The Termination of the CAN bus in the Core/Core+ can be set electronically. The termination at the other side of the Bus must be done by a jumper on the micro CAN module.
 +
: = 0 -> CAN bus termination is not set
 +
: > 0 -> CAN bus termination is set
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||13
 +
|}
 +
 
 +
: Debug Mode byte: This byte will configure if Debug mode is ON for FRAM logging and/or BB forwarding (API Instruction 'EV'):
 +
:* Debug Mode.BIT0=0->Enable BB debug BA forwarding via API Instruction 'EV' (Every BA executed will be forwarded), BIT0=1->disable (default setting)
 +
:* Debug mode.BIT1=0->Enable FRAM BA logging (Every BA executed will be stored in FRAM, see also CLI instruction "logging list"), BIT1=1->disable (default setting)
 +
:* Debug mode.BIT2=0->Disable Error FRAM logging (Errors generated by the system will not be stored in FRAM), BIT2=1->Enable (default setting)
 +
:* Debug mode.BIT3=0->Disable Health Checker, BIT3=1->Enable (Default setting)
 +
: Please note that enabling the above functionality might slow down the system when large number of BA's are executed.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||14-29
 +
|}
 +
 
 +
: These 11 bytes represents the CAN configuration bytes. These bytes should be handled with care since a reconfiguration will also reconfigure the CAN slaves. Wrong values could make the CAN bus fail without possibilities to recover. The below bytes will automatically be written when changing the speed with CLI instruction "can speed write".
 +
: Byte 14: BRP value (Brain(+))
 +
: Byte 15: Propagation segment (Brain(+))
 +
: Byte 16: Phase Segment 1 (Brain(+))
 +
: Byte 17: Phase Segment 2 (Brain(+))
 +
: Byte 18: Sync Jump Width (Brain(+))
 +
: Byte 19: CRC8 of Byte 14-18
 +
: Byte 20: BRGCON1 (uCAN)
 +
: Byte 21: BRGCON2 (uCAN)
 +
: Byte 22: BRGCON3 (uCAN)
 +
: Byte 23: CRC8 of Byte 20-22
 +
: Byte 24: CRC8 of Byte 14-23
 +
: Byte 25: Can speed (kbps)
 +
: Byte 26: BRGCON1 (CAN Control)
 +
: Byte 27: BRGCON2 (CAN Control)
 +
: Byte 28: BRGCON3 (CAN Control)
 +
: Byte 29: CRC8 of Byte 26-28
 +
: Byte 30: Result of all integrity checks of all CAN parameters. If Byte 30 == 1 then integrity check is OK, if Byte 30 != 1 then integrity check is NOT OK.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||50-51
 +
|}
 +
 
 +
: Byte 50: This is the group nr (MSB) of the follow group action that will be executed when output all off is triggered
 +
: Byte 51: This is the group nr (LSB) of the follow group action that will be executed when output all off is triggered
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||52-53
 +
|}
 +
 
 +
: Byte 52: This is the group nr (MSB) of the startup group action that will be executed at startup or reset of the processor
 +
: Byte 53: This is the group nr (LSB) of the startup group action that will be executed at startup or reset of the processor
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||54-55
 +
|}
 +
 
 +
: Byte 54: This is the group nr (MSB) that will be executed when the time (minutes) is changed.
 +
: Byte 55: This is the group nr (LSB) that will be executed when the time (minutes) is changed.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||56-57
 +
|}
 +
 
 +
: Byte 56: This is the group nr (MSB) that will be executed when the time (hours) is changed.
 +
: Byte 57: This is the group nr (LSB) that will be executed when the time (hours) is changed.
  
== Data output modules ==
+
{| class="wikitable sortable" border="1"
;Page 91 – 180 -> Contains data of the output modules (90 modules maximum, 720 outputs -> 0-719)
+
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||58-59
 +
|}
  
The output data can be found back from page 91 till page 180. These Pages that contains active data depending on Page0/Byte2.
+
: Byte 58: This is the group nr (MSB) that will be executed when the date (days) is changed.
 +
: Byte 59: This is the group nr (LSB) that will be executed when the date (days) is changed.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||60-61
 +
|}
 +
 
 +
: Byte 60: This is the group nr (MSB) that will be executed when any of the outputs have been changed.
 +
: Byte 61: This is the group nr (LSB) that will be executed when any of the outputs have been changed.
 +
 
 +
: Important note: This group action cannot contain any output action since it will create a loop so please avoid using any other BA's that will switch outputs.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||84
 +
|}
 +
 
 +
: This byte represents the Endless Loop detection Byte: Endless loop is a detection mechanism to detect when a group action will execute itself, or when for example a group action will execute a group which has the output group follow function enabled that executes again the same group action which can result in endless loops making the Master unresponsive. When the Endless loop detection is enabled, group actions with the same action number can only be executed once in 1 execution run. An execution run stops when the BA queue size returns to 0. When this Endless Loop Detection Byte==255 -> Endless loop detection is enabled, !=255 -> Endless loop is disabled.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||85
 +
|}
 +
 
 +
: This byte represents the Reset byte. This byte will be used of the Health Checker can perform a Master reset or not
 +
: This Reset byte has following bits:
 +
: * Reset.BIT0: If =1 -> CAN Health Checker can reset the Master Processor, =0 -> No automatic reset when CAN problems are detected
 +
: * Reset.BIT1: If =1 -> I2C1 Health Checker can reset the Master Processor, =0 -> No automatic reset when I2C1 problems are detected
 +
: * Reset.BIT2: If =1 -> I2C2 Health Checker can reset the Master Processor, =0 -> No automatic reset when I2C2 problems are detected
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||86-87
 +
|}
 +
 
 +
: Byte 86: This is the timeout (MSB) in milliseconds for time machine "Task Immediate Queue".
 +
: Byte 87: This is the timeout (LSB) in milliseconds for time machine "Task Immediate Queue".
 +
 
 +
: Default value is 15000ms when MSB&LSB==255.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||88-89
 +
|}
 +
 
 +
: Byte 88: This is the timeout (MSB) in milliseconds for time machine "Task Group Queue".
 +
: Byte 89: This is the timeout (LSB) in milliseconds for time machine "Task Group Queue".
 +
 
 +
: Default value is 15000ms when MSB&LSB==255.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||128-255
 +
|}
 +
 
 +
: This part of the Eeprom is write protected and used to store production and testing data
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||128-129
 +
|}
 +
 
 +
: This byte represents the next logging location. Event and error codes can be logged in EEPROM (see page FRAM 506-511). If the logging location=0 then the 16 bytes will be written starting at EEPROM location Byte506/Byte0, if byte=1 then the 16 bytes will be written at FRAM location Byte506/Byte16 etc
 +
: Byte128: logging_location.MSB
 +
: Byte129: logging_location.LSB
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 0||232-255
 +
|}
 +
 
 +
: Byte 232: Production site
 +
: Byte 233: Serial number 2
 +
: Byte 234: Serial number 1
 +
: Byte 235: Serial number 0
 +
: Byte 236: CRC16.MSB (Byte232-235)
 +
: Byte 237: CRC16.LSB (Byte232-235)
 +
: Byte 238: Production Day
 +
: Byte 239: Production Month
 +
: Byte 240: Production Year
 +
: Byte 241: Testing result (number of errors found during testing)
 +
: Byte 242: CRC16.MSB (Byte238-241)
 +
: Byte 243: CRC16.LSB (Byte238-241)
 +
 
 +
== Data output modules (Page 1-80) ==
 +
;Page 1 – 80 -> Contains data of the output modules (80 modules maximum, 640 outputs -> 0-639)
 +
 
 +
The output data can be found back from page 1 till page 80. These Pages that contains active data depending on Page0/Byte1.
  
 
Every output Module (that can be configured in normal or Roller/Shutter mode) has its own output page which contains the normal output data and the Roller/Shutter data:
 
Every output Module (that can be configured in normal or Roller/Shutter mode) has its own output page which contains the normal output data and the Roller/Shutter data:
Line 31: Line 332:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91||x
+
| 1||x
 
|}
 
|}
  
Line 40: Line 341:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 92||x
+
| 2||x
 
|}
 
|}
  
Line 49: Line 350:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 93||x
+
| 3||x
 
|}
 
|}
  
Line 60: Line 361:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 180||x
+
| 80||x
 
|}
 
|}
  
: This page is entirely used for output module 89.
+
: This page is entirely used for output module 79.
  
  
Line 74: Line 375:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91-180||0-3
+
| 1-80||0-6
 
|}
 
|}
  
Line 81: Line 382:
 
:Byte 2: ID2
 
:Byte 2: ID2
 
:Byte 3: ID3
 
:Byte 3: ID3
 +
:Byte 4: Module Type: If 0 or 255, the normal modules are used, if 72 ("H"), a Heap pump module is found
 +
:Byte 5:
 +
:Byte 6:
  
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 86: Line 390:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91-180||4-19
+
| 1-80||7-22
 
|}
 
|}
  
 
: Standard Timer values for an output to be used. Each timer value has a word format and is programmed in 2 bytes (first byte LSB). The function of this word is decibed in the Timer Type Byte..  
 
: Standard Timer values for an output to be used. Each timer value has a word format and is programmed in 2 bytes (first byte LSB). The function of this word is decibed in the Timer Type Byte..  
:Byte 4 (LSB) and 5 (MSB) will specify the timer value for output 0  
+
:Byte 7 (MSB) and 8 (LSB) will specify the timer value for output 0  
:Byte 6 (LSB) and 7 (MSB) will specify the timer value for output 1
+
:Byte 9 (MSB) and 10 (LSB) will specify the timer value for output 1
 
:...
 
:...
:Byte 18 (LSB) and 19 (MSB) will specify the timer value for output 7
+
:Byte 21 (MSB) and 22 (LSB) will specify the timer value for output 7
  
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 99: Line 403:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91-180||20-27
+
| 1-80||23-30
 
|}
 
|}
  
: Standard Timer values for an output to be used. Each output has a timer type  
+
: Standard Timer types for an output to be used. Each output has a timer type  
:Byte 20 Timer type for output 0  
+
:Byte 23 Timer type for output 0  
:Byte 21 Timer type for output 1
+
:Byte 24 Timer type for output 1
 
:...
 
:...
:Byte 27 Timer type for output 7
+
:Byte 30 Timer type for output 7
  
  
 
:When Timer Type=0 or 255 -> Timer not active or not configured
 
:When Timer Type=0 or 255 -> Timer not active or not configured
 
:When Timer Type=1 -> Timer value contains 100ms value in other words, if for example the Timer value (word) = 6004, the timer is set to 600.4 seconds
 
:When Timer Type=1 -> Timer value contains 100ms value in other words, if for example the Timer value (word) = 6004, the timer is set to 600.4 seconds
:When Timer Type=2 -> Timer value contains second value in other words, if for example the Timer value (word) = 6004, the timer is set to 604 seconds  
+
:When Timer Type=2 -> Timer value contains second value in other words, if for example the Timer value (word) = 6004, the timer is set to 6004 seconds  
 
:When Timer Type=3 -> Time value contains switch off time (MSB=Hour, LSB=minute)
 
:When Timer Type=3 -> Time value contains switch off time (MSB=Hour, LSB=minute)
  
Line 118: Line 422:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91-180||28-35
+
| 1-80||31-38
 
|}
 
|}
  
:Byte 28: Output type byte output0 (=0: standard output, >0: Light output)
+
:Byte 31: Output type byte output0 (<128: standard output, >127: Light output)
:Byte 29: Output Type byte output1 (=0: standard output, >0: Light output)
+
:Byte 32: Output Type byte output1 (<128: standard output, >127: Light output)
 
:…
 
:…
:Byte 35: Output Type byte output7 (=0: standard output, >0: Light output)
+
:Byte 38: Output Type byte output7 (<128: standard output, >127: Light output)
  
 
:Output Type byte will indicate if the indicated output is a light or not. When specific instruction (by using action type 163 for example) to switch off a light will be used, only lights (and not outputs) will be switched off.
 
:Output Type byte will indicate if the indicated output is a light or not. When specific instruction (by using action type 163 for example) to switch off a light will be used, only lights (and not outputs) will be switched off.
  
=== Up/Down Timer settings of an individual Roller/Shutter ===
 
  
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 134: Line 437:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91-180||36-43
+
| 1-80||39-46
 +
|}
 +
 
 +
:Byte 39: Minimum output level when dimming for Output 0.
 +
:Byte 40: Minimum output level when dimming for Output 0.
 +
:…
 +
:Byte 46: Minimum output level when dimming for Output 7.
 +
 
 +
:Note: When the standard value (255) of eeprom is used, the minimum value is set on 8. The programmed value should be between 0 and 62.
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 1-80||47-54
 +
|}
 +
 
 +
:Byte 47: Maximum output level when dimming for Output 0.
 +
:Byte 48: Maximum output level when dimming for Output 0.
 +
:…
 +
:Byte 54: Maximum output level when dimming for Output 7.
 +
 
 +
=== Output Group Follow ===
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 1-80||55-70
 
|}
 
|}
  
:Byte 36: Up Timer for Roller/Shutter 0
+
:Output Group follow: Page 1-80, byte 55-70
:Byte 37: Down Timer for Roller/Shutter 0
+
:Byte 55: Group nr (MSB) to execute when Output 0 of this module is changing
:Byte 38: Up Timer for Roller/Shutter 1
+
:Byte 56: Group nr (LSB) to execute when Output 0 of this module is changing
:Byte 39: Down Timer for Roller/Shutter 1
+
:Byte 57: Group nr (MSB) to execute when Output 1 of this module is changing
+
:Byte 58: Group nr (LSB) to execute when Output 1 of this module is changing
:Byte 42: Up Timer for Roller/Shutter 3
+
:
:Byte 53: Down Timer for Roller/Shutter 3
+
:Byte 69: Group nr (MSB) to execute when Output 7 of this module is changing
 +
:Byte 70: Group nr (LSB) to execute when Output 7 of this module is changing
 +
 
 +
=== DALI: Link Output Nr with Dali Nr ===
 +
 
 +
Every output can be linked to a Dali output with address (0-63) or linked to a Dali group (0-15). When the output is switched ON, OFF or dimmed, the Dali output will follow. Typically, a virtual output module is created and the those virtual outputs are linked to Dali outputs. In the below page, the Dali Output can be programmed for a system output.
 +
 
 +
Below, you can find the Memory locations for Firmware 1.0.110 or higher:
 +
 
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 1-80||71-86
 +
|}
  
Note: This timer setting is in seconds, when 0 the timer is not in use.
+
*Byte 71-72: (byte 71->x.MSB, byte 72->x.LSB) Output 0 of this module is linked with Dali Output x.LSB (when x.LSB<64) or with Dali Group x.LSB-64 (when x.LSB>63 and x.LSB<80). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
*Byte 73-74: (byte 73->x.MSB, byte 74->x.LSB) Output 1 of this module is linked with Dali Output x.LSB (when x<64) or with Dali Group x.LSB-64 (when x.LSB>63 and x.LSB<80). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
*…
 +
*Byte 85-86: (byte 85->x.MSB, byte 86->x.LSB) Output 7 of this module is linked with Dali Output x.LSB (when x<64) or with Dali Group x.LSB-64 (when x.LSB>63 and x.LSB<80). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
  
=== Roller/Shutter config byte  ===
+
Below, you can find the Memory locations for Firmware 1.0.109 or lower:
  
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 153: Line 501:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91-180||54-57
+
| 1-80||71-78
 
|}
 
|}
  
:Byte 54: config byte for Roller/Shutter0.
+
*Byte 71: Output 0 of this module is linked with Dali Output x (when x<64) or with Dali Group x-64 (when x>63 and x<80)
:* BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
+
*Byte 72: Output 1 of this module is linked with Dali Output x (when x<64) or with Dali Group x-64 (when x>63 and x<80)
:* BIT1: Not used yet
+
*
:* BIT2: Not used yet
+
*Byte 78: Output 7 of this module is linked with Dali Output x (when x<64) or with Dali Group x-64 (when x>63 and x<80)
:* BIT3: Not used yet
+
 
:* BIT4: Not used yet
+
=== DALI: Link Single Output Dali to Dali group ===
:* BIT5: Not used yet
+
 
:* BIT6: Not used yet
+
{| class="wikitable sortable" border="1"
:* BIT7 (Most significant): Not used yet
+
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 1-80||87-102
 +
|}
  
:Byte 55: config byte for Roller/Shutter1.
+
Each bit of this 2 byte set of data indicates if an output is linked to an Dali group.
:* BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
 
:* BIT1: Not used yet
 
:* BIT2: Not used yet
 
:* BIT3: Not used yet
 
:* BIT4: Not used yet
 
:* BIT5: Not used yet
 
:* BIT6: Not used yet
 
:* BIT7 (Most significant): Not used yet
 
  
:Byte 56: config byte for Roller/Shutter2.
+
consists of 2 bytes per output.
:* BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
+
* MSB: Groups 15 - 8 (MSb = Group 15, LSb = Group 8)
:* BIT1: Not used yet
+
* LSB: Groups 7 - 0 (MSb = Group 7, LSb = Group 0)
:* BIT2: Not used yet
 
:* BIT3: Not used yet
 
:* BIT4: Not used yet
 
:* BIT5: Not used yet
 
:* BIT6: Not used yet
 
:* BIT7 (Most significant): Not used yet
 
  
:Byte 57: config byte for Roller/Shutter3.
+
For example: Byte 87 and 88 = 00001000 00000010 => The output 1 of module (1 - 80) belongs to Dali group 1 and 11.
:* BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
 
:* BIT1: Not used yet
 
:* BIT2: Not used yet
 
:* BIT3: Not used yet
 
:* BIT4: Not used yet
 
:* BIT5: Not used yet
 
:* BIT6: Not used yet
 
:* BIT7 (Most significant): Not used yet
 
  
 
=== ascii Names outputs ===
 
=== ascii Names outputs ===
Line 202: Line 532:
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
| align="center" style="background:#f0f0f0;"|'''Byte'''
 
|-
 
|-
| 91-180||128-255
+
| 1-80||128-255
 
|}
 
|}
  
Line 209: Line 539:
 
:…
 
:…
 
:Byte 240 – 255: ascii name of the last output (16 characters)
 
:Byte 240 – 255: ascii name of the last output (16 characters)
 +
 +
== Data input modules (Page 81 - 238) ==
 +
;Page 81 – 238 -> Contains data of the input modules (79 modules maximum, 632 inputs -> 0-631)
 +
 +
The input data can be found back from page 81 till page 238, each input module has 2 pages. These Pages contain active data depending on Page0/Byte2.
 +
 +
Every input Module has 2 input pages which contains all the input and configuration data:
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 81-82||x
 +
|}
 +
 +
: These pages are entirely used for input module 0. Page 81 is the first page, 82 the second.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 83-84||x
 +
|}
 +
 +
: These pages are entirely used for input module 1. Page 83 is the first page, 84 the second.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 85-86||x
 +
|}
 +
 +
: These pages are entirely used for input module 2.  Page 85 is the first page, 86 the second.
 +
 +
...
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 237-238||x
 +
|}
 +
 +
: These pages are entirely used for input module 78. Page 237 is the first page, 238 the second.
 +
 +
 +
;Every input page has following structure:
 +
 +
=== Input data ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||0-6
 +
|}
 +
 +
:Byte 0: Type device (more information see document “Technical device information”)
 +
:Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
 +
:Byte 2: ID2
 +
:Byte 3: ID3
 +
:Byte 4: Module Type: If 0 or 255, the normal modules are used, if 72 ("H"), a Heap pump module is found
 +
:Byte 5:
 +
:Byte 6:
 +
 +
=== Input configuration ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||7-14
 +
|}
 +
 +
Each input has 1 configuration byte, 8 configuration bytes per module. Each BIT of the configuration byte represents an input configuration. BIT0 is the least significant BIT of the configuration BYTE, BIT7 is the most significant BIT.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||7
 +
|}
 +
 +
: Configuration Byte of first input (0) of this module:
 +
: BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||8
 +
|}
 +
 +
: Configuration Byte of second input (1) of this module:
 +
: BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).
 +
 +
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||14
 +
|}
 +
 +
: Configuration Byte of last input (7) of this module:
 +
: BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).
 +
 +
=== DALI: Link Input Nr with Dali Nr ===
 +
 +
Every input can be linked to a Dali input (like motion sensor) with address (0-63). When the Dali Motion sensor detects motion, the linked input will be triggered. Typically, a virtual input module is created and the those virtual inputs are linked to Dali inputs. Lunatone and Helvar inputs are supported. In the below page, the Dali inputs can be programmed to be linked to a system input.
 +
 +
Below, you can find the Memory locations for Firmware 1.0.110 or higher:
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||15-30
 +
|}
 +
 +
*Byte 15-16: (byte 15->x.MSB, byte 16->x.LSB) Input 0 of this module is linked with Dali Lunatone input x.LSB (when x.LSB<64) or with Dali Helvar input x.LSB-64 (when x.LSB>63 and x.LSB<128). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
*Byte 17-18: (byte 17->x.MSB, byte 18->x.LSB) Input 1 of this module is linked with Dali Lunatone input x.LSB (when x.LSB<64) or with Dali Helvar input x.LSB-64 (when x.LSB>63 and x.LSB<128). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
*…
 +
*Byte 29-30: (byte 29->x.MSB, byte 30->x.LSB) Input 7 of this module is linked with Dali Lunatone input x.LSB (when x.LSB<64) or with Dali Helvar input x.LSB-64 (when x.LSB>63 and x.LSB<128). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
 +
Below, you can find the Memory locations for Firmware 1.0.109 or lower:
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||15-22
 +
|}
 +
 +
*Byte 15: Input 0 of this module is linked with Dali Lunatone input x (when x<64) or with Dali Helvar input x-64 (when x>63 and x<128)
 +
*Byte 16: Input 1 of this module is linked with Dali Lunatone input x (when x<64) or with Dali Helvar input x-64 (when x>63 and x<128)
 +
*…
 +
*Byte 22: Input 7 of this module is linked with Dali Lunatone input x (when x<64) or with Dali Helvar input x-64 (when x>63 and x<128)
 +
 +
=== Input action "1 second press" ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||32-79
 +
|}
 +
 +
Each input can be linked to a basic action (6 bytes) when the input is pressed for 1 second. See [[Action Types AIO]] for more details about the possible basic actions that can be used.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||32-37
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 0 of this module:
 +
: Byte 32: Type
 +
: Byte 33: Action
 +
: Byte 34: Device Nr (MSB)
 +
: Byte 35: Device Nr (LSB)
 +
: Byte 36: Extra Parameter (MSB)
 +
: Byte 37: Extra Parameter (LSB) 
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||38-43
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 1 of this module:
 +
: Byte 38: Type
 +
: Byte 39: Action
 +
: Byte 40: Device Nr (MSB)
 +
: Byte 41: Device Nr (LSB)
 +
: Byte 42: Extra Parameter (MSB)
 +
: Byte 43: Extra Parameter (LSB) 
 +
 +
...
 +
 +
=== Pulse Counter Link ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||120-127
 +
|}
 +
 +
Maximum 32 Pulse Counters can be assigned. Each pulse counter can be linked to 1 input. Only external Input modules and Brain Built-in inputs support Pulse Counters.
 +
: Byte 120: Pulse counter nr linked to input 0 of this module
 +
: Byte 121: Pulse counter nr linked to input 1 of this module
 +
: Byte 122: Pulse counter nr linked to input 2 of this module
 +
: ...
 +
: Byte 127: Pulse counter nr linked to input 7 of this module
 +
 +
=== ascii Names inputs ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| First page||128-255
 +
|}
 +
 +
:Byte 128 – 143: ascii name of the first input of this module (16 characters)
 +
:Byte 144 – 159: ascii name of the second input of this module (16 characters)
 +
:…
 +
:Byte 240 – 255: ascii name of the last input (16 characters)
 +
 +
=== Toggle input link ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||0-15
 +
|}
 +
 +
For each input, an output or a special function (basic actions) can be linked. This is configured in the following bytes:
 +
 +
:Byte 0: MSB of the input link word of input 0 of this input module
 +
:Byte 1: LSB of the input link word of input 0 of this input module
 +
:Byte 2: MSB of the input link word of input 1 of this input module
 +
:Byte 3: LSB of the input link word of input 1 of this input module
 +
:Byte 4: MSB of the input link word of input 2 of this input module
 +
:Byte 5: LSB of the input link word of input 2 of this input module
 +
:…
 +
 +
The input link word has following configuration:
 +
* BIT 0-9: These bits contains the output number of the output to be toggled by input x (only works when BIT10,12,13,14,15=0)
 +
* BIT10: 0->Toggle output in BIT0-9 is used, 1->"input action press" basic actions, "input action release" basic actions etc are being used
 +
* BIT11: 1-> Dimming up when the BIT10=0 and BIT0-9 contains a dimmer output, 0->Dimming down when the BIT10=0 and BIT0-9 contains a dimmer output (this bit can be ignored when programming the input link word)
 +
* BIT12: 1-> 1 second press & hold function is programmed, 0-> 1 second press & hold function is not programmed
 +
* BIT13: 1-> 2 second press & hold function is programmed, 0-> 2 second press & hold function is not programmed
 +
* BIT14: Not used
 +
* BIT15: 1-> Double press is programmed, 0-> Double press is not programmed
 +
 +
Notes:
 +
* When Input link BIT10=1, the PRESS and RELEASE basic action will work.
 +
* For the 1SEC, 2SEC or DOUBLE PRESS actions to work BIT10=0 and BIT(12 and/or 13 and/or 15)=1
 +
* When 1SEC or 2SEC or DOUBLE PRESS actions is activated, the RELEASE action will work but not the PRESS action
 +
 +
=== Input action "Press" ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||16-63
 +
|}
 +
 +
Each input can be linked to a basic action (6 bytes) when the input is pressed. See [[Action Types AIO]] for more details about the possible basic actions that can be used.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||16-21
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 0 of this module:
 +
: Byte 16: Type
 +
: Byte 17: Action
 +
: Byte 18: Device Nr (MSB)
 +
: Byte 19: Device Nr (LSB)
 +
: Byte 20: Extra Parameter (MSB)
 +
: Byte 21: Extra Parameter (LSB) 
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||22-27
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 1 of this module:
 +
: Byte 22: Type
 +
: Byte 23: Action
 +
: Byte 24: Device Nr (MSB)
 +
: Byte 25: Device Nr (LSB)
 +
: Byte 26: Extra Parameter (MSB)
 +
: Byte 27: Extra Parameter (LSB) 
 +
 +
...
 +
 +
=== Input action "Release" ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||64-111
 +
|}
 +
 +
Each input can be linked to a basic action (6 bytes) when the input is released. See [[Action Types AIO]] for more details about the possible basic actions that can be used.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||64-69
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 0 of this module:
 +
: Byte 64: Type
 +
: Byte 65: Action
 +
: Byte 66: Device Nr (MSB)
 +
: Byte 67: Device Nr (LSB)
 +
: Byte 68: Extra Parameter (MSB)
 +
: Byte 69: Extra Parameter (LSB) 
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||70-75
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 1 of this module:
 +
: Byte 70: Type
 +
: Byte 71: Action
 +
: Byte 72: Device Nr (MSB)
 +
: Byte 73: Device Nr (LSB)
 +
: Byte 74: Extra Parameter (MSB)
 +
: Byte 75: Extra Parameter (LSB) 
 +
 +
...
 +
 +
=== Input action "2 second press" ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||160-207
 +
|}
 +
 +
Each input can be linked to a basic action (6 bytes) when the input is pressed for 2 seconds. See [[Action Types AIO]] for more details about the possible basic actions that can be used.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||160-165
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 0 of this module:
 +
: Byte 160: Type
 +
: Byte 161: Action
 +
: Byte 162: Device Nr (MSB)
 +
: Byte 163: Device Nr (LSB)
 +
: Byte 164: Extra Parameter (MSB)
 +
: Byte 165: Extra Parameter (LSB) 
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||166-171
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 1 of this module:
 +
: Byte 166: Type
 +
: Byte 167: Action
 +
: Byte 168: Device Nr (MSB)
 +
: Byte 169: Device Nr (LSB)
 +
: Byte 170: Extra Parameter (MSB)
 +
: Byte 171: Extra Parameter (LSB) 
 +
 +
...
 +
 +
=== Input action "double press" ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||208-255
 +
|}
 +
 +
Each input can be linked to a basic action (6 bytes) when the input is double pressed. if an input is single pressed, the action "Release" will be executed. See [[Action Types AIO]] for more details about the possible basic actions that can be used.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||208-213
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 0 of this module:
 +
: Byte 208: Type
 +
: Byte 209: Action
 +
: Byte 210: Device Nr (MSB)
 +
: Byte 211: Device Nr (LSB)
 +
: Byte 212: Extra Parameter (MSB)
 +
: Byte 213: Extra Parameter (LSB) 
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| Second page||214-219
 +
|}
 +
 +
These 6 bytes represents the basic action bytes for input 1 of this module:
 +
: Byte 214: Type
 +
: Byte 215: Action
 +
: Byte 216: Device Nr (MSB)
 +
: Byte 217: Device Nr (LSB)
 +
: Byte 218: Extra Parameter (MSB)
 +
: Byte 219: Extra Parameter (LSB) 
 +
 +
...
 +
 +
== Data Sensor modules (Page 239 - 254) ==
 +
;Page 239 – 254 -> Contains data of the Sensor modules (16 modules maximum, 128 Sensors -> 0-127)
 +
 +
The sensor data can be found back from page 229 till page 254. These Pages that contain active data depending on Page0/Byte3.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239||x
 +
|}
 +
 +
: This page is entirely used for sensor module 0.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 240||x
 +
|}
 +
 +
: This page is entirely used for sensor module 1.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 241||x
 +
|}
 +
 +
: This page is entirely used for sensor module 2.
 +
 +
...
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 254||x
 +
|}
 +
 +
: This page is entirely used for sensor module 15.
 +
 +
 +
;Every sensor page has following structure:
 +
 +
=== Sensor data ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||0-6
 +
|}
 +
 +
:Byte 0: Type device (more information see document “Technical device information”)
 +
:Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
 +
:Byte 2: ID2
 +
:Byte 3: ID3
 +
:Byte 4: Module Type: If 0 or 255, the normal modules are used, if 72 ("H"), a Heap pump module is found
 +
:Byte 5:
 +
:Byte 6:
 +
 +
=== Temperature Group Follow ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||8-23
 +
|}
 +
 +
:Byte 8: Group nr (MSB) to execute when temperature 0 of this module is changing
 +
:Byte 9: Group nr (LSB) to execute when temperature 0 of this module is changing
 +
:Byte 10: Group nr (MSB) to execute when temperature 1 of this module is changing
 +
:Byte 11: Group nr (LSB) to execute when temperature 1 of this module is changing
 +
:…
 +
:Byte 22: Group nr (MSB) to execute when temperature 7 of this module is changing
 +
:Byte 23: Group nr (LSB) to execute when temperature 7 of this module is changing
 +
 +
=== Humidity Group Follow ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||24-36
 +
|}
 +
 +
:Byte 24: Group nr (MSB) to execute when humidity 0 of this module is changing
 +
:Byte 25: Group nr (LSB) to execute when humidity 0 of this module is changing
 +
:Byte 26: Group nr (MSB) to execute when humidity 1 of this module is changing
 +
:Byte 27: Group nr (LSB) to execute when humidity 1 of this module is changing
 +
:…
 +
:Byte 38: Group nr (MSB) to execute when humidity 7 of this module is changing
 +
:Byte 39: Group nr (LSB) to execute when humidity 7 of this module is changing
 +
 +
=== Brightness Group Follow ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||40-55
 +
|}
 +
 +
:Byte 40: Group nr (MSB) to execute when brightness 0 of this module is changing
 +
:Byte 41: Group nr (LSB) to execute when brightness 0 of this module is changing
 +
:Byte 42: Group nr (MSB) to execute when brightness 1 of this module is changing
 +
:Byte 43: Group nr (LSB) to execute when brightness 1 of this module is changing
 +
:…
 +
:Byte 54: Group nr (MSB) to execute when brightness 7 of this module is changing
 +
:Byte 55: Group nr (LSB) to execute when brightness 7 of this module is changing
 +
 +
=== Air Quality (CO2) Group Follow ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||56-71
 +
|}
 +
 +
:Byte 56: Group nr (MSB) to execute when air quality (CO2) 0 of this module is changing
 +
:Byte 57: Group nr (LSB) to execute when air quality (CO2) 0 of this module is changing
 +
:Byte 58: Group nr (MSB) to execute when air quality (CO2) 1 of this module is changing
 +
:Byte 59: Group nr (LSB) to execute when air quality (CO2) 1 of this module is changing
 +
:…
 +
:Byte 70: Group nr (MSB) to execute when air quality (CO2) 7 of this module is changing
 +
:Byte 71: Group nr (LSB) to execute when air quality (CO2) 7 of this module is changing
 +
 +
=== DALI: Link sensor Nr with Dali Nr ===
 +
 +
Every sensor can be linked to a Dali input (with sensor capabilities) with address (0-63). Some Dali motion sensors also have built-in temperature sensors and by some models also a built-in Lux meter. These values can be used to take smart actions. Typically, a virtual sensor module is created and the those virtual sensors are linked to the available Dali sensors. Lunatone is supported. In the below page, the Dali sensors can be programmed to be linked to a virtual system sensor.
 +
 +
Below, you can find the Memory locations for Firmware 1.0.110 or higher:
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||72-87
 +
|}
 +
 +
*Byte 72-73: (byte 72->x.MSB, byte 73->x.LSB) Sensor 0 of this module is linked with Dali Sensor x.LSB (when x.LSB<64). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
*Byte 74-75: (byte 74->x.MSB, byte 75->x.LSB) Sensor 1 of this module is linked with Dali Sensor x.LSB (when x.LSB<64). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
*…
 +
*Byte 86-87: (byte 86->x.MSB, byte 87->x.LSB) Sensor 7 of this module is linked with Dali Sensor x.LSB (when x.LSB<64). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
 +
 +
Below, you can find the Memory locations for Firmware 1.0.109 or lower:
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||72-79
 +
|}
 +
 +
*Byte 72: Sensor 0 of this module is linked with Dali Sensor x (when x<64).
 +
*Byte 73: Sensor 1 of this module is linked with Dali Sensor x (when x<64).
 +
*…
 +
*Byte 79: Sensor 7 of this module is linked with Dali Sensor x (when x<64).
 +
 +
=== ascii Names Sensors ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 239-254||128-255
 +
|}
 +
 +
:Byte 128 – 143: ascii name of the first sensor of this module (16 characters)
 +
:Byte 144 – 159: ascii name of the second sensor of this module (16 characters)
 +
:…
 +
:Byte 240 – 255: ascii name of the last sensor (16 characters)
 +
 +
== Can Control modules (Page 255) ==
 +
;Page 255 -> Contains data of maximum 16 Can Control modules
 +
 +
In this page, every Can Control has 16 bytes to keep the most important configuration data.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 255||0-15
 +
|}
 +
 +
:Byte 0: Type device (more information see document “Technical device information”) of the first Can Control module
 +
:Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
 +
:Byte 2: ID2
 +
:Byte 3: ID3
 +
:Byte 4:
 +
:Byte 5: 
 +
:Byte 6: 
 +
:Byte 7:
 +
:Byte 8:
 +
:Byte 9:
 +
:Byte 10:
 +
:Byte 11:
 +
:Byte 12:
 +
:Byte 13:
 +
:Byte 14:
 +
:Byte 15:
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 255||16-31
 +
|}
 +
 +
:Byte 16: Type device (more information see document “Technical device information”) of the second Can Control module
 +
:Byte 17: ID1 (ID1, 2, 3 gives the unique ID of the device)
 +
:Byte 18: ID2
 +
:Byte 19: ID3
 +
:Byte 20:
 +
:Byte 21: 
 +
:Byte 22: 
 +
:Byte 23:
 +
:Byte 24:
 +
:Byte 25:
 +
:Byte 26:
 +
:Byte 27:
 +
:Byte 28:
 +
:Byte 29:
 +
:Byte 30:
 +
:Byte 31:
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 255||32-47
 +
|}
 +
 +
:...
 +
 +
== Group Actions Pages (Page 256 - 382) ==
 +
 +
A Group Action is a list of Basic Actions (BA's) to be executed together.
 +
Group actions are implemented in a flexible way in other words, a group action can contain a flexible number of BA's. As an example, you can configure Group Action 0 to be able to contain 7 BA's, Group Action 1 for 33 BA's.
 +
 +
Group Actions are configured in Eeprom and consist of 3 eeprom sections:
 +
* Page 256-259: GAT (Group Allocation table): This table indicates the start and end address of the BA's of each group action
 +
* Page 261-276: Contains the Group names of each Group Action
 +
* Page 281-380: Contains all the BA's of each Group
 +
 +
=== Group Action GAT Pages ===
 +
 +
The Group Allocation Table (GAT) will define the start and end address of each Group Action. These 4 pages defines the start and end addresses of 256 (0-255) group actions.
 +
 +
;Page 256 – 259 -> Contains the Start Address and end addresses of 256 Group Actions
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 256||0-1
 +
|}
 +
 +
: These 2 bytes contains the start address of Group Action 0 (0->MSB, 1->LSB)
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 256||2-3
 +
|}
 +
 +
: These 2 bytes contains the end address of Group Action 0 (2->MSB, 3->LSB)
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 256||4-5
 +
|}
 +
 +
: These 2 bytes contains the start address of Group Action 1 (4->MSB, 5->LSB)
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 256||6-7
 +
|}
 +
 +
: These 2 bytes contains the end address of Group Action 1 (6->MSB, 7->LSB)
 +
 +
:...
 +
 +
=== Group Action Name Page ===
 +
 +
;Page 261 – 276 -> Contains the Group Actions name.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 261-276||0-255
 +
|}
 +
 +
:Page 261 Byte 0 – 15: ascii name of Group Action 0 (16 characters)
 +
:Page 261 Byte 16 – 31: ascii name of Group Action 1 (16 characters)
 +
:Page 261 Byte 32 – 47: aascii name of Group Action 2 (16 characters)
 +
:...
 +
:Page 261 Byte 240 – 255: ascii name of Group Action 15 (16 characters)
 +
:Page 261 Byte 0 – 15: ascii name of Group Action 16 (16 characters)
 +
:...
 +
 +
;Page 277 – 280 -> Reserved for extension Group Action Names.
 +
 +
=== Group Action BA Pages ===
 +
 +
Each Page contains 42 BA's. Each BA is made of 6 bytes. The first BA of each page is written in Byte 0-5, the second BA is written in Byte 6-11 etc
 +
 +
;Page 281 – 380 -> Contains data of 4200 BA's.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 281||0-125
 +
|}
 +
 +
: This half page is entirely used for BA 0 - 20.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 281||128-253
 +
|}
 +
 +
: This half page is entirely used for BA 21 - 41.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 282||0-125
 +
|}
 +
 +
: This half page is entirely used for BA 42 - 62.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 282||128-253
 +
|}
 +
 +
: This half page is entirely used for BA 63 - 83.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 283||0-125
 +
|}
 +
 +
: This half page is entirely used for BA 84 - 104.
 +
...
 +
 +
== CAN slave modules (Page 383 - 390) ==
 +
=== CAN slave configuration ===
 +
;Page 383-390 -> Contains the configuration data of the CAN slave modules (128 modules maximum)
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 383||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 0-15.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 384||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 16-31.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 385||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 32-47.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 386||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 48-63.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 387||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 64-79.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 388||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 80-95.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 389||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 96-111.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 390||x
 +
|}
 +
 +
: This page is entirely used for the configuration data of the CAN slave modules 112-127.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 383-390||0-15
 +
|}
 +
 +
:Byte 0: ID_2 of the first CAN module of this page
 +
:Byte 1: ID_1 of the first CAN module of this page
 +
:Byte 2: ID_0 of the first CAN module of this page
 +
:Byte 3: Module link Type:
 +
:* Module link type:
 +
:** Type = 100: This CAN slave is linked to the internal CAN bus of the Core/Core+
 +
:** Type = 0: This CAN slave is linked to the first CAN Control
 +
:** Type = 1: This CAN slave is linked to the second CAN Control
 +
:** ...
 +
:Byte 4: Sensor Link 0 of the first CAN module of this page
 +
:Byte 5: Sensor Link 1 of the first CAN module of this page
 +
:Byte 6: Input Link 0 of the first CAN module of this page
 +
:Byte 7: Input Link 1 of the first CAN module of this page
 +
:Byte 8: Input Link 2 of the first CAN module of this page
 +
:Byte 9: Input Link 3 of the first CAN module of this page
 +
:Byte 10: Input Link 4 of the first CAN module of this page
 +
:Byte 11: Input Link 5 of the first CAN module of this page
 +
:Byte 12: Modbus Address of the Modbus device connected to the uCAN - See [[Modbus Parameters]]
 +
:Byte 13: Modbus Type - See [[Modbus Parameters]]
 +
:Byte 14: Modbus Model - See [[Modbus Parameters]]
 +
:Byte 15: Modbus Speed - See [[Modbus Parameters]]
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 383-390||16-31
 +
|}
 +
 +
:Byte 16: ID_2 of the second CAN module of this page
 +
:Byte 17: ID_1 of the second CAN module of this page
 +
:Byte 18: ID_0 of the second CAN module of this page
 +
:Byte 19: Module link Type:
 +
:* Module link type:
 +
:** Type = 0: This CAN slave is linked to the internal CAN bus of the Core/Core+
 +
:** Type = 1: This CAN slave is linked to the first CAN Control
 +
:** Type = 2: This CAN slave is linked to the second CAN Control
 +
:** ...
 +
:Byte 20: Sensor Link 0 of the second CAN module of this page
 +
:Byte 21: Sensor Link 1 of the second CAN module of this page
 +
:Byte 22: Input Link 0 of the second CAN module of this page
 +
:Byte 23: Input Link 1 of the second CAN module of this page
 +
:Byte 24: Input Link 2 of the second CAN module of this page
 +
:Byte 25: Input Link 3 of the second CAN module of this page
 +
:Byte 26: Input Link 4 of the second CAN module of this page
 +
:Byte 27: Input Link 5 of the second CAN module of this page
 +
:Byte 28: Modbus Address of the Modbus device connected to the uCAN - See [[Modbus Parameters]]
 +
:Byte 29: Modbus Type - See [[Modbus Parameters]]
 +
:Byte 30: Modbus Model - See [[Modbus Parameters]]
 +
:Byte 31: Modbus Speed - See [[Modbus Parameters]]
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 383-390||32-...
 +
|}
 +
 +
:...
 +
 +
== Roller/Shutter (Page 391 - 414) ==
 +
 +
=== Link Shutter Nr with Output Nr ===
 +
 +
Every set of (2 consecutive) outputs can be configured as output or as Roller/Shutter. When configured as Roller/Shutter, those outputs can never be ON at the same time and a time and a delay will be applied between one output going OFF and the other going ON. Every Roller/Shutter has a number that is linked to a set of outputs. The below page will set this link.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 391||0-255
 +
|}
 +
 +
:Byte 0: Shutter 0 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
 +
:Byte 1: Shutter 1 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
 +
:Byte 2: Shutter 2 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
 +
:Byte 3: Shutter 3 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
 +
:…
 +
:Byte 254: Shutter 254 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
 +
:Byte 255: Shutter 255 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
 +
 +
Example: When in this Page, 7 is stored in byte 10, Output 14 and 15 are linked to Roller/Shutter nr 10.
 +
 +
Note: The outputs that can be used range from 0 to 511.
 +
 +
=== Configure Roller/Shutter Outputs ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 392||0-79
 +
|}
 +
 +
:Byte 0: Roller/Shutter setting for Output Module 0 (and the 8 outputs representing this module)
 +
:Byte 1: Roller/Shutter setting for Output Module 1
 +
:Byte 2: Roller/Shutter setting for Output Module 2
 +
:...
 +
:Byte 79: Roller/Shutter setting for Output Module 79
 +
 +
Every Roller/shutter setting has following bit representation:
 +
 +
:BIT7: =1-> Output 7 and 6 of this module configured as Output, =0-> Output 7 and 6 configured as Roller/Shutter.
 +
:BIT6: =1-> Output 5 and 4 of this module configured as Output, =0-> Output 5 and 4 configured as Roller/Shutter.
 +
:BIT5: =1-> Output 3 and 2 of this module configured as Output, =0-> Output 3 and 2 configured as Roller/Shutter.
 +
:BIT4: =1-> Output 1 and 0 of this module configured as Output, =0-> Output 1 and 0 configured as Roller/Shutter.
 +
:BIT3: =1-> Output 7 configured as UP, Output 6 configured as DOWN, =0-> Output 6 configured as UP, Output 7 configured as DOWN.
 +
:BIT2: =1-> Output 5 configured as UP, Output 4 configured as DOWN, =0-> Output 4 configured as UP, Output 5 configured as DOWN.
 +
:BIT1: =1-> Output 3 configured as UP, Output 2 configured as DOWN, =0-> Output 2 configured as UP, Output 3 configured as DOWN.
 +
:BIT0: =1-> Output 1 configured as UP, Output 0 configured as DOWN, =0-> Output 0 configured as UP, Output 1 configured as DOWN.
 +
 +
=== Up Timer settings of an individual Roller/Shutter ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 393-394||0-255
 +
|}
 +
 +
:Page 393 Byte 0: Up Timer for Roller/Shutter 0 (MSB)
 +
:Page 393 Byte 1: Up Timer for Roller/Shutter 0 (LSB)
 +
:Page 393 Byte 2: Up Timer for Roller/Shutter 1 (MSB)
 +
:Page 393 Byte 3: Up Timer for Roller/Shutter 1 (LSB)
 +
:…
 +
:Page 394 Byte 254: Up Timer for Roller/Shutter 255 (MSB)
 +
:Page 394 Byte 255: Up Timer for Roller/Shutter 255 (LSB)
 +
 +
Note: This timer setting is in 100ms value, when 0 the timer is not in use.
 +
 +
=== Down Timer settings of an individual Roller/Shutter ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 395-396||0-255
 +
|}
 +
 +
:Page 395 Byte 0: Down Timer for Roller/Shutter 0 (MSB)
 +
:Page 395 Byte 1: Down Timer for Roller/Shutter 0 (LSB)
 +
:Page 395 Byte 2: Down Timer for Roller/Shutter 1 (MSB)
 +
:Page 395 Byte 3: Down Timer for Roller/Shutter 1 (LSB)
 +
:…
 +
:Page 396 Byte 254: Down Timer for Roller/Shutter 255 (MSB)
 +
:Page 396 Byte 255: Down Timer for Roller/Shutter 255 (LSB)
 +
 +
Note: This timer setting is in 100ms value, when 0 the timer is not in use.
 +
 +
=== Name of a Roller/Shutter ===
 +
 +
Every Roller/Shutter can have a name of max 16 characters.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 397-412||0-255
 +
|}
 +
 +
:Page 395 Byte 0-15: Name of Roller/Shutter 0
 +
:Page 395 Byte 16-31: Name of Roller/Shutter 1
 +
:Page 395 Byte 32-47: Name of Roller/Shutter 2
 +
:…
 +
:Page 410 Byte 240-255: Name of Roller/Shutter 255
 +
 +
=== Shutter Nr linked to shutter group ===
 +
 +
Every Shutter can be linked to 16 (0-15) Shutter groups. Every Shutter has an associated shutter group value (word->16 bits). This shutter group value contains 16 bits which represents the 16 existing shutter groups:
 +
* If BIT0=1 -> the shutter is not part of Group 0
 +
* If BIT0=0 -> the shutter is part of Group 0
 +
* If BIT1=1 -> the shutter is not part of Group 1
 +
* If BIT1=0 -> the shutter is part of Group 1
 +
...
 +
* If BIT15=1 -> the shutter is not part of Group 15
 +
* If BIT15=0 -> the shutter is part of Group 15
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 413-414||0-255
 +
|}
 +
 +
:Page 413 Byte 0: Shutter Group Value for Roller/Shutter 0 (MSB)
 +
:Page 413 Byte 1: Shutter Group Value for Roller/Shutter 0 (LSB)
 +
:Page 413 Byte 2: Shutter Group Value for Roller/Shutter 1 (MSB)
 +
:Page 413 Byte 3: Shutter Group Value for Roller/Shutter 1 (LSB)
 +
:…
 +
:Page 414 Byte 254: Shutter Group Value for Roller/Shutter 255 (MSB)
 +
:Page 414 Byte 255: Shutter Group Value for Roller/Shutter 255 (LSB)
 +
 +
== Sensor Extra (Page 471 - 479) ==
 +
 +
=== Sensor Extra Group Follow ===
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 471||0-255
 +
|}
 +
 +
:Byte 0: Group nr (MSB) to execute when Sensor Extra 0 is changing
 +
:Byte 1: Group nr (LSB) to execute when Sensor Extra 0 is changing
 +
:Byte 2: Group nr (MSB) to execute when Sensor Extra 1 is changing
 +
:Byte 3: Group nr (LSB) to execute when Sensor Extra 1 is changing
 +
:…
 +
:Byte 254: Group nr (MSB) to execute when Sensor Extra 127 is changing
 +
:Byte 255: Group nr (LSB) to execute when Sensor Extra 127 is changing
 +
 +
=== Sensor Extra Name Page ===
 +
 +
;Page 472 – 479 -> Contains the Name (16 characters Max) of each extra sensor used. The system can contain maximum 64 sensors that can be freely used. 4 pages are reserved for future use
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 472-479||0-255
 +
|}
 +
 +
:Page 472 Byte 0 – 15: ascii name of Sensor 0 (16 characters)
 +
:Page 472 Byte 16 – 31: ascii name of Sensor 1 (16 characters)
 +
:Page 472 Byte 32 – 47: ascii name of Sensor 2 (16 characters)
 +
:...
 +
:Page 472 Byte 240 – 255: ascii name of Sensor 15 (16 characters)
 +
:Page 473 Byte 0 – 15: ascii name of Sensor 16 (16 characters)
 +
:...
 +
 +
== Validation Bit (Page 480 - 497)==
 +
 +
=== Validation Bit Group Follow ===
 +
 +
;Page 480 – 481 -> Contains the Group Nr's (0-254) that needs to be executed when the validation bits (0-255) are changing.
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 480-481||0-255
 +
|}
 +
 +
:Page 480 Byte 0: Group nr (MSB) to execute when Validation Bit 0 is changing
 +
:Page 480 Byte 1: Group nr (LSB) to execute when Validation Bit 0 is changing
 +
:Page 480 Byte 2: Group nr (MSB) to execute when Validation Bit 1 is changing
 +
:Page 480 Byte 3: Group nr (LSB) to execute when Validation Bit 1 is changing
 +
:…
 +
:Page 480 Byte 254: Group nr (MSB) to execute when Validation Bit 127 is changing
 +
:Page 480 Byte 255: Group nr (LSB) to execute when Validation Bit 127 is changing
 +
:Page 481 Byte 0: Group nr (MSB) to execute when Validation Bit 128 is changing
 +
:Page 481 Byte 1: Group nr (LSB) to execute when Validation Bit 128 is changing
 +
:...
 +
 +
=== Validation Bit Name Page ===
 +
 +
;Page 482 – 497 -> Contains the Name (16 characters Max) of each Validation Bit (0-255).
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 482-497||0-255
 +
|}
 +
 +
:Page 482 Byte 0 – 15: ascii name of Validation Bit 0 (16 characters)
 +
:Page 482 Byte 16 – 31: ascii name of Validation Bit 1 (16 characters)
 +
:Page 482 Byte 32 – 47: ascii name of Validation Bit 2 (16 characters)
 +
:...
 +
:Page 482 Byte 240 – 255: ascii name of Validation Bit 15 (16 characters)
 +
:Page 483 Byte 0 – 15: ascii name of Validation Bit 16 (16 characters)
 +
:...
 +
 +
== Error & Event Logging (Page 506 - 511)==
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 506-511||0-255
 +
|}
 +
 +
Some Error and Event codes (like health checker info, startup system, some errors) will be logged in EEPROM (see also FRAM that has logging page too). Each logging item consist of 16 bytes:
 +
* Date and Time: 6 bytes
 +
* Type of logging: 2 bytes
 +
* Event and error data: 8 bytes
 +
* 16 logging items per EEPROM page, 6 pages: 96 logging items
 +
The logging location for the next logging item is written in EEPROM at Page0/Byte83(MSB)-84(LSB): If the logging location=0 then the 16 bytes will be written starting at EEPROM location Byte506/Byte0, if logging location=1 then the 16 bytes will be written at FRAM location Byte506/Byte16 etc. After each 16 byte write operation, the logging location is updated (Page 0/Byte83-84).
 +
 +
When all 16 FRAM pages are written, the oldest location is overwritten.
 +
 +
;Page 506 -> Contains 16 logging items
 +
;Page 507 -> Contains 16 logging items
 +
;Page 508 -> Contains 16 logging items
 +
;etc
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 506||0-15
 +
|}
 +
 +
: Page 506 Byte 0: Year
 +
: Page 506 Byte 1: Month
 +
: Page 506 Byte 2: Day
 +
: Page 506 Byte 3: Hour
 +
: Page 506 Byte 4: Minute
 +
: Page 506 Byte 5: Second
 +
: Page 506 Byte 6: Logging Type1
 +
: Page 506 Byte 7: Logging Type2
 +
: Page 506 Byte 8-15: Data0-7
 +
 +
{| class="wikitable sortable" border="1"
 +
| align="center" style="background:#f0f0f0;"|'''Page'''
 +
| align="center" style="background:#f0f0f0;"|'''Byte'''
 +
|-
 +
| 506||16-31
 +
|}
 +
 +
: Page 506 Byte 16: Year
 +
: Page 506 Byte 17: Month
 +
: Page 506 Byte 18: Day
 +
: Page 506 Byte 19: Hour
 +
: Page 506 Byte 20: Minute
 +
: Page 506 Byte 21: Second
 +
: Page 506 Byte 22: Logging Type1
 +
: Page 506 Byte 23: Logging Type2
 +
: Page 506 Byte 24-31: Data0-7 
 +
 +
...
 +
 +
Note:
 +
* If Logging Type1='E' and Logging Type2='V' -> Event
 +
* If Logging Type1='E' and Logging Type2='R' -> Error
 +
* If Logging Type1='B' and Logging Type2='A' -> Basic Action

Revision as of 11:45, 15 July 2022

Contents

Introduction

The AIO has an onboard Eeprom connected via I2C to the DSPIC33E (The Master). This document describes the Eeprom memory locations used. When changes are made by using CLI instruction "Eeprom write", do not forget the use the CLI instruction "Eeprom activate" to activate the changes that have been made.

General Configuration Bytes (Page 0)

Page 0 -> Controller specific data
Page Byte
0 0
When this value = 255, Automatic detection (detected via the Front Panel Hardware) will be done if this module is a Core or a Core+ module. When this value = 0 the system is forced to act as a Core, when this value = 1 the system is forced to act as a Core+ without any hardware detection.
Page Byte
0 1
Number of output modules: This byte specifies the number of output (output, dim control, shutter/curtain ...) modules known by the Master controller on the RS485 bus. Maximum 80.
Page Byte
0 2
Number of input modules: This byte specifies the number of input (input, can control ...) modules known by the Master controller on the RS485 bus. Maximum 80.
Page Byte
0 3
Number of sensor modules: This byte specifies the number of sensor modules known by the Master controller on the RS485 bus. Maximum 16.
Page Byte
0 4
Scan time RS485 sensor modules: This value (between 1 and 254) will indicate the scan time (in 100ms) between each of the sensor module values of the individual modules. If the value =255 or =0, the standard value (50) will be taken (=value scan every 5 seconds). The more sensor modules, the lower this value can be set.
Page Byte
0 5
Nr of CAN Inputs: This value indicate the number of CAN inputs found on the CAN bus. When this value is 0 or 255 then no inputs have been found yet.
Page Byte
0 6
Nr of CAN sensors: This value indicate the number of CAN sensors found on the CAN bus. When this value is 0 or 255 then no sensors have been found yet.
Page Byte
0 7
Nr of CAN modules: This value indicate the number of CAN modules found on the CAN bus. When this value is 0 or 255 then no CAN modules have been found yet.
Page Byte
0 8
Scan time RS485 Bus: This value (between 1 and 254) will indicate the scan time (in ms) between each individual module. If the value =255 or =0, the standard value (8) will be taken (=scan time 8ms between 2 communication sessions). Higher value will slow down the bus, too low values can increase the error rate on the Bus.
Page Byte
0 9
Nr of CAN Control modules: This value (max 16) indicates the number of CAN Control modules found on the RS485 Bus. When this value is 0 or 255 then no CAN Control modules have been found yet.
Page Byte
0 10
Scan time RS485 Can Control modules: This value (between 1 and 254) will indicate the scan time (in 100ms) between each of the Can Control modules. If the value =255 or =0, the standard value (50) will be taken (=value scan every 5 seconds).
Page Byte
0 11
Automatic Module Discovery Byte:
* Automatic Module Discovery.BIT0: This bit will indicate if the module discovery is enabled (>0) or disabled (=0). When Automatic module discovery is enabled, during startup of the Core/Core+, the system will check for new modules on the RS485 Bus. This feature only works for GEN3 hardware. If GEN2 hardware must be added, Automatic Module Discovery must be disabled and a manual add (by using the init button when the module is in discovery mode) must be executed to add such a module. Once that module is added, Automatic Module Discovery can be enabled again.
* Automatic Module Discovery.BIT1: This bit represents if new (BIT=1) or old (BIT=0) slave firmware is used. This bit should be set correctly whether automatic search or manual discovery is used. These are the firmware versions that are being considered as new:
** Output V6.0.15 or higher
** Dim Control V6.0.16 or higher
** Input V6.0.23 or higher
** Temp V6.0.13 or higher
** Can Control V6.0.36 or higher
* Automatic Module Discovery.BIT2: This bit represents if full handshake (BIT=1) needs to be done or that the module can be with limited handshake (BIT=0). This will only work if BIT0=0 and BIT1=1.
Page Byte
0 12
Termination CAN bus byte: The CAN bus needs a termination at the beginning and the end of the CAN bus. The Termination of the CAN bus in the Core/Core+ can be set electronically. The termination at the other side of the Bus must be done by a jumper on the micro CAN module.
= 0 -> CAN bus termination is not set
> 0 -> CAN bus termination is set
Page Byte
0 13
Debug Mode byte: This byte will configure if Debug mode is ON for FRAM logging and/or BB forwarding (API Instruction 'EV'):
  • Debug Mode.BIT0=0->Enable BB debug BA forwarding via API Instruction 'EV' (Every BA executed will be forwarded), BIT0=1->disable (default setting)
  • Debug mode.BIT1=0->Enable FRAM BA logging (Every BA executed will be stored in FRAM, see also CLI instruction "logging list"), BIT1=1->disable (default setting)
  • Debug mode.BIT2=0->Disable Error FRAM logging (Errors generated by the system will not be stored in FRAM), BIT2=1->Enable (default setting)
  • Debug mode.BIT3=0->Disable Health Checker, BIT3=1->Enable (Default setting)
Please note that enabling the above functionality might slow down the system when large number of BA's are executed.
Page Byte
0 14-29
These 11 bytes represents the CAN configuration bytes. These bytes should be handled with care since a reconfiguration will also reconfigure the CAN slaves. Wrong values could make the CAN bus fail without possibilities to recover. The below bytes will automatically be written when changing the speed with CLI instruction "can speed write".
Byte 14: BRP value (Brain(+))
Byte 15: Propagation segment (Brain(+))
Byte 16: Phase Segment 1 (Brain(+))
Byte 17: Phase Segment 2 (Brain(+))
Byte 18: Sync Jump Width (Brain(+))
Byte 19: CRC8 of Byte 14-18
Byte 20: BRGCON1 (uCAN)
Byte 21: BRGCON2 (uCAN)
Byte 22: BRGCON3 (uCAN)
Byte 23: CRC8 of Byte 20-22
Byte 24: CRC8 of Byte 14-23
Byte 25: Can speed (kbps)
Byte 26: BRGCON1 (CAN Control)
Byte 27: BRGCON2 (CAN Control)
Byte 28: BRGCON3 (CAN Control)
Byte 29: CRC8 of Byte 26-28
Byte 30: Result of all integrity checks of all CAN parameters. If Byte 30 == 1 then integrity check is OK, if Byte 30 != 1 then integrity check is NOT OK.
Page Byte
0 50-51
Byte 50: This is the group nr (MSB) of the follow group action that will be executed when output all off is triggered
Byte 51: This is the group nr (LSB) of the follow group action that will be executed when output all off is triggered
Page Byte
0 52-53
Byte 52: This is the group nr (MSB) of the startup group action that will be executed at startup or reset of the processor
Byte 53: This is the group nr (LSB) of the startup group action that will be executed at startup or reset of the processor
Page Byte
0 54-55
Byte 54: This is the group nr (MSB) that will be executed when the time (minutes) is changed.
Byte 55: This is the group nr (LSB) that will be executed when the time (minutes) is changed.
Page Byte
0 56-57
Byte 56: This is the group nr (MSB) that will be executed when the time (hours) is changed.
Byte 57: This is the group nr (LSB) that will be executed when the time (hours) is changed.
Page Byte
0 58-59
Byte 58: This is the group nr (MSB) that will be executed when the date (days) is changed.
Byte 59: This is the group nr (LSB) that will be executed when the date (days) is changed.
Page Byte
0 60-61
Byte 60: This is the group nr (MSB) that will be executed when any of the outputs have been changed.
Byte 61: This is the group nr (LSB) that will be executed when any of the outputs have been changed.
Important note: This group action cannot contain any output action since it will create a loop so please avoid using any other BA's that will switch outputs.
Page Byte
0 84
This byte represents the Endless Loop detection Byte: Endless loop is a detection mechanism to detect when a group action will execute itself, or when for example a group action will execute a group which has the output group follow function enabled that executes again the same group action which can result in endless loops making the Master unresponsive. When the Endless loop detection is enabled, group actions with the same action number can only be executed once in 1 execution run. An execution run stops when the BA queue size returns to 0. When this Endless Loop Detection Byte==255 -> Endless loop detection is enabled, !=255 -> Endless loop is disabled.
Page Byte
0 85
This byte represents the Reset byte. This byte will be used of the Health Checker can perform a Master reset or not
This Reset byte has following bits:
* Reset.BIT0: If =1 -> CAN Health Checker can reset the Master Processor, =0 -> No automatic reset when CAN problems are detected
* Reset.BIT1: If =1 -> I2C1 Health Checker can reset the Master Processor, =0 -> No automatic reset when I2C1 problems are detected
* Reset.BIT2: If =1 -> I2C2 Health Checker can reset the Master Processor, =0 -> No automatic reset when I2C2 problems are detected
Page Byte
0 86-87
Byte 86: This is the timeout (MSB) in milliseconds for time machine "Task Immediate Queue".
Byte 87: This is the timeout (LSB) in milliseconds for time machine "Task Immediate Queue".
Default value is 15000ms when MSB&LSB==255.
Page Byte
0 88-89
Byte 88: This is the timeout (MSB) in milliseconds for time machine "Task Group Queue".
Byte 89: This is the timeout (LSB) in milliseconds for time machine "Task Group Queue".
Default value is 15000ms when MSB&LSB==255.
Page Byte
0 128-255
This part of the Eeprom is write protected and used to store production and testing data
Page Byte
0 128-129
This byte represents the next logging location. Event and error codes can be logged in EEPROM (see page FRAM 506-511). If the logging location=0 then the 16 bytes will be written starting at EEPROM location Byte506/Byte0, if byte=1 then the 16 bytes will be written at FRAM location Byte506/Byte16 etc
Byte128: logging_location.MSB
Byte129: logging_location.LSB
Page Byte
0 232-255
Byte 232: Production site
Byte 233: Serial number 2
Byte 234: Serial number 1
Byte 235: Serial number 0
Byte 236: CRC16.MSB (Byte232-235)
Byte 237: CRC16.LSB (Byte232-235)
Byte 238: Production Day
Byte 239: Production Month
Byte 240: Production Year
Byte 241: Testing result (number of errors found during testing)
Byte 242: CRC16.MSB (Byte238-241)
Byte 243: CRC16.LSB (Byte238-241)

Data output modules (Page 1-80)

Page 1 – 80 -> Contains data of the output modules (80 modules maximum, 640 outputs -> 0-639)

The output data can be found back from page 1 till page 80. These Pages that contains active data depending on Page0/Byte1.

Every output Module (that can be configured in normal or Roller/Shutter mode) has its own output page which contains the normal output data and the Roller/Shutter data:

Page Byte
1 x
This page is entirely used for output module 0.
Page Byte
2 x
This page is entirely used for output module 1.
Page Byte
3 x
This page is entirely used for output module 2.

...

Page Byte
80 x
This page is entirely used for output module 79.


Every output page has following structure

Output data

Page Byte
1-80 0-6
Byte 0: Type device (more information see document “Technical device information”)
Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 2: ID2
Byte 3: ID3
Byte 4: Module Type: If 0 or 255, the normal modules are used, if 72 ("H"), a Heap pump module is found
Byte 5:
Byte 6:
Page Byte
1-80 7-22
Standard Timer values for an output to be used. Each timer value has a word format and is programmed in 2 bytes (first byte LSB). The function of this word is decibed in the Timer Type Byte..
Byte 7 (MSB) and 8 (LSB) will specify the timer value for output 0
Byte 9 (MSB) and 10 (LSB) will specify the timer value for output 1
...
Byte 21 (MSB) and 22 (LSB) will specify the timer value for output 7
Page Byte
1-80 23-30
Standard Timer types for an output to be used. Each output has a timer type
Byte 23 Timer type for output 0
Byte 24 Timer type for output 1
...
Byte 30 Timer type for output 7


When Timer Type=0 or 255 -> Timer not active or not configured
When Timer Type=1 -> Timer value contains 100ms value in other words, if for example the Timer value (word) = 6004, the timer is set to 600.4 seconds
When Timer Type=2 -> Timer value contains second value in other words, if for example the Timer value (word) = 6004, the timer is set to 6004 seconds
When Timer Type=3 -> Time value contains switch off time (MSB=Hour, LSB=minute)
Page Byte
1-80 31-38
Byte 31: Output type byte output0 (<128: standard output, >127: Light output)
Byte 32: Output Type byte output1 (<128: standard output, >127: Light output)
Byte 38: Output Type byte output7 (<128: standard output, >127: Light output)
Output Type byte will indicate if the indicated output is a light or not. When specific instruction (by using action type 163 for example) to switch off a light will be used, only lights (and not outputs) will be switched off.


Page Byte
1-80 39-46
Byte 39: Minimum output level when dimming for Output 0.
Byte 40: Minimum output level when dimming for Output 0.
Byte 46: Minimum output level when dimming for Output 7.
Note: When the standard value (255) of eeprom is used, the minimum value is set on 8. The programmed value should be between 0 and 62.
Page Byte
1-80 47-54
Byte 47: Maximum output level when dimming for Output 0.
Byte 48: Maximum output level when dimming for Output 0.
Byte 54: Maximum output level when dimming for Output 7.

Output Group Follow

Page Byte
1-80 55-70
Output Group follow: Page 1-80, byte 55-70
Byte 55: Group nr (MSB) to execute when Output 0 of this module is changing
Byte 56: Group nr (LSB) to execute when Output 0 of this module is changing
Byte 57: Group nr (MSB) to execute when Output 1 of this module is changing
Byte 58: Group nr (LSB) to execute when Output 1 of this module is changing
Byte 69: Group nr (MSB) to execute when Output 7 of this module is changing
Byte 70: Group nr (LSB) to execute when Output 7 of this module is changing

DALI: Link Output Nr with Dali Nr

Every output can be linked to a Dali output with address (0-63) or linked to a Dali group (0-15). When the output is switched ON, OFF or dimmed, the Dali output will follow. Typically, a virtual output module is created and the those virtual outputs are linked to Dali outputs. In the below page, the Dali Output can be programmed for a system output.

Below, you can find the Memory locations for Firmware 1.0.110 or higher:

Page Byte
1-80 71-86
  • Byte 71-72: (byte 71->x.MSB, byte 72->x.LSB) Output 0 of this module is linked with Dali Output x.LSB (when x.LSB<64) or with Dali Group x.LSB-64 (when x.LSB>63 and x.LSB<80). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
  • Byte 73-74: (byte 73->x.MSB, byte 74->x.LSB) Output 1 of this module is linked with Dali Output x.LSB (when x<64) or with Dali Group x.LSB-64 (when x.LSB>63 and x.LSB<80). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
  • Byte 85-86: (byte 85->x.MSB, byte 86->x.LSB) Output 7 of this module is linked with Dali Output x.LSB (when x<64) or with Dali Group x.LSB-64 (when x.LSB>63 and x.LSB<80). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...

Below, you can find the Memory locations for Firmware 1.0.109 or lower:

Page Byte
1-80 71-78
  • Byte 71: Output 0 of this module is linked with Dali Output x (when x<64) or with Dali Group x-64 (when x>63 and x<80)
  • Byte 72: Output 1 of this module is linked with Dali Output x (when x<64) or with Dali Group x-64 (when x>63 and x<80)
  • Byte 78: Output 7 of this module is linked with Dali Output x (when x<64) or with Dali Group x-64 (when x>63 and x<80)

DALI: Link Single Output Dali to Dali group

Page Byte
1-80 87-102

Each bit of this 2 byte set of data indicates if an output is linked to an Dali group.

consists of 2 bytes per output.

  • MSB: Groups 15 - 8 (MSb = Group 15, LSb = Group 8)
  • LSB: Groups 7 - 0 (MSb = Group 7, LSb = Group 0)

For example: Byte 87 and 88 = 00001000 00000010 => The output 1 of module (1 - 80) belongs to Dali group 1 and 11.

ascii Names outputs

Page Byte
1-80 128-255
Byte 128 – 143: ascii name of the first output of this module (16 characters)
Byte 144 – 159: ascii name of the second output of this module (16 characters)
Byte 240 – 255: ascii name of the last output (16 characters)

Data input modules (Page 81 - 238)

Page 81 – 238 -> Contains data of the input modules (79 modules maximum, 632 inputs -> 0-631)

The input data can be found back from page 81 till page 238, each input module has 2 pages. These Pages contain active data depending on Page0/Byte2.

Every input Module has 2 input pages which contains all the input and configuration data:

Page Byte
81-82 x
These pages are entirely used for input module 0. Page 81 is the first page, 82 the second.
Page Byte
83-84 x
These pages are entirely used for input module 1. Page 83 is the first page, 84 the second.
Page Byte
85-86 x
These pages are entirely used for input module 2. Page 85 is the first page, 86 the second.

...

Page Byte
237-238 x
These pages are entirely used for input module 78. Page 237 is the first page, 238 the second.


Every input page has following structure

Input data

Page Byte
First page 0-6
Byte 0: Type device (more information see document “Technical device information”)
Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 2: ID2
Byte 3: ID3
Byte 4: Module Type: If 0 or 255, the normal modules are used, if 72 ("H"), a Heap pump module is found
Byte 5:
Byte 6:

Input configuration

Page Byte
First page 7-14

Each input has 1 configuration byte, 8 configuration bytes per module. Each BIT of the configuration byte represents an input configuration. BIT0 is the least significant BIT of the configuration BYTE, BIT7 is the most significant BIT.

Page Byte
First page 7
Configuration Byte of first input (0) of this module:
BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).
Page Byte
First page 8
Configuration Byte of second input (1) of this module:
BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).

Page Byte
First page 14
Configuration Byte of last input (7) of this module:
BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).

DALI: Link Input Nr with Dali Nr

Every input can be linked to a Dali input (like motion sensor) with address (0-63). When the Dali Motion sensor detects motion, the linked input will be triggered. Typically, a virtual input module is created and the those virtual inputs are linked to Dali inputs. Lunatone and Helvar inputs are supported. In the below page, the Dali inputs can be programmed to be linked to a system input.

Below, you can find the Memory locations for Firmware 1.0.110 or higher:

Page Byte
First page 15-30
  • Byte 15-16: (byte 15->x.MSB, byte 16->x.LSB) Input 0 of this module is linked with Dali Lunatone input x.LSB (when x.LSB<64) or with Dali Helvar input x.LSB-64 (when x.LSB>63 and x.LSB<128). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
  • Byte 17-18: (byte 17->x.MSB, byte 18->x.LSB) Input 1 of this module is linked with Dali Lunatone input x.LSB (when x.LSB<64) or with Dali Helvar input x.LSB-64 (when x.LSB>63 and x.LSB<128). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
  • Byte 29-30: (byte 29->x.MSB, byte 30->x.LSB) Input 7 of this module is linked with Dali Lunatone input x.LSB (when x.LSB<64) or with Dali Helvar input x.LSB-64 (when x.LSB>63 and x.LSB<128). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...

Below, you can find the Memory locations for Firmware 1.0.109 or lower:

Page Byte
First page 15-22
  • Byte 15: Input 0 of this module is linked with Dali Lunatone input x (when x<64) or with Dali Helvar input x-64 (when x>63 and x<128)
  • Byte 16: Input 1 of this module is linked with Dali Lunatone input x (when x<64) or with Dali Helvar input x-64 (when x>63 and x<128)
  • Byte 22: Input 7 of this module is linked with Dali Lunatone input x (when x<64) or with Dali Helvar input x-64 (when x>63 and x<128)

Input action "1 second press"

Page Byte
First page 32-79

Each input can be linked to a basic action (6 bytes) when the input is pressed for 1 second. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
First page 32-37

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 32: Type
Byte 33: Action
Byte 34: Device Nr (MSB)
Byte 35: Device Nr (LSB)
Byte 36: Extra Parameter (MSB)
Byte 37: Extra Parameter (LSB)
Page Byte
First page 38-43

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 38: Type
Byte 39: Action
Byte 40: Device Nr (MSB)
Byte 41: Device Nr (LSB)
Byte 42: Extra Parameter (MSB)
Byte 43: Extra Parameter (LSB)

...

Pulse Counter Link

Page Byte
First page 120-127

Maximum 32 Pulse Counters can be assigned. Each pulse counter can be linked to 1 input. Only external Input modules and Brain Built-in inputs support Pulse Counters.

Byte 120: Pulse counter nr linked to input 0 of this module
Byte 121: Pulse counter nr linked to input 1 of this module
Byte 122: Pulse counter nr linked to input 2 of this module
...
Byte 127: Pulse counter nr linked to input 7 of this module

ascii Names inputs

Page Byte
First page 128-255
Byte 128 – 143: ascii name of the first input of this module (16 characters)
Byte 144 – 159: ascii name of the second input of this module (16 characters)
Byte 240 – 255: ascii name of the last input (16 characters)

Toggle input link

Page Byte
Second page 0-15

For each input, an output or a special function (basic actions) can be linked. This is configured in the following bytes:

Byte 0: MSB of the input link word of input 0 of this input module
Byte 1: LSB of the input link word of input 0 of this input module
Byte 2: MSB of the input link word of input 1 of this input module
Byte 3: LSB of the input link word of input 1 of this input module
Byte 4: MSB of the input link word of input 2 of this input module
Byte 5: LSB of the input link word of input 2 of this input module

The input link word has following configuration:

  • BIT 0-9: These bits contains the output number of the output to be toggled by input x (only works when BIT10,12,13,14,15=0)
  • BIT10: 0->Toggle output in BIT0-9 is used, 1->"input action press" basic actions, "input action release" basic actions etc are being used
  • BIT11: 1-> Dimming up when the BIT10=0 and BIT0-9 contains a dimmer output, 0->Dimming down when the BIT10=0 and BIT0-9 contains a dimmer output (this bit can be ignored when programming the input link word)
  • BIT12: 1-> 1 second press & hold function is programmed, 0-> 1 second press & hold function is not programmed
  • BIT13: 1-> 2 second press & hold function is programmed, 0-> 2 second press & hold function is not programmed
  • BIT14: Not used
  • BIT15: 1-> Double press is programmed, 0-> Double press is not programmed

Notes:

  • When Input link BIT10=1, the PRESS and RELEASE basic action will work.
  • For the 1SEC, 2SEC or DOUBLE PRESS actions to work BIT10=0 and BIT(12 and/or 13 and/or 15)=1
  • When 1SEC or 2SEC or DOUBLE PRESS actions is activated, the RELEASE action will work but not the PRESS action

Input action "Press"

Page Byte
Second page 16-63

Each input can be linked to a basic action (6 bytes) when the input is pressed. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 16-21

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 16: Type
Byte 17: Action
Byte 18: Device Nr (MSB)
Byte 19: Device Nr (LSB)
Byte 20: Extra Parameter (MSB)
Byte 21: Extra Parameter (LSB)
Page Byte
Second page 22-27

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 22: Type
Byte 23: Action
Byte 24: Device Nr (MSB)
Byte 25: Device Nr (LSB)
Byte 26: Extra Parameter (MSB)
Byte 27: Extra Parameter (LSB)

...

Input action "Release"

Page Byte
Second page 64-111

Each input can be linked to a basic action (6 bytes) when the input is released. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 64-69

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 64: Type
Byte 65: Action
Byte 66: Device Nr (MSB)
Byte 67: Device Nr (LSB)
Byte 68: Extra Parameter (MSB)
Byte 69: Extra Parameter (LSB)
Page Byte
Second page 70-75

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 70: Type
Byte 71: Action
Byte 72: Device Nr (MSB)
Byte 73: Device Nr (LSB)
Byte 74: Extra Parameter (MSB)
Byte 75: Extra Parameter (LSB)

...

Input action "2 second press"

Page Byte
Second page 160-207

Each input can be linked to a basic action (6 bytes) when the input is pressed for 2 seconds. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 160-165

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 160: Type
Byte 161: Action
Byte 162: Device Nr (MSB)
Byte 163: Device Nr (LSB)
Byte 164: Extra Parameter (MSB)
Byte 165: Extra Parameter (LSB)
Page Byte
Second page 166-171

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 166: Type
Byte 167: Action
Byte 168: Device Nr (MSB)
Byte 169: Device Nr (LSB)
Byte 170: Extra Parameter (MSB)
Byte 171: Extra Parameter (LSB)

...

Input action "double press"

Page Byte
Second page 208-255

Each input can be linked to a basic action (6 bytes) when the input is double pressed. if an input is single pressed, the action "Release" will be executed. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 208-213

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 208: Type
Byte 209: Action
Byte 210: Device Nr (MSB)
Byte 211: Device Nr (LSB)
Byte 212: Extra Parameter (MSB)
Byte 213: Extra Parameter (LSB)
Page Byte
Second page 214-219

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 214: Type
Byte 215: Action
Byte 216: Device Nr (MSB)
Byte 217: Device Nr (LSB)
Byte 218: Extra Parameter (MSB)
Byte 219: Extra Parameter (LSB)

...

Data Sensor modules (Page 239 - 254)

Page 239 – 254 -> Contains data of the Sensor modules (16 modules maximum, 128 Sensors -> 0-127)

The sensor data can be found back from page 229 till page 254. These Pages that contain active data depending on Page0/Byte3.

Page Byte
239 x
This page is entirely used for sensor module 0.
Page Byte
240 x
This page is entirely used for sensor module 1.
Page Byte
241 x
This page is entirely used for sensor module 2.

...

Page Byte
254 x
This page is entirely used for sensor module 15.


Every sensor page has following structure

Sensor data

Page Byte
239-254 0-6
Byte 0: Type device (more information see document “Technical device information”)
Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 2: ID2
Byte 3: ID3
Byte 4: Module Type: If 0 or 255, the normal modules are used, if 72 ("H"), a Heap pump module is found
Byte 5:
Byte 6:

Temperature Group Follow

Page Byte
239-254 8-23
Byte 8: Group nr (MSB) to execute when temperature 0 of this module is changing
Byte 9: Group nr (LSB) to execute when temperature 0 of this module is changing
Byte 10: Group nr (MSB) to execute when temperature 1 of this module is changing
Byte 11: Group nr (LSB) to execute when temperature 1 of this module is changing
Byte 22: Group nr (MSB) to execute when temperature 7 of this module is changing
Byte 23: Group nr (LSB) to execute when temperature 7 of this module is changing

Humidity Group Follow

Page Byte
239-254 24-36
Byte 24: Group nr (MSB) to execute when humidity 0 of this module is changing
Byte 25: Group nr (LSB) to execute when humidity 0 of this module is changing
Byte 26: Group nr (MSB) to execute when humidity 1 of this module is changing
Byte 27: Group nr (LSB) to execute when humidity 1 of this module is changing
Byte 38: Group nr (MSB) to execute when humidity 7 of this module is changing
Byte 39: Group nr (LSB) to execute when humidity 7 of this module is changing

Brightness Group Follow

Page Byte
239-254 40-55
Byte 40: Group nr (MSB) to execute when brightness 0 of this module is changing
Byte 41: Group nr (LSB) to execute when brightness 0 of this module is changing
Byte 42: Group nr (MSB) to execute when brightness 1 of this module is changing
Byte 43: Group nr (LSB) to execute when brightness 1 of this module is changing
Byte 54: Group nr (MSB) to execute when brightness 7 of this module is changing
Byte 55: Group nr (LSB) to execute when brightness 7 of this module is changing

Air Quality (CO2) Group Follow

Page Byte
239-254 56-71
Byte 56: Group nr (MSB) to execute when air quality (CO2) 0 of this module is changing
Byte 57: Group nr (LSB) to execute when air quality (CO2) 0 of this module is changing
Byte 58: Group nr (MSB) to execute when air quality (CO2) 1 of this module is changing
Byte 59: Group nr (LSB) to execute when air quality (CO2) 1 of this module is changing
Byte 70: Group nr (MSB) to execute when air quality (CO2) 7 of this module is changing
Byte 71: Group nr (LSB) to execute when air quality (CO2) 7 of this module is changing

DALI: Link sensor Nr with Dali Nr

Every sensor can be linked to a Dali input (with sensor capabilities) with address (0-63). Some Dali motion sensors also have built-in temperature sensors and by some models also a built-in Lux meter. These values can be used to take smart actions. Typically, a virtual sensor module is created and the those virtual sensors are linked to the available Dali sensors. Lunatone is supported. In the below page, the Dali sensors can be programmed to be linked to a virtual system sensor.

Below, you can find the Memory locations for Firmware 1.0.110 or higher:

Page Byte
239-254 72-87
  • Byte 72-73: (byte 72->x.MSB, byte 73->x.LSB) Sensor 0 of this module is linked with Dali Sensor x.LSB (when x.LSB<64). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
  • Byte 74-75: (byte 74->x.MSB, byte 75->x.LSB) Sensor 1 of this module is linked with Dali Sensor x.LSB (when x.LSB<64). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...
  • Byte 86-87: (byte 86->x.MSB, byte 87->x.LSB) Sensor 7 of this module is linked with Dali Sensor x.LSB (when x.LSB<64). When x.MSB==0 -> DALI Bus on Brain(+), x.MSB==1 -> DALI Bus on first CAN Control, x.MSB==2 -> DALI Bus on second CAN Control ...

Below, you can find the Memory locations for Firmware 1.0.109 or lower:

Page Byte
239-254 72-79
  • Byte 72: Sensor 0 of this module is linked with Dali Sensor x (when x<64).
  • Byte 73: Sensor 1 of this module is linked with Dali Sensor x (when x<64).
  • Byte 79: Sensor 7 of this module is linked with Dali Sensor x (when x<64).

ascii Names Sensors

Page Byte
239-254 128-255
Byte 128 – 143: ascii name of the first sensor of this module (16 characters)
Byte 144 – 159: ascii name of the second sensor of this module (16 characters)
Byte 240 – 255: ascii name of the last sensor (16 characters)

Can Control modules (Page 255)

Page 255 -> Contains data of maximum 16 Can Control modules

In this page, every Can Control has 16 bytes to keep the most important configuration data.

Page Byte
255 0-15
Byte 0: Type device (more information see document “Technical device information”) of the first Can Control module
Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 2: ID2
Byte 3: ID3
Byte 4:
Byte 5:
Byte 6:
Byte 7:
Byte 8:
Byte 9:
Byte 10:
Byte 11:
Byte 12:
Byte 13:
Byte 14:
Byte 15:
Page Byte
255 16-31
Byte 16: Type device (more information see document “Technical device information”) of the second Can Control module
Byte 17: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 18: ID2
Byte 19: ID3
Byte 20:
Byte 21:
Byte 22:
Byte 23:
Byte 24:
Byte 25:
Byte 26:
Byte 27:
Byte 28:
Byte 29:
Byte 30:
Byte 31:
Page Byte
255 32-47
...

Group Actions Pages (Page 256 - 382)

A Group Action is a list of Basic Actions (BA's) to be executed together. Group actions are implemented in a flexible way in other words, a group action can contain a flexible number of BA's. As an example, you can configure Group Action 0 to be able to contain 7 BA's, Group Action 1 for 33 BA's.

Group Actions are configured in Eeprom and consist of 3 eeprom sections:

  • Page 256-259: GAT (Group Allocation table): This table indicates the start and end address of the BA's of each group action
  • Page 261-276: Contains the Group names of each Group Action
  • Page 281-380: Contains all the BA's of each Group

Group Action GAT Pages

The Group Allocation Table (GAT) will define the start and end address of each Group Action. These 4 pages defines the start and end addresses of 256 (0-255) group actions.

Page 256 – 259 -> Contains the Start Address and end addresses of 256 Group Actions
Page Byte
256 0-1
These 2 bytes contains the start address of Group Action 0 (0->MSB, 1->LSB)
Page Byte
256 2-3
These 2 bytes contains the end address of Group Action 0 (2->MSB, 3->LSB)
Page Byte
256 4-5
These 2 bytes contains the start address of Group Action 1 (4->MSB, 5->LSB)
Page Byte
256 6-7
These 2 bytes contains the end address of Group Action 1 (6->MSB, 7->LSB)
...

Group Action Name Page

Page 261 – 276 -> Contains the Group Actions name.
Page Byte
261-276 0-255
Page 261 Byte 0 – 15: ascii name of Group Action 0 (16 characters)
Page 261 Byte 16 – 31: ascii name of Group Action 1 (16 characters)
Page 261 Byte 32 – 47: aascii name of Group Action 2 (16 characters)
...
Page 261 Byte 240 – 255: ascii name of Group Action 15 (16 characters)
Page 261 Byte 0 – 15: ascii name of Group Action 16 (16 characters)
...
Page 277 – 280 -> Reserved for extension Group Action Names.

Group Action BA Pages

Each Page contains 42 BA's. Each BA is made of 6 bytes. The first BA of each page is written in Byte 0-5, the second BA is written in Byte 6-11 etc

Page 281 – 380 -> Contains data of 4200 BA's.
Page Byte
281 0-125
This half page is entirely used for BA 0 - 20.
Page Byte
281 128-253
This half page is entirely used for BA 21 - 41.
Page Byte
282 0-125
This half page is entirely used for BA 42 - 62.
Page Byte
282 128-253
This half page is entirely used for BA 63 - 83.
Page Byte
283 0-125
This half page is entirely used for BA 84 - 104.

...

CAN slave modules (Page 383 - 390)

CAN slave configuration

Page 383-390 -> Contains the configuration data of the CAN slave modules (128 modules maximum)
Page Byte
383 x
This page is entirely used for the configuration data of the CAN slave modules 0-15.
Page Byte
384 x
This page is entirely used for the configuration data of the CAN slave modules 16-31.
Page Byte
385 x
This page is entirely used for the configuration data of the CAN slave modules 32-47.
Page Byte
386 x
This page is entirely used for the configuration data of the CAN slave modules 48-63.
Page Byte
387 x
This page is entirely used for the configuration data of the CAN slave modules 64-79.
Page Byte
388 x
This page is entirely used for the configuration data of the CAN slave modules 80-95.
Page Byte
389 x
This page is entirely used for the configuration data of the CAN slave modules 96-111.
Page Byte
390 x
This page is entirely used for the configuration data of the CAN slave modules 112-127.
Page Byte
383-390 0-15
Byte 0: ID_2 of the first CAN module of this page
Byte 1: ID_1 of the first CAN module of this page
Byte 2: ID_0 of the first CAN module of this page
Byte 3: Module link Type:
  • Module link type:
    • Type = 100: This CAN slave is linked to the internal CAN bus of the Core/Core+
    • Type = 0: This CAN slave is linked to the first CAN Control
    • Type = 1: This CAN slave is linked to the second CAN Control
    • ...
Byte 4: Sensor Link 0 of the first CAN module of this page
Byte 5: Sensor Link 1 of the first CAN module of this page
Byte 6: Input Link 0 of the first CAN module of this page
Byte 7: Input Link 1 of the first CAN module of this page
Byte 8: Input Link 2 of the first CAN module of this page
Byte 9: Input Link 3 of the first CAN module of this page
Byte 10: Input Link 4 of the first CAN module of this page
Byte 11: Input Link 5 of the first CAN module of this page
Byte 12: Modbus Address of the Modbus device connected to the uCAN - See Modbus Parameters
Byte 13: Modbus Type - See Modbus Parameters
Byte 14: Modbus Model - See Modbus Parameters
Byte 15: Modbus Speed - See Modbus Parameters
Page Byte
383-390 16-31
Byte 16: ID_2 of the second CAN module of this page
Byte 17: ID_1 of the second CAN module of this page
Byte 18: ID_0 of the second CAN module of this page
Byte 19: Module link Type:
  • Module link type:
    • Type = 0: This CAN slave is linked to the internal CAN bus of the Core/Core+
    • Type = 1: This CAN slave is linked to the first CAN Control
    • Type = 2: This CAN slave is linked to the second CAN Control
    • ...
Byte 20: Sensor Link 0 of the second CAN module of this page
Byte 21: Sensor Link 1 of the second CAN module of this page
Byte 22: Input Link 0 of the second CAN module of this page
Byte 23: Input Link 1 of the second CAN module of this page
Byte 24: Input Link 2 of the second CAN module of this page
Byte 25: Input Link 3 of the second CAN module of this page
Byte 26: Input Link 4 of the second CAN module of this page
Byte 27: Input Link 5 of the second CAN module of this page
Byte 28: Modbus Address of the Modbus device connected to the uCAN - See Modbus Parameters
Byte 29: Modbus Type - See Modbus Parameters
Byte 30: Modbus Model - See Modbus Parameters
Byte 31: Modbus Speed - See Modbus Parameters
Page Byte
383-390 32-...
...

Roller/Shutter (Page 391 - 414)

Link Shutter Nr with Output Nr

Every set of (2 consecutive) outputs can be configured as output or as Roller/Shutter. When configured as Roller/Shutter, those outputs can never be ON at the same time and a time and a delay will be applied between one output going OFF and the other going ON. Every Roller/Shutter has a number that is linked to a set of outputs. The below page will set this link.

Page Byte
391 0-255
Byte 0: Shutter 0 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
Byte 1: Shutter 1 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
Byte 2: Shutter 2 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
Byte 3: Shutter 3 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
Byte 254: Shutter 254 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)
Byte 255: Shutter 255 is linked with Output x*2 and (x*2)+1 (x is the value stored in this byte)

Example: When in this Page, 7 is stored in byte 10, Output 14 and 15 are linked to Roller/Shutter nr 10.

Note: The outputs that can be used range from 0 to 511.

Configure Roller/Shutter Outputs

Page Byte
392 0-79
Byte 0: Roller/Shutter setting for Output Module 0 (and the 8 outputs representing this module)
Byte 1: Roller/Shutter setting for Output Module 1
Byte 2: Roller/Shutter setting for Output Module 2
...
Byte 79: Roller/Shutter setting for Output Module 79

Every Roller/shutter setting has following bit representation:

BIT7: =1-> Output 7 and 6 of this module configured as Output, =0-> Output 7 and 6 configured as Roller/Shutter.
BIT6: =1-> Output 5 and 4 of this module configured as Output, =0-> Output 5 and 4 configured as Roller/Shutter.
BIT5: =1-> Output 3 and 2 of this module configured as Output, =0-> Output 3 and 2 configured as Roller/Shutter.
BIT4: =1-> Output 1 and 0 of this module configured as Output, =0-> Output 1 and 0 configured as Roller/Shutter.
BIT3: =1-> Output 7 configured as UP, Output 6 configured as DOWN, =0-> Output 6 configured as UP, Output 7 configured as DOWN.
BIT2: =1-> Output 5 configured as UP, Output 4 configured as DOWN, =0-> Output 4 configured as UP, Output 5 configured as DOWN.
BIT1: =1-> Output 3 configured as UP, Output 2 configured as DOWN, =0-> Output 2 configured as UP, Output 3 configured as DOWN.
BIT0: =1-> Output 1 configured as UP, Output 0 configured as DOWN, =0-> Output 0 configured as UP, Output 1 configured as DOWN.

Up Timer settings of an individual Roller/Shutter

Page Byte
393-394 0-255
Page 393 Byte 0: Up Timer for Roller/Shutter 0 (MSB)
Page 393 Byte 1: Up Timer for Roller/Shutter 0 (LSB)
Page 393 Byte 2: Up Timer for Roller/Shutter 1 (MSB)
Page 393 Byte 3: Up Timer for Roller/Shutter 1 (LSB)
Page 394 Byte 254: Up Timer for Roller/Shutter 255 (MSB)
Page 394 Byte 255: Up Timer for Roller/Shutter 255 (LSB)

Note: This timer setting is in 100ms value, when 0 the timer is not in use.

Down Timer settings of an individual Roller/Shutter

Page Byte
395-396 0-255
Page 395 Byte 0: Down Timer for Roller/Shutter 0 (MSB)
Page 395 Byte 1: Down Timer for Roller/Shutter 0 (LSB)
Page 395 Byte 2: Down Timer for Roller/Shutter 1 (MSB)
Page 395 Byte 3: Down Timer for Roller/Shutter 1 (LSB)
Page 396 Byte 254: Down Timer for Roller/Shutter 255 (MSB)
Page 396 Byte 255: Down Timer for Roller/Shutter 255 (LSB)

Note: This timer setting is in 100ms value, when 0 the timer is not in use.

Name of a Roller/Shutter

Every Roller/Shutter can have a name of max 16 characters.

Page Byte
397-412 0-255
Page 395 Byte 0-15: Name of Roller/Shutter 0
Page 395 Byte 16-31: Name of Roller/Shutter 1
Page 395 Byte 32-47: Name of Roller/Shutter 2
Page 410 Byte 240-255: Name of Roller/Shutter 255

Shutter Nr linked to shutter group

Every Shutter can be linked to 16 (0-15) Shutter groups. Every Shutter has an associated shutter group value (word->16 bits). This shutter group value contains 16 bits which represents the 16 existing shutter groups:

  • If BIT0=1 -> the shutter is not part of Group 0
  • If BIT0=0 -> the shutter is part of Group 0
  • If BIT1=1 -> the shutter is not part of Group 1
  • If BIT1=0 -> the shutter is part of Group 1

...

  • If BIT15=1 -> the shutter is not part of Group 15
  • If BIT15=0 -> the shutter is part of Group 15
Page Byte
413-414 0-255
Page 413 Byte 0: Shutter Group Value for Roller/Shutter 0 (MSB)
Page 413 Byte 1: Shutter Group Value for Roller/Shutter 0 (LSB)
Page 413 Byte 2: Shutter Group Value for Roller/Shutter 1 (MSB)
Page 413 Byte 3: Shutter Group Value for Roller/Shutter 1 (LSB)
Page 414 Byte 254: Shutter Group Value for Roller/Shutter 255 (MSB)
Page 414 Byte 255: Shutter Group Value for Roller/Shutter 255 (LSB)

Sensor Extra (Page 471 - 479)

Sensor Extra Group Follow

Page Byte
471 0-255
Byte 0: Group nr (MSB) to execute when Sensor Extra 0 is changing
Byte 1: Group nr (LSB) to execute when Sensor Extra 0 is changing
Byte 2: Group nr (MSB) to execute when Sensor Extra 1 is changing
Byte 3: Group nr (LSB) to execute when Sensor Extra 1 is changing
Byte 254: Group nr (MSB) to execute when Sensor Extra 127 is changing
Byte 255: Group nr (LSB) to execute when Sensor Extra 127 is changing

Sensor Extra Name Page

Page 472 – 479 -> Contains the Name (16 characters Max) of each extra sensor used. The system can contain maximum 64 sensors that can be freely used. 4 pages are reserved for future use
Page Byte
472-479 0-255
Page 472 Byte 0 – 15: ascii name of Sensor 0 (16 characters)
Page 472 Byte 16 – 31: ascii name of Sensor 1 (16 characters)
Page 472 Byte 32 – 47: ascii name of Sensor 2 (16 characters)
...
Page 472 Byte 240 – 255: ascii name of Sensor 15 (16 characters)
Page 473 Byte 0 – 15: ascii name of Sensor 16 (16 characters)
...

Validation Bit (Page 480 - 497)

Validation Bit Group Follow

Page 480 – 481 -> Contains the Group Nr's (0-254) that needs to be executed when the validation bits (0-255) are changing.
Page Byte
480-481 0-255
Page 480 Byte 0: Group nr (MSB) to execute when Validation Bit 0 is changing
Page 480 Byte 1: Group nr (LSB) to execute when Validation Bit 0 is changing
Page 480 Byte 2: Group nr (MSB) to execute when Validation Bit 1 is changing
Page 480 Byte 3: Group nr (LSB) to execute when Validation Bit 1 is changing
Page 480 Byte 254: Group nr (MSB) to execute when Validation Bit 127 is changing
Page 480 Byte 255: Group nr (LSB) to execute when Validation Bit 127 is changing
Page 481 Byte 0: Group nr (MSB) to execute when Validation Bit 128 is changing
Page 481 Byte 1: Group nr (LSB) to execute when Validation Bit 128 is changing
...

Validation Bit Name Page

Page 482 – 497 -> Contains the Name (16 characters Max) of each Validation Bit (0-255).
Page Byte
482-497 0-255
Page 482 Byte 0 – 15: ascii name of Validation Bit 0 (16 characters)
Page 482 Byte 16 – 31: ascii name of Validation Bit 1 (16 characters)
Page 482 Byte 32 – 47: ascii name of Validation Bit 2 (16 characters)
...
Page 482 Byte 240 – 255: ascii name of Validation Bit 15 (16 characters)
Page 483 Byte 0 – 15: ascii name of Validation Bit 16 (16 characters)
...

Error & Event Logging (Page 506 - 511)

Page Byte
506-511 0-255

Some Error and Event codes (like health checker info, startup system, some errors) will be logged in EEPROM (see also FRAM that has logging page too). Each logging item consist of 16 bytes:

  • Date and Time: 6 bytes
  • Type of logging: 2 bytes
  • Event and error data: 8 bytes
  • 16 logging items per EEPROM page, 6 pages: 96 logging items

The logging location for the next logging item is written in EEPROM at Page0/Byte83(MSB)-84(LSB): If the logging location=0 then the 16 bytes will be written starting at EEPROM location Byte506/Byte0, if logging location=1 then the 16 bytes will be written at FRAM location Byte506/Byte16 etc. After each 16 byte write operation, the logging location is updated (Page 0/Byte83-84).

When all 16 FRAM pages are written, the oldest location is overwritten.

Page 506 -> Contains 16 logging items
Page 507 -> Contains 16 logging items
Page 508 -> Contains 16 logging items
etc
Page Byte
506 0-15
Page 506 Byte 0: Year
Page 506 Byte 1: Month
Page 506 Byte 2: Day
Page 506 Byte 3: Hour
Page 506 Byte 4: Minute
Page 506 Byte 5: Second
Page 506 Byte 6: Logging Type1
Page 506 Byte 7: Logging Type2
Page 506 Byte 8-15: Data0-7
Page Byte
506 16-31
Page 506 Byte 16: Year
Page 506 Byte 17: Month
Page 506 Byte 18: Day
Page 506 Byte 19: Hour
Page 506 Byte 20: Minute
Page 506 Byte 21: Second
Page 506 Byte 22: Logging Type1
Page 506 Byte 23: Logging Type2
Page 506 Byte 24-31: Data0-7

...

Note:

  • If Logging Type1='E' and Logging Type2='V' -> Event
  • If Logging Type1='E' and Logging Type2='R' -> Error
  • If Logging Type1='B' and Logging Type2='A' -> Basic Action