Dear Admin,
First of all, thank you very much for your assistance and for providing the updated version of the 'applibs.canxdali' library. I have spent some time analyzing the DALI bus traffic with DALI Monitor and would like to share my findings, as I believe I may have identified an issue related to the dimming curve configuration on DT6 LED drivers.
After comparing the command sequence generated by the library with the sequence that successfully configures the ballast, I noticed the following discrepancy:
1. Observed Behavior
According to the DALI standard, when changing the dimming curve on a DT6 device, the application extended command 227 (E3) should be sent after ENABLE DEVICE TYPE 6 (C106).
However, when using:
the library appears to send 01E5 (command 229) instead of 01E3 (command 227).
2. Impact
From the traces I captured, command 229 (E5) seems to be associated with Device Type 5. When a standard DT6 LED driver receives this command, it reports it as an undefined DT255 command and ignores the request. As a result, the dimming curve remains unchanged.
I also noticed that the library internally issues an ENABLE DEVICE TYPE 5 (C105) command, which may explain the behavior.
3. Expected Sequence
For a DT6 ballast at short address 0, I would expect the following sequence:
should use command 227 (E3) when operating with DT6 devices instead of command 229 (E5)?
Of course, it is also possible that I am overlooking some implementation detail, so I would appreciate any clarification you can provide.
Thank you again for your support and for taking the time to review this. I look forward to your feedback.
Best regards,
The first image shows the correct sequence sent by Tridonic's MasterConfigurator software; the second image shows the sequence sent by the example provided after a firmware update.
`
canxdali = require('applibs.canxdali')
canxdali.sendcmds({
lineid = 0,
nodeid = 1,
cmds = {
{ cmd = 'setdtr0', value = 1 }, -- 0 = logarithmic, 1 = linear
{ cmd = 'enabledevicetype', value = 5 },
{ cmd = 'selectdimmingcurve', address = 's0' },
{ cmd = 'selectdimmingcurve', address = 's0' },
{ cmd = 'terminate' }
}
})
`
First of all, thank you very much for your assistance and for providing the updated version of the 'applibs.canxdali' library. I have spent some time analyzing the DALI bus traffic with DALI Monitor and would like to share my findings, as I believe I may have identified an issue related to the dimming curve configuration on DT6 LED drivers.
After comparing the command sequence generated by the library with the sequence that successfully configures the ballast, I noticed the following discrepancy:
1. Observed Behavior
According to the DALI standard, when changing the dimming curve on a DT6 device, the application extended command 227 (E3) should be sent after ENABLE DEVICE TYPE 6 (C106).
However, when using:
Code:
{ cmd = 'selectdimmingcurve', address = 's0' }2. Impact
From the traces I captured, command 229 (E5) seems to be associated with Device Type 5. When a standard DT6 LED driver receives this command, it reports it as an undefined DT255 command and ignores the request. As a result, the dimming curve remains unchanged.
I also noticed that the library internally issues an ENABLE DEVICE TYPE 5 (C105) command, which may explain the behavior.
3. Expected Sequence
For a DT6 ballast at short address 0, I would expect the following sequence:
- DTR0 = 1 → A301
- ENABLE DEVICE TYPE 6 → C106
- SELECT DIMMING CURVE → 01E3
- SELECT DIMMING CURVE → 01E3 (second transmission)
- TERMINATE → A100
Code:
selectdimmingcurveOf course, it is also possible that I am overlooking some implementation detail, so I would appreciate any clarification you can provide.
Thank you again for your support and for taking the time to review this. I look forward to your feedback.
Best regards,
The first image shows the correct sequence sent by Tridonic's MasterConfigurator software; the second image shows the sequence sent by the example provided after a firmware update.
`
canxdali = require('applibs.canxdali')
canxdali.sendcmds({
lineid = 0,
nodeid = 1,
cmds = {
{ cmd = 'setdtr0', value = 1 }, -- 0 = logarithmic, 1 = linear
{ cmd = 'enabledevicetype', value = 5 },
{ cmd = 'selectdimmingcurve', address = 's0' },
{ cmd = 'selectdimmingcurve', address = 's0' },
{ cmd = 'terminate' }
}
})
`