Configuring input and output frontends via APIs in standalone instruments vs Multi-instrument Mode
-
Moku:Go
Moku:Go General Moku:Go Arbitrary Waveform Generator Moku:Go Data Logger Moku:Go Digital Filter Box Moku:Go FIR Filter Builder Moku:Go Frequency Response Analyzer Moku:Go Logic Analyzer & Pattern Generator Moku:Go Oscilloscope & Voltmeter Moku:Go PID Controller Moku:Go Spectrum Analyzer Moku:Go Waveform Generator Moku:Go Power Supplies Moku:Go Lock-in Amplifier Moku:Go Time & Frequency Analyzer Moku:Go Laser Lock Box Moku:Go Phasemeter
-
Moku:Lab
Moku:Lab General Moku:Lab Arbitrary Waveform Generator Moku:Lab Data Logger Moku:Lab Digital Filter Box Moku:Lab FIR Filter Builder Moku:Lab Frequency Response Analyzer Moku:Lab Laser Lock Box Moku:Lab Lock-in Amplifier Moku:Lab Oscilloscope Moku:Lab Phasemeter Moku:Lab PID Controller Moku:Lab Spectrum Analyzer Moku:Lab Time & Frequency Analyzer Moku:Lab Waveform Generator Moku:Lab Logic Analyzer/Pattern Generator
-
Moku:Pro
Moku:Pro General Moku:Pro Arbitrary Waveform Generator Moku:Pro Data Logger Moku:Pro Frequency Response Analyzer Moku:Pro Oscilloscope Moku:Pro PID Controller Moku:Pro Spectrum Analyzer Moku:Pro Waveform Generator Moku:Pro Lock-in Amplifier Moku:Pro Laser Lock Box Moku:Pro Digital Filter Box Moku:Pro FIR Filter Builder Moku:Pro Phasemeter Moku:Pro Multi-instrument Mode Moku:Pro Logic Analyzer/Pattern Generator Moku:Pro Time & Frequency Analyzer
- Python API
- MATLAB API
- Arbitrary Waveform Generator
- Data Logger
- Digital Filter Box
- FIR Filter Builder
- Frequency Response Analyzer
- Laser Lock Box
- Lock-in Amplifier
- Oscilloscope
- Phasemeter
- PID Controller
- Spectrum Analyzer
- Time & Frequency Analyzer
- Waveform Generator
- Logic Analyzer & Pattern Generator
- Multi Instrument Mode
- Moku Cloud Compile
- Moku general
- LabVIEW
TL;DR: When using Multi-instrument Mode (MiM), the input and output voltage ranges, input impedance, and input coupling are configured using the global set_frontend
and set_output
commands, rather than the per-instrument commands available in standalone mode.
Different Moku devices support different input and output voltage ranges. Table 1 summarizes the available ranges and their corresponding attenuation or amplification settings.
Input ranges |
Corresponding attenuation |
Output ranges |
Corresponding amplification |
|
Moku:Go | 10 Vpp, 50 Vpp (into 1 MΩ) |
0 dB, 14 dB |
10 Vpp (into 1 MΩ) |
n/a |
Moku:Lab | 1 Vpp, 10 Vpp |
0 dB, 20 dB |
2 Vpp |
n/a |
Moku:Pro | 400 mVpp, 4 Vpp, 40 Vpp |
0 dB, 20 dB, 40 dB |
2 Vpp, 10 Vpp |
0 dB, 14 dB |
Moku:Delta | 100 mVpp, 1 Vpp, 10 Vpp, 40 Vpp |
-20 dB, 0 dB, 20 dB, 32 dB |
1 Vpp, 10 Vpp |
0 dB, 20 dB |
- Note: On Moku:Delta, an input attenuation of –20 dB corresponds to an input amplification of +20 dB. This feature is unique to Moku:Delta.
When configuring inputs and outputs through the API, there are subtle but important differences between using standalone instruments and using MiM. In standalone mode, each instrument manages its own frontend settings. For example, the Oscilloscope controls its own input attenuation, and the Waveform Generator controls its own output gain.
In MiM, however, the frontend is shared across multiple instrument slots. This means the Waveform Generator no longer directly controls output gain, since users can dynamically remap its output channel to any physical DAC (or choose not to connect it to a DAC at all). Similarly, the Oscilloscope no longer directly controls input attenuation or range, because the same input may be shared by multiple instruments. To handle this, MiM provides global commands: set_frontend
to configure input attenuation, impedance, and coupling, and set_output
to configure output gain.
Moku:Go and Moku:Lab provide fixed output ranges. Moku:Go is limited to 10 Vpp into 1 MΩ, while Moku:Lab is limited to 2 Vpp into 50 Ω. In contrast, Moku:Pro and Moku:Delta include analog output amplifiers, which enable higher configurable output ranges. Table 2 summarizes the conceptual differences in how input and output voltage ranges are configured in standalone instruments vs. MiM.
Standalone instruments |
Multi-instrument Mode (MiM) |
|
Input ranges |
AWG, DL, FRA, OSC, PHM, SA, TFA, WG: set by DFB, FIR, LLB, LIA, PID: set by |
Set by the attenuation parameter in MiM set_frontend
|
Output ranges | Configured individually (see Table 3) |
Set by the output_gain parameter in MiM set_output
|
- Note: Starting from MokuOS firmware version 619, the set_frontend
command (for both standalone instruments and MiM) uses an interchangeable gain
parameter to configure input ranges. This parameter is equivalent to attenuation
but expressed with opposite signs. For example, 20 dB attenuation
corresponds to –20 dB gain
.
- Note: For more details on why some instruments use range
while others use attenuation
to configure the input range, see the API webpage.
For outputs in standalone instruments, configuration generally follows two approaches. Instruments with waveform generation capabilities adjust the output range automatically when the user defines an output amplitude, with the amplifier being enabled as needed. Other instruments provide a manual gain option, as seen in the Moku: app (Figure 1). In these cases, the API mirrors the app by allowing the user to explicitly configure the gain or select a range.

Figure 1. Example of a Moku instrument with a manual gain option to amplify output signals.
Configuration method | Moku instruments |
API command |
Output range is auto-adjusted when defining the output amplitude (waveform generation capability) |
Arbitrary Waveform Generator |
|
Datalogger |
||
Frequency Response Analyzer |
||
Oscilloscope |
||
Phasemeter |
||
Spectrum Analyzer |
||
Waveform Generator |
||
Output range is manually selected by specifying amplification or range | Digital Filter Box |
|
FIR Filter Builder |
||
Laser Lock Box |
||
Lock-in Amplifier |
||
PID Controller |
||
Time & Frequency Analyzer |