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...
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.
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.