4 DALI Commands

The DALI protocol defines several standard commands which allow system designers to use devices from different manufacturers without having to modify software. The Microchip DALI 2.0 library contains the following commands:

CommandOpcodeDescription
OUTPUT LEVEL INSTRUCTIONS
OFF0x00Switches off lamp(s)
UP0x01Increases lamp(s) illumination level
DOWN0x02Decreases lamp(s) illumination level
STEP UP0x03Increases the target illumination level by 1
STEP DOWN0x04Decreases the target illumination level by 1
RECALL MAX LEVEL0x05Changes the current light output to the maximum level
RECALL MIN LEVEL0x06Changes the current light output to the minimum level
STEP DOWN AND OFF0x07If the target level is zero, lamp(s) are turned off; if the target level is between the min. and max. levels, decrease the target level by one; if the target level is max., lamp(s) are turned off
ON AND STEP UP0x08If the target level is zero, lamp(s) are set to minimum level; if target level is between min. and max. levels, increase the target level by one
ENABLE DAPC SEQUENCE0x09Indicates the start of DAPC (level) commands
GO TO LAST ACTIVE LEVEL(1)0x0ASets the target level to the last active output level
GO TO SCENE0x10Sets a group of lamps to a predefined scene
CONFIGURATION INSTRUCTIONS
DALI RESET0x20Configures all variables back to their Reset state
STORE ACTUAL LEVEL IN DTR00x21Stores the actual level value into Data Transfer Register 0 (DTR0)
SAVE PERSISTENT VARIABLES(1)0x22Stores all variables into Nonvolatile Memory (NVM)
SET OPERATING MODE DTR0(1)0x23Sets the operating mode to the value listed in DTR0
RESET MEMORY BANK DTR0(1)0x24 Resets the memory bank identified by DTR0 (memory bank must be implemented and unlocked)
IDENTIFY DEVICE(1)0x25Instructs a control gear to run an identification procedure
SET MAX LEVEL DTR00x2AConfigures the control gear's maximum output level to the value stored in DTR0
SET MIN LEVEL DTR00x2BConfigures the control gear's minimum output level to the value stored in DTR0
SET SYSTEM FAILURE LEVEL DTR00x2CSets the control gear's output level in the event of a system failure to the value stored in DTR0
SET POWER ON LEVEL DTR00x2DConfigures the output level upon power-up based on the value of DTR0
SET FADE TIME DTR00x2ESets the fade time based on the value of DTR0
SET FADE RATE DTR00x2FSets the fade rate based on the value of DTR0
SET EXTENDED FADE TIME DTR0(1)0x30Sets the extended fade rate based on the value of DTR0; used when fade time = 0
SET SCENE0x40Configures scene 'x' based on the value of DTR0
REMOVE FROM SCENE0x50Removes one of the control gears from a scene
ADD TO GROUP0x60Adds a control gear to a group
REMOVE FROM GROUP0x70Removes a control gear from a group
SET SHORT ADDRESS DTR00x80Sets a control gear's short address to the value of DTR0
ENABLE WRITE MEMORY0x81Allows writing into memory banks
QUERY INSTRUCTIONS
QUERY STATUS0x90Determines the control gear's status based on a combination of gear properties
QUERY CONTROL GEAR PRESENT0x91Determines if a control gear is present
QUERY LAMP FAILURE0x92Determines if a lamp has failed
QUERY LAMP POWER ON0x93Determines if a lamp is On
QUERY LIMIT ERROR0x94Determines if the requested target level has been modified due to max. or min. level limitations
QUERY RESET STATE0x95Determines if all NVM variables are in their Reset state
QUERY MISSING SHORT ADDRESS0x96Determines if a control gear's address is equal to 0xFF
QUERY VERSION NUMBER0x97Returns the device's version number located in memory bank 0, location 0x16
QUERY CONTENT DTR00x98Returns the value of DTR0
QUERY DEVICE TYPE0x99Determines the device type supported by the control gear
QUERY PHYSICAL MINIMUM0x9AReturns the minimum light output that the control gear can operate at
QUERY POWER FAILURE0x9BDetermines if an external power cycle occurred
QUERY CONTENT DTR10x9CReturns the value of DTR1
QUERY CONTENT DTR20x9DReturns the value of DTR2
QUERY OPERATING MODE(1)0x9EDetermines the control gear's operating mode
QUERY LIGHT SOURCE TYPE(1)0x9FReturns the control gear's type of light source
QUERY ACTUAL LEVEL0xA0Returns the control gear's actual power output level
QUERY MAX LEVEL0xA1Returns the control gear's maximum output setting
QUERY MIN LEVEL0xA2Returns the control gear's minimum output setting
QUERY POWER ON LEVEL0xA3Returns the value of the intensity level upon power-up
QUERY SYSTEM FAILURE LEVEL0xA4Returns the value of the intensity level due to a system failure
QUERY FADE TIME FADE RATE0xA5Returns a byte in which the upper nibble is equal to the fade time value and the lower nibble is the fade rate value
QUERY MANUFACTURER SPECIFIC MODE(1)0xA6Returns a 'YES' when the operating mode is within the range of 0x80 - 0xFF
QUERY NEXT DEVICE TYPE(1)0xA7Determines if the control gear has more than one feature, and if so, return the first/next device type or feature
QUERY EXTENDED FADE TIME(1)0xA8Returns a byte in which bits 6-4 is the value of the extended fade time multiplier and the lower nibble is the extended fade time base
QUERY CONTROL GEAR FAILURE(1)0xAADetermines if a control gear has failed
QUERY SCENE LEVEL0xB0Returns the level value of scene 'x'
QUERY GROUPS 0-70xC0Returns a byte in which each bit represents a member of a group. A '1' represents a member of the group
QUERY GROUPS 8-150xC1Returns a byte in which each bit represents a member of a group. A '1' represents a member of the group
QUERY RANDOM ADDRESS H0xC2Returns the upper byte of a randomly generated address
QUERY RANDOM ADDRESS M0xC3Returns the high byte of a randomly generated address
QUERY RANDOM ADDRESS L0xC4Returns the low byte of a randomly generated address
READ MEMORY LOCATION0xC5Returns the content of the memory location stored in DTR0 that is located within the memory bank listed in DTR1
QUERY EXTENDED VERSION NUMBER0xFFReturns the version number belonging to the device type or feature
SPECIAL COMMANDS
TERMINATE0xA1Stops the control gear's initilization
DTR0 DATA0xA3Loads a data byte into DTR0
INITIALISE0xA5Initializes a control gear, command must be issued twice
RANDOMIZE0xA7Generates a random address value, command must be issued twice
COMPARE0xA9Compares the random address variable to the search address variable
WITHDRAW0xABChanges the initialization state to reflect that a control gear had been identified but remains in the initialization state
PING(1)0xADUsed by control devices to indicate theirm presence on the bus
SEARCH ADDRH0xB1Determines if an address is present on the bus
SEARCH ADDRM0xB3Determines if an address is present on the bus
SEARCH ADDRL0xB5Determines if an address is present on the bus
PROGRAM SHORT ADDRESS0xB7Programs a control gear's short address
VERIFY SHORT ADDRESS0xB9Verifies if a control gear's short address is correct
QUERY SHORT ADDRESS0xBBQueries a control gear's short address
ENABLE DEVICE TYPE0xC1Enables a control gear's device type function
DTR1 DATA0xC3Loads a data byte into DTR1
DTR2 DATA0xC5Loads a data byte into DTR2
WRITE MEMORY LOCATION0xC7Writes data into a specific memory location and returns the value of the data written
WRITE MEMORY LOCATION NO REPLY(1)0xC9Writes data into a specific memory location but does not return a response

Note 1: Addition commands introduced in DALI 2.0.