Frequently Asked Questions


+ Can I connect to a device by directly typing in its IP address?

Yes. In the iPad app, simply tap on the '...' button which appears in the bottom left corner of the "Select your device" screen, then choose "Other device...". Ports 27182-27186 must be open to connect to a device on a different subnet.

+ I don't have an iPad. Can I still use Moku:Lab?

Yes! We have a Python library which you can use to interact with Moku:Lab from any computer running Mac OS, Windows or Linux. We are also working on MATLAB and LabVIEW interfaces.

For information on the Python interface, see our pymoku page.

+ If I want to use an iPad to run my Moku:Lab, what model / operating system is required?

The minimum requirements are an iPad Air or iPad mini 2 or newer running iOS 8 or later. Choose your model from

+ All of my lab computers run Windows. Will I need to change them all to Mac OS?

No, Moku:Lab works perfectly well in a Windows lab environment. You can transfer data to your Windows computer via email or Dropbox using the the in-app sharing button. Or use our Python library to integrate Moku:Lab into your Windows-based experiment control system.

+ The Moku:Lab has an FPGA inside it. Can I get access to the FPGA to execute my own code?

Sorry, not yet. We hope to bring you this capability in the future. We won't do anything to stop you running your own code but we are unable to support it at this time. If this feature is important to you please let us know, but for now Moku:Lab is designed to work out of the box in the same way as conventional test and measurement instruments like oscilloscopes and waveform generators.


+ Can I set the channel offset in screen divisions while zooming?

To zoom in and out while keeping the channel offset fixed on the screen, simply pan up or down with two fingers held together. This 'rapid zooming' technique works horizontally and on other instruments as well!

+ What is the difference between "Normal" and "Precision" acqisition modes?

Moku:Lab records samples from the analog inputs at a rate of 500 MS/s. When looking at long time spans, this sampling rate must be reduced to show a trace on the screen. In "Normal" acquisition mode, the input is simply downsampled; that is, only every Mth sample is taken. This can cause aliasing of high frequency signals: for example, a high frequency sine wave may appear as a lower frequency sine wave when the oscilloscope timebase is zoomed out. In "Precision" mode, the input is decimated (lowpass filtered before downsampling). This reduces aliasing and increases the resolution of the trace. Note that in this mode, high frequency signals can be filtered out, so the oscilloscope trace may appear to be zero even if a high frequency signal is present at the input.

Data logger

+ How long can I record for?

The Moku:Datalogger is limited only by storage. The Moku:Lab has 500MB of internal storage and can also log to an SD card of any size. Note though that most SD cards use the FAT32 filesystem, which is limited to a maximum file size of 4GB.

Recording a single channel at minimum rate to a binary file, this gives you approximately 4 months of recording to internal storage, up to 2.5 years to an SD card.

+ How can I read data from .li files?

The LI File Converter can be used to convert binary data from a .li file into plain text data in CSV (comma-separated values) format, or to a MATLAB .mat file. You can download it here:

+ How can I import a CSV file from Moku:Datalogger into MATLAB?

If you only need the data itself, simply type load yourfile.csv at the MATLAB command prompt. CSV files generated by Moku:DataLlgger also contain a text header with information about when the data was recorded, the instrument settings, and what each column in the data represents. If you want to import this metadata as well, use the command moku = importdata('yourfile.csv').

PID controller

+ How can I invert my controller's response?

You can enter negative values into the control matrix to invert one or both input signals.

+ What do the different colored buttons mean when configuring a PID controller?

Often it is useful to be able to configure a controller's transfer function before implementing it. When the 'P', 'I', 'D', 'I+', 'IS', or 'DS' buttons are orange, any changes you make to those parameters will not take effect until you tap the button again and it turns green or purple.

Bode analyzer

+ How can I plot the ratio of Input 1 and Input 2?

By default, each channel shows the ratio of the input to the output, In / Out. This is useful for measuring the transfer function of a device under test. The math channel allows you to plot different combinations of Ch 1 and Ch 2. If the output amplitudes of both channels are set to the same value, then viewing the math channel as Ch 1 / Ch 2 will show the ratio In 1 / In 2, since the outputs are the same.

Digital filter box

+ Can I load my own filter coefficients?

Yes! Moku:DigitalFilterBox implements infinite impulse response (IIR) filters using 4 cascaded Direct Form I second-order stages with a final output gain stage. To specify a filter, you must supply a text file containing the filter coefficients. The file should have six coefficients per line, with each line representing a single stage. If output scaling is required, this should be given on the first line. Each coefficient must be in the range [-4.0, +4.0). Internally, these are represented as signed 48-bit fixed-point numbers, with 45 fractional bits. The output scaling can be up to 8,000,000. Filter coefficients can be computed using signal processing toolboxes in e.g. MATLAB or SciPy.