I am new to DALI lighting control. trying to develop atmega based master controller especially for device type 8 (DT8). my main goal is color temperature adjustment. I am going through IEC 62386-209. but couldn't understand the command sequence for say just sending a simple CCT command to one driver ( I have DT8 Driver with 5 channels with support Tc, xy and RGBWAF). I got DT6 devices working but no luck with DT8.

I have problem understanding the part where LSB and MSB comes in. with mirek value and all. DT6 the dtr value is upto 256 from my understanding and here it shows range of validity 0-65535 so how this works.

  • 1
    \$\begingroup\$ This isn't a site that is generally suitable for "can someone help me understand" type questions because, to give an answer requires a thorough understanding of what YOU may or may not understand and what YOUR skill levels are. You should ask a specific answerable question and explain why you don't understand what is said in this or that document. You should also add the extracts of those documents you don't understand so that there is context. This may be useful \$\endgroup\$
    – Andy aka
    Jan 19 at 14:44
  • \$\begingroup\$ I’ve posted the command sequence in so this is a duplicate. electronics.stackexchange.com/questions/595438/… \$\endgroup\$
    – Martin
    Jan 19 at 18:49
  • \$\begingroup\$ I have updated the question more specifically @Martin \$\endgroup\$ Jan 20 at 6:57

1 Answer 1


DALI's colour temperature range is 1 000K to 20 000K but this is expressed in a less well-known IEC unit, Mirek which is simply 1 million times the reciprocal of the colour temperature in K.

Mirek = 1 000 000 / T

This gives a range of 1000 Mirek (warmest) to 50 Mirek (coolest) which has to be transmitted over DALI.

DALI 209 DT8 Tc colour scale

Colours exaggerated for clarity.

Since DALI data is based on 8-bit registers called DTRs, the value has to be split into two bytes.

In C, this is typically written as

MSB = value / 256;
LSB = value - MSB*256;

which relies on the use of integer rounding maths to work.

Table 15 in IEC62386-209 shows which DTRs are used for which commands. Extract from Table 15

Which leads to this command sequence:

Command 257 Set DTR to the LSB of the Mirek value you want
Command 273 Set DTR1 to the MSB of the Mirek value you want
Command 272 Enable Device Type, with value 8 (for type 209 gear)
Command 231 Set Temporary Colour Temperature Tc, addressed to the gear.

Note that your LEDs and control gear may not achieve all colour temperatures demanded at all dimming levels. This is a typical performance curve: Typical colour vs brightness achievable curve from Helvar LL60/2-E-DA-iC

  • \$\begingroup\$ thank you for the answer things are much more clearer now. can you show me an example say I want set cct of 5000 for say light id 10. so the mirek value is 200. what will be the sequence specific to this operation. \$\endgroup\$ Jan 20 at 10:34
  • \$\begingroup\$ can you give me more clarification on LSB and MSB. considering an example of 200mirek @Martin \$\endgroup\$ Jan 20 at 11:34
  • \$\begingroup\$ 200 is LSB=200, MSB=0, as per the formulas in the answer. \$\endgroup\$
    – Martin
    Jan 20 at 11:51
  • \$\begingroup\$ thanks. it is mentioned to run enable device type command before every dt8 command. should it be addressed to any specific id or as BC . also what is the difference between data and DTR(in command list it is mentioned)? \$\endgroup\$ Jan 20 at 12:03
  • 1
    \$\begingroup\$ Section 11.3.4 says "Application extended commands shall be preceded by command 272 (ENABLE DEVICE TYPE X) with X = 8" Application extended commands are command numbers 224 to 255 inclusive. You can see from the format of the Command 272 that it does not have any bits for address. \$\endgroup\$
    – Martin
    Jan 20 at 12:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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