Dali Eeprom Memory Model change procedure

From OpenMotics
Jump to navigation Jump to search

Introduction

To implement the DALI functionality on the CAN Control, a change in the memory model is needed to be able to implement this feature. Some of our beta customers have enabled the DALI feature on the Brain(+) itself and must perform the below procedure to keep the DALI functionality correctly working.

As of Firmware version 1.0.110, following change has been performed:

  • Page 1-80 Byte 71..: DALI: Link Output Nr with Dali Nr
  • First Page (81,83,85,87 etc) Byte 15..: DALI: Link Input Nr with Dali Nr
  • Page 239-254 Byte 72: DALI: Link sensor Nr with Dali Nr
  • For more details, see Memory Model AIO

So installations that have been configured with Firmware 1.0.109 or lower with DALI functionality should use this procedure. For all installations that have been configured with Firmware 1.0.110 or higher and for all installation that doesn't have DALI functionality configured, this procedure can be ignored.

Procedure

Step 1: Check config

In the first step, we will check the firmware and the virtual module that has DALI Outputs linked.

el
--- Total Uptime: 000231 Hours, Last Startup: 18:08:07 16/09/21   ---
--- Module Type: BRAIN, RS485 mode: 0, Board: 29'C  --.--V --.--A ---
--- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.110       ---
-------Output------------ID---------Err-------Status--------Pwr---
 00 (l I 000->007) 108.000.000.000 00000   GOOD       (000)  1
 01 (O E 008->015) 079.043.000.008 00000   GOOD       (016)  1
 02 (O E 016->023) 079.043.000.007 00000   GOOD       (016)  1
 03 (O H 024->031) 079.032.131.022 00000   GOOD       (000)  0
 04 (o V 032->039) 111.000.001.002 00000   GOOD       (000)  0
-------Input-------------ID---------Err-------Status--------Pwr---
 00 (i I 000->007) 105.000.000.000 00000   GOOD       (000)  1
-------Sensor------------ID---------Err-------Status--------Pwr---
 00 (T H 000->007) 084.032.131.022 00000   GOOD       (080)  0
OK

First, you can see that the new firmware version (1.0.110) is installed. In this example, I've 6 DALI Outputs that are linked to the virtual output module (111.000.001.002).

Step 2: Check eeprom

In the second step, we will verify the eeprom content to be able to reprogram.

The Output modules are spread over page 1-80 of the eeprom so output module 0 is linked to page 1, output module 1 to page 2 etc

Our output in the above example is output 4 so the info can be found in page 5. Looking at the Memory Model AIO, you can see that our information is stored in byte 71-78 (8 bytes in total for 8 Dali outputs that can be linked).

eeprom read 5 71 8
5 71 -> 7 ( )
5 72 -> 6 ( )
5 73 -> 2 ( )
5 74 -> 0 ( )
5 75 -> 3 ( )
5 76 -> 4 ( )
5 77 -> 10 ( )
5 78 -> 11 ( )
OK

Keep this information because you will now overwrite it in the next step.

Step 3: Rewrite the data

In this step, we will write the existing information in the correct eeprom places. Please note that output has now 2 bytes of which the first byte (MSB) will always be 0:

eeprom write 5 71 0
OK
eeprom write 5 72 7
OK
eeprom write 5 73 0
OK
eeprom write 5 74 6
OK
eeprom write 5 75 0
OK
eeprom write 5 76 2
OK
eeprom write 5 77 0
OK
eeprom write 5 78 0
OK
eeprom write 5 79 0
OK
eeprom write 5 80 3
OK
eeprom write 5 81 0
OK
eeprom write 5 82 4
OK
eeprom write 5 83 0
OK
eeprom write 5 84 10
OK
eeprom write 5 85 0
OK
eeprom write 5 86 11
OK

Step 4: Check if the data is correctly written

eeprom read 5 71 16
5 71 -> 0 ( )
5 72 -> 7 ( )
5 73 -> 0 ( )
5 74 -> 6 ( )
5 75 -> 0 ( )
5 76 -> 2 ( )
5 77 -> 0 ( )
5 78 -> 0 ( )
5 79 -> 0 ( )
5 80 -> 3 ( )
5 81 -> 0 ( )
5 82 -> 4 ( )
5 83 -> 0 ( )
5 84 -> 10 ( )
5 85 -> 0 ( )
5 86 -> 11 ( )

Step 5: Copy eeprom data in RAM memory

eeprom activate
OK

Step 6: Check the output list

In the output list, you can found (in the Dali column) the linked DALI Outputs:

output list
-Output-Type-Status-lock-Dim-Timer--Type---Dali---Name---------
000 (l) LIGHT  OFF    0  255 65535 ( off )  255
001 (l) LIGHT  OFF    0  255 65535 ( off )  255
002 (l) LIGHT  OFF    0  255 65535 ( off )  255
003 (l) LIGHT  OFF    0  255 65535 ( off )  255
004 (l) LIGHT  OFF    0  255 65535 ( off )  255
005 (l) LIGHT  OFF    0  255 65535 ( off )  255
006 (l) LIGHT  OFF    0  255 65535 ( off )  255
007 (l) LIGHT  OFF    0  255 65535 ( off )  255
008 (O) LIGHT  OFF    0  255 65535 ( off )  255
009 (O) LIGHT  OFF    0  255 65535 ( off )  255
010 (O) LIGHT  OFF    0  255 65535 ( off )  255
011 (O) LIGHT  OFF    0  255 65535 ( off )  255
012 (O) LIGHT  OFF    0  255 65535 ( off )  255
013 (O) LIGHT  OFF    0  255 65535 ( off )  255
014 (O) LIGHT  OFF    0  255 65535 ( off )  255
015 (O) LIGHT  OFF    0  255 65535 ( off )  255
016 (O) LIGHT  OFF    0  255 65535 ( off )  255
017 (O) LIGHT  OFF    0  255 65535 ( off )  255
018 (O) LIGHT  OFF    0  255 65535 ( off )  255
019 (O) LIGHT  OFF    0  255 65535 ( off )  255
020 (O) LIGHT  OFF    0  255 65535 ( off )  255
021 (O) LIGHT  OFF    0  255 65535 ( off )  255
022 (O) LIGHT  OFF    0  255 65535 ( off )  255
023 (O) LIGHT  OFF    0  255 65535 ( off )  255
024 (O) LIGHT  OFF    0  255 65535 ( off )  255
025 (O) LIGHT  OFF    0  255 65535 ( off )  255
026 (O) LIGHT  OFF    0  255 65535 ( off )  255
027 (O) LIGHT  OFF    0  255 65535 ( off )  255
028 (O) LIGHT  OFF    0  255 65535 ( off )  255
029 (O) LIGHT  OFF    0  255 65535 ( off )  255
030 (O) LIGHT  OFF    0  255 65535 ( off )  255
031 (O) LIGHT  OFF    0  255 65535 ( off )  255
032 (o) LIGHT  OFF    0  255 65535 ( off )  007
033 (o) LIGHT  OFF    0  255 65535 ( off )  006
034 (o) LIGHT  OFF    0  255 65535 ( off )  002
035 (o) LIGHT  OFF    0  255 65535 ( off )  000
036 (o) LIGHT  OFF    0  255 65535 ( off )  003
037 (o) LIGHT  OFF    0  255 65535 ( off )  004
038 (o) LIGHT  OFF    0  255 65535 ( off )  010
039 (o) LIGHT  OFF    0  255 65535 ( off )  011
OK