An analogue dimmer driver for driving an LED lighting element to generate coded light, the driver comprising: an output component configured to provide a primary current (i pr), wherein the output component is one of a controllable constant current source and a controllable constant power source; the analogue dimmer driver being characterised in that it further comprises: a capacitor connected to the output component; a switch via which the LED lighting element is connectible to the output component in parallel with the capacitor, so that when the switch is open the primary current (i pr) charges the capacitor, and when the switch is closed the capacitor discharges to generate a discharge current (i dis) so that the lighting element is driven by a drive current (i pr +i dis) which comprises the discharge and primary currents; and a controller configured to perform switching by periodically opening and closing the switch to code information into light generated by the lighting element, wherein the switching is performed with a duty cycle; wherein the controller has an input by which a desired dimming level (dl) is conveyed to the controller, the desired dimming level (dl) representing a fraction of a nominal power or current of the LED lighting element, said desired dimming level (dl) has a value dl, wherein 0 ≤ dl ≤ 1; wherein the output component has an input configured to receive from the controller a dimming signal corresponding to the desired dimming level (dl); and wherein the controller is configured to both control the duty cycle and adjust the primary current (i pr) provided by the output component in dependence on the desired dimming level, such that responsive to a change in the dimming level which indicates that an increase in the average power of the generated light is desired: i) the primary current is increased so as to increase the average power of the generated light and ii) the duty cycle (dc) of the switching is increased such that it is greater than or equal to the dimming level (dl), thereby preventing the peak level of the drive current from exceeding a predetermined level (i nom). an output component configured to provide a primary current (i pr), wherein the output component is one of a controllable constant current source and a controllable constant power source; the analogue dimmer driver being characterised in that it further comprises: a capacitor connected to the output component; a switch via which the LED lighting element is connectible to the output component in parallel with the capacitor, so that when the switch is open the primary current (i pr) charges the capacitor, and when the switch is closed the capacitor discharges to generate a discharge current (i dis) so that the lighting element is driven by a drive current (i pr +i dis) which comprises the discharge and primary currents; and a controller configured to perform switching by periodically opening and closing the switch to code information into light generated by the lighting element, wherein the switching is performed with a duty cycle; wherein the controller has an input by which a desired dimming level (dl) is conveyed to the controller, the desired dimming level (dl) representing a fraction of a nominal power or current of the LED lighting element, said desired dimming level (dl) has a value dl, wherein 0 ≤ dl ≤ 1; wherein the output component has an input configured to receive from the controller a dimming signal corresponding to the desired dimming level (dl); and wherein the controller is configured to both control the duty cycle and adjust the primary current (i pr) provided by the output component in dependence on the desired dimming level, such that responsive to a change in the dimming level which indicates that an increase in the average power of the generated light is desired: i) the primary current is increased so as to increase the average power of the generated light and ii) the duty cycle (dc) of the switching is increased such that it is greater than or equal to the dimming level (dl), thereby preventing the peak level of the drive current from exceeding a predetermined level (i nom).