Broadcast control commands are working properly. But, I am not able to get the response from Dali Driver, for broadcast query or special commands.

And also I am not able to set short address for the driver. Steps followed by me to set the short address: 1. Initialize Command 2. Randomize Command 3. Program Short Address 4. Query Short Address(Not getting any response)


The command sequence to set a short address when I only have one gear on the bus is: I sent broadcast with Command 145->>FF91 I got 0xFF. Then I sent A307(Command257) ->>FF80(Command 128)->>0791(Command 145) but I get no response

I sent FF98 (command 152) get 07

Now I can set a short address and turn the lamp on or off when I only have one gear on the bus by follow:

*Set the DTR to the required short address in the special format (shifted left one place, least significant bit set to 1).

*Read the DTR to check that it is correct.

*Send Command 128 Store DTR as Short Address, using broadcast addressing.(But I need to send Command 128 many times,Is this a problem?)

There are some mistakes : Procedure for short addressing when I have two gears on the bus:

I sent FF91 once, got 0xFF once

I sent 0591 once, got 0xFF once sent 0391 once, got 0xFF once

I sent 0508/0500 once,the lamp on/off.

I sent 0308/0300 once, the other lamp on/off

I sent A500 four times->> sent A700 two times->>sent B5FF ->>sent B3FF ->>sent B1FF ->>sent A900 got no response

And then, I sent 0591 , got 0xFF sent 0391 , got 0xFF

I have sent command 258, but the two gears didn't initialized.

That's Very confusing.


1 Answer 1


I would recommend you first get broadcast queries working before you attempt the more complicated procedure for short addressing, since it requires that broadcast queries and responses are working. Start by running broadcast queries on a single driver. If you get no response with your DALI interface tool, look at the line with a scope to check the voltage levels and bit timings. Check that your query (forward frame) meets the timing requirements of IEC62386-101.

The commands which change a non volatile variable (a setting) and some of the special commands (Intialise, Randomise) have to be sent twice within 75ms to be accepted (Ed 2 timing, was 100ms with 10% tolerance in Ed 1). See Table 16 of IEC62386-102 Ed 2 for details of which command have to be sent twice.

Program Short Address is only accepted when the search address matches the random address and the gear is either in Withdrawn or Initialised state. Also beware that the short address used in this command and Verify Short Address uses a left shifted version with the least significant bit set to 1. In binary, this is described in the standard as

0AAAAAA1, where A is an address bit.

This format is also used by command 128 STORE DTR AS SHORT ADDRESS so if you have DTR value of 7, then you have set a short address of (7 >> 1) = 3.

  • \$\begingroup\$ I have the new questions.Can you Review the article again? \$\endgroup\$ Commented Jan 19, 2018 at 13:42
  • \$\begingroup\$ That is a different question, please ask it as a different question here. Also if my answer fixed your original question you should mark it correct and move your additional question to a new question. When writing your new question, it would be very helpful to use the DALI command names rather than hex codes which have to be looked up, bearing in mind that these questions and answers are a record for future visitors. \$\endgroup\$
    – Martin
    Commented Jan 19, 2018 at 14:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.