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:
Code:
{ cmd = 'selectdimmingcurve', address = 's0' }
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:
- DTR0 = 1 → A301
- ENABLE DEVICE TYPE 6 → C106
- SELECT DIMMING CURVE → 01E3
- SELECT DIMMING CURVE → 01E3 (second transmission)
- TERMINATE → A100
Based on these observations, could you please verify whether the internal mapping of
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' }
}
})
`