Quarto by qNimble

The Quarto provides deep & fast analog-to-digital and digital-to-analog I/O with low latency and jitter. Simultaneously control experimental timing, collect data, and digitally process signals all with a single device.


A Digital Brain for the Analog WorldTM

The qNimble Quarto is a multi-function data acquisition platform that is easy to use, but incredibly powerful. Low latency, 1 MSPS, 16 bit-ADC's and DAC's are directly accessible with a blazing fast 500 MHz CPU dedicated to running your code. The CPU can read or write analog signals in just a few clock cycles ~1µs of latency. The Quarto is Arduino-compatible, so you can program it in the Arduino IDE, or your favorite C/C++ environment. You can build a 100kHz bandwidth PID servo control system or custom digital filters with just a few lines of code. What will you build?

How does the qNimble Quarto work?


The Quarto combines four high-speed, low-latency 16-bit DACs and ADCs with a powerful CPU and an FPGA. The FPGA handles all the communication with the DAC and ADC and we created InstraWrite™ to enable the CPU to read from or write to the FPGA immediately. Communication with the ADC and DAC never slows down the CPU. The entire signal chain is designed for low latency (~1μs) to support high-bandwidth servoing and filtering so you can respond to your data quickly. With hardware support for floating point math, you can do advanced math calculations on your data in real-time.

How does the qNimble Quarto compare to a...

USB approach

Data-acquisition over USB is simple and often inexpensive. While not universal, these solution often have 12bit or fewer ADC's and DAC's and limited sample rates. But any USB approach will have very high latency and timing jitter. The USB protocol is designed for moderate latency or high bandwidth, but not both. The round trip time from the device, to your computer over USB and back again can be take many milliseconds. If you just want to generate a fixed analog output or stream analog data, this can be a great approach. But if you want to interact with your data quickly, you will need a different approach.

Traditional DAQ approach

A traditional data-acquisition (DAQ) approach has dedicated hardware that either runs on your computer or on a dedicated chassis. Modern computers are amazing, but they are not designed for low-latency (~1us) response times. Even when running a Real-Time OS, getting predictable latency under 10us can be challenging. Additionally, the complexity of running a full operating system adds cost and complexity to these approaches.

FPGA approach

When you want the lowest latency connection to an ADC or a DAC, go with an FPGA. It can handle ADC data sampling at 100M samples per second and process the data in well under 100ns. But such power comes with a few drawbacks. In addition to the higher cost of an FPGA, programming one has its own challenges:

  • Learning Curve - Programming an FPGA is complex and takes a while to learn. Troubleshooting an FPGA is even harder.
  • Iteration Time - Compile times on an FPGA can be tens of minutes or even hours. That really slows down how fast you can try and iterate your ideas.
  • Math - Floating point math is very computationally expensive and usually calculations must be done with integers.

If you aren't programming an FPGA, then you are using someone else's FPGA program. This solves many of the above issues, but these approaches tend to be expensive and limit you to the features and functionality they programmed into the FPGA.


The Quarto approach gives you the speed and power of an FPGA without its complexity or expense. You can program your custom code in C++ with the easy-to-use Arduino™ IDE without worrying about FPGA design or avoiding floating point math. Your code is running directly on the CPU (no OS) to maximize simplicity and speed.

Vescent is the exclusive Distributor for qNimble Quarto in the United States.  For full product details, visit the qNimble Quarto site.

Analog to Digital Converter (ADC)

Parameter Value Units
Number of Channels 4  
Number of Bits 16  
Range Modes ±10, ±5, ±2.5, ±1.25 Volts
Quantization Step Size 312.5 (Range = ±10V)
156.25 (Range = ±5V)
78 (Range = ±2.5V)
39 (Range = ±1.25V)
Maximum Sample Rate1 1 MS/s
Input Impedance >100k Ω
Bandwidth (-3 dB) 400 kHz

Digital to Analog Converter (DAC)

Parameter Value Units
Number of Channels 4  
Number of Bits 16  
Range Modes ±10 Volts
Quantization Step Size 312.5 uV
Maximum Sample Rate1 1 MS/s
Update Latency2 1 us
Rise / Fall Time (1/e) 2.2 μs
Output Impedance 50 Ω


Timing Resolution

Parameter Value (Typical) Units
Interrupt Timing Jitter3 100 ns
Interrupt Latency3 210 ns

  1. Mega Samples Per Second (MS/s) across all channels. Sum of sample rate of all channels must not be greater than 1 MS/s.
  2. Time from executing writeDAC function to analog output starts updating. 
  3. See Measuring Response Time for details on definition of latency and jitter.

Vescent is the exclusive Distributor for qNimble in the United States.  Visit the qNimble site.

Example code for various applications