So, enter the UnoProLogic2 Ultra Low Cost Open Source Oscilloscope. It is used along with the UnoProLyzer application software running on a PC. Together these two provide a simple yet powerful oscilloscope tool to allow you to examine four analog channels running up to 300 KSamples/second. The hardware has been simplified to remove extra cost. The input signals are limited to 0 to +5Volts and the sample rate is shared across all four channels. If you run one channel only, it will take advantage of the 300KSamples/second. If you run four channels, each channel will have a maximum sample rate of 75 KSamples/second.
The Arduino Inputs/Outputs are usually operating at a much slower rate than the sampling rate of the UnoProLogic2. About half the time you are debugging your Arduino, this is more than enough speed for troubleshooting purposes. Plus, you get four channels to probe and look for bugs. This makes the UnoProLogic2 a superior test tool to more expensive devices.
Why is the Cost So Low?
The UnoProLogic2 cost is well below the other test tools on the market because everything possible has been done to keep the cost low. This means the hardware is essentially an “ADC on a USB Stick”. The ADC samples the analog input channels, then the samples are sent to the appropriate channel buffer in the PC. This allows the UnoProLyzer application to do all of the heavy lifting. All of the other test tools out there attempt to do as much as possible on the USB hardware, from collecting samples, triggering, and memory storage to post processing FFTs. The CPU/Operating System on your laptop is a far more powerful device capable of doing all the work of an oscilloscope. So why not use it instead of making it a dumb display device like all the other USB scopes on the market.
The UnoProLogic2 leverages the power of your PC/CPU and keeps the expensive hardware to a minimum. This makes it low cost. It is true that the low cost of the UnoProLogic2 comes at the cost of a high sample rate and large bandwidth. However, about 60% of all debugging of the Arduino signals can be accomplished at the lower sampling rates.
None of the above Arduino functions require a USB scope with 1 MHz bandwidth let alone a 40 MHz bandwidth. So you really have no need to spend upwards of $199.00 for a USB scope.
And if you need a higher sampling rate for that other 40% of the time, we got you covered. The CPLD has a 66MHz oscillator, so with the click of a button you can turn the UnoProLogic2 into a 24 input digital Logic Analyzer. This analyzer will operate at 33MHz. All of the digital Logic Analyzer code is open source and comes with tutorials with the UnoProLogic2. Can the other USB scope guys deliver this?
The UnoProLogic2 Hardware
The UnoProLogic2 is Open Source Hardware based on a CPLD, High Speed USB and an on board 4 Channel ADC. The CPLD is a Complex Programmable Logic Device that allows user code to configure the chip to perform any digital logic function, synchronous or non-synchronous. The UnoProLogic2 provides a high speed path for data to and from the PC over USB 2.0. This high speed data path, up to 8MBytes/second, allows the UnoProLyzer application to run on the PC and perform the function of an oscilloscope. The CPLD commands the ADC to sample the selected channels. It then reads the ADC data and sends it to the UnoProLyzer application.
You can view the schematic here:
The UnoProLogic2 uses a 66MHz oscillator to provide the timing for SPI bus, USB data transfers and user code. This high speed oscillator allows the CPLD to transfer the ADC samples to the internal USB FIFO at 10MHz. This high speed transfer rate allows a continuous stream of samples to be sent to the UnoProLyzer for storage. The UnoProLyzer can then perform triggering and other operations on the raw data samples. By performing the oscilloscope processing in the PC application, the UnoProLogic2 hardware can be kept simple and cheap.
The UnoProLyzer Application
The UnoProLyzer is an Open Source Oscilloscope Application created by Earth People Technology. This application runs on a Windows 7/8 PC. It sends commands to and receives the data from the UnoProLogic2 and stores each channel data in its own separate buffer in memory. The UnoProLyzer collects all samples from each channel by streaming across up to four dedicated communication “pipes”. The traditional USB oscilloscope performs all of its functions down at the hardware level. This includes
- Collecting samples
- Setting trigger level
- Detecting the trigger
- Storing samples
- Post processing samples
- Smoothing algorithms
- Sorting algorithms
- Scaling and Searching
These scopes will then send the selected data to be displayed on a laptop. Effectively using the laptop as a dumb terminal. However, the modern laptop is extremely powerful with multi-core processors and multi-threaded operating systems. So, why not take advantage of the processing power on the laptop. This is what the UnoProLogic2 and UnoProLyzer do so well.
The UnoProLogic2 commands the ADC to start a conversion on the channels selected by the user. It then waits for the ADC to complete the conversion on all channels. It transfers the data for each channel across its own dedicated communication pipe. Then starts the process over again. The UnoProLyzer application will accept each data word and decode the pipe number it came across. It stores each word into a separate buffer for each channel. The UnoProLyzer then performs post processing on each data word. It performs trigger detection, smoothing, sorting, scaling and searching. It then displays the data set in 500 data point segments.
The UnoProLogic2 is powered completely over the USB cable. Just plug the cable into an open USB port on your laptop or desktop PC and into the Micro-B connector of the UnoProLogic2 and click on the software icon. The software locates the UnoProLogic2 via the registry and loads the application. Use your breadboard jumper wires to connect between the Arduino connectors and the six pin inline connector that provides a path to the ADC inputs.
The Open Source Software of the UnoProLoyzer uses the Active Host API in the PC and the Active Transfer Library on the CPLD. The Active Host API and the Active Transfer Library provide the “pipe” mechanism that allows commands to be sent and ADC data received from the UnoProLogic2. The pipe mechanism is provided by “EndTerms”.
The user code connects to “Endterms” in the Active Host dll. These Host “Endterms” have complementary HDL “Endterms” in the Active Transfer Library which reside in the CPLD code. Users have seamless bi-directional communications at their disposal in the form of:
- Trigger Endterm
- Transfer Endterm
- Block Endterm
User code writes to the Endterms as function calls. Just include the address of the individual module (there are eight individually addressable modules of each Endterm). Immediately after writing to the selected Endterm, the value is received at the HDL Endterm in the CPLD. The Trigger Endterms send single bits to the CPLD. The Transfer Endterm sends a single byte. And, the Block Endterm sends a block of bytes. By using one of the Active Host Endterms, the user can create a dynamic, bi-directional, and configurable data transfer design.
The Active Host API is designed to seamlessly transfer data from the CPLD when it becomes available. It is a transparent receive transfer path made possible by using a callback mechanism. The data seamlessly appears in Host PC memory from the Arduino.
But Wait, There's More
While the UnoProLogic2 cannot match the performance of other more expensive USB scopes, it can contribute more in the aide of debugging your Arduino code than they can. With the plug in connections to the Arduino, the UnoProLogic2 goes a step further in debugging your applications. You can set the trigger to monitor the level or duration of a signal on the analog inputs. When the trigger detects this condition, the UnoProLyzer can send a command to the Arduino to pause the execution of the loop function. When the loop pauses, you can send a command from the UnoProLyzer to read out the contents of your memory or the state in a state machine. This can provide an enormous benefit when debugging hard to find problems. And the other USB scopes cannot deliver this level of performance. Earth People will provide sample applications, tutorials, and all source code for the Arduino Debugging.
The Oscilloscope Interface Board
In order to sweeten the deal, Earth People Technology is offering the Oscilloscope Interface board. Choose this as your reward for supporting the UnoProLogic2 campaign drive. It will turn the UnoProLogic2 into a true Oscilloscope with +/- 40 Volt input and the ability to accept off the shelf Oscilloscope probes.
The Oscilloscope Interface board plugs directly into the UnoProLogic2 connectors. It interfaces the signals to be measured to the on board 4 Channel ADC. The interface board uses four standard sized BNC connectors that allow you to install most off the shelf oscilloscope probes. The Oscilloscope Interface Board also allows advanced triggering techniques. It does this by including a 4 to 1 multiplexor which is used to select one of the input channels to apply to the analog comparator. An MSP430 MCU used to provide the analog comparator and digital storage memory. Adding the Oscilloscope Interface board to the UnoProLogic2 and using the UnoProLyzer application gives you a powerful four channel 300 Kilo Sample per second oscilloscope.
- Bandwith: 100KHz Max
- Sampling Rate: 300KHz @ 1 Channel / 75KHz @ 4 Channels
- Input Channels: 4 Channels
- Input Range: ±50 mV ~ ±40 V
- Input coupling: AC / DC
- Input Impedance: 1 MOhms
- Input Capacitance: 15 pF
- Overvoltage protection: ±100 V (DC+AC peak)
The Voltmeter Interface Board
In order to sweeten the deal, Earth People Technology is offering the Voltmeter Interface board. Choose this as your reward for supporting the UnoProLogic2 campaign drive. It will turn the UnoProLogic2 into a true Voltmeter with the ability to measure AC or DC voltages.
The Voltmeter Interface board plugs directly into the UnoProLogic2 connectors. It turns the UnoProLogic2 into a true voltmeter. It allows the on board 4 Channel ADC to measure analog voltages from minus 200 Volts to positive 200 Volts AC or DC.
The interface board uses four standard sized Banana Connector Pairs that allow you to install most off the shelf Voltmeter probes. Adding the Voltmeter Interface board to the UnoProLogic2 and using the Voltmeter application gives you a Digital Voltmeter.
Risks and challenges
The UnoProLogic2 is the evolution of the successful UnoProLogic CPLD Development System. The hardware has gone through multiple revisions and verification. The Active Host API and Active Transfer Library has gone through two years of verification. The next phase for the UnoProLogic2 is production. The purpose of this Kickstarter campaign for the UnoProLogic2 is to take pre-orders so that a larger order can be placed with the manufacturer.
-May 2015, Complete Kickstarter Funding Drive
-May 2015, Place Order for UnoProLogic2 PCBs, Parts, and Stencils
-May 2015, Order 2nd prototypes for Oscilloscope and Voltmeter PCBs
-June 2015, Receive UnoProLogic2 PCBs, Parts and Stencils
-June 2015, Production Build of UnoProLogic2s
-July 2015, Deliver UnoProLogic2s
-July 2015, Place Order for Oscillosocpe and Voltmeter PCBs, Parts, and Stencils
-August 2015, Receive Oscillosocpe and Voltmeter PCBs, Parts and Stencils
-June 2015, Production Build of Oscillosocpe and Voltmeter Boards
-August 2015, Deliver Oscillosocpe and Voltmeter Boards and probes
- (30 days)