We have artiq 8 in both firmware and hardware. When we try to change the frequency of a DDS using the "set_frequency()" function it doesn't work, but it does when using "set()".

Does anybody know why?

Please refer to AD9910 datasheet (Rev. E), Table 5 (Data Source Priority).

The condition to control frequency through the FTW register is not satisfied by default.

To be more specific, the ftw register is only used for RAM profiles, and not the simple single tone output. Essentially, just remember that you need to use set(), and don't worry about the other functions unless you are using more advanced features, for which you'll need to understand the AD9910 in a fair bit of depth.

One other gotcha to be aware of is that if you do set(amplitude=XXX) without setting a frequency, nothing will come out because it will actually set the frequency to 0 Hz, and likewise set(frequency = XXX) will overwrite the previous amplitude and set the output to full power