# Recommended DAC configuration In order to output frequencies up to 9 GHz, Presto uses a digital-mixing stage just before the digital-to-analog converter (DAC). `dac_mode` and DAC sampling rate `dac_fsample` are two parameters one needs to choose depending on the output frequency. :::{tip} Starting from version 2.12.0, the Presto API can select the optimal DAC configuration automatically based on your choice of frequencies. Just set `dac_mode=DacMode.Mixed` and leave the default `dac_fsample=None`, and the API will do the rest. For example: ``` with pulsed.Pulsed( address="192.168.20.42", adc_mode=AdcMode.Mixed, dac_mode=DacMode.Mixed, ) as pls: ... ``` If you still want to specify the DAC settings manually, or if you want to learn more, keep reading. ::: A helper function {func}`.utils.recommended_dac_config` can recommend the optimal configuration: we just pass the frequency we want to output and it will return the suggested `dac_mode` and `dac_fsample`: ```python dac_mode, dac_fsample = recommended_dac_config(5.2e9) ``` The returned parameters can be used directly by passing them to a {class}`.Pulsed` or {class}`.Lockin` instance. For example: ```python with pulsed.Pulsed( address=presto_address, port=presto_port, ext_ref_clk=ext_ref_clk, adc_mode=AdcMode.Mixed, adc_fsample=AdcFSample.G2, dac_mode=dac_mode, dac_fsample=dac_fsample, ) as pls: ``` The function can also print all DAC configurations compatible with the requested frequency, and calculate the frequency of the nearest spurious signals that are generated due to digital mixing. Further, it suggests an appropriate analog filter that can be connected to the output of Presto to suppress these spurs: ```python dac_mode, dac_fsample = recommended_dac_config(5.2e9, print_all=True) ``` ```text Valid DAC configurations for signal at 5200.0 MHz: * Mixed42-G8 (score 1680): - low-frequency spur: 2800.0 MHz - high-frequency spur: 10800.0 MHz - compatible band-pass filters: ['VBFZ-5500-S+', 'ZBSS-6G-S+', 'ZVBP-5G-S+'] * Mixed02-G6 (score 1173): - low-frequency spur: 800.0 MHz - high-frequency spur: 6800.0 MHz - compatible band-pass filters: ['ZVBP-5G-S+'] ``` Finally, {func}`~.utils.recommended_dac_config` can plot all of the recommended combinations of DAC sampling rates and modes (bands of blue, orange and green), the targeted frequency, and nearest spurs in red: ```python dac_mode, dac_fsample = recommended_dac_config(5.2e9, plot=True) ``` ```{image} images/recommended_dac_config_light.svg :align: center :class: only-light ``` ```{image} images/recommended_dac_config_dark.svg :align: center :class: only-dark ``` Depending on your application, the recommended settings might not be the optimal ones. In this case, you are always able to manually set all the configuration parameters.