I've been having loads of fun playing with BenchVue, the Pro Apps for DMMs and Function Generators, and with Keysight's BenchLink Waveform Builder Pro. I have encountered a few hiccups, but things have gone smoothly for the most part.
My plan to capture live data streams on my oscilloscope and import them into the 33622A function generator went great last night. I saved the captured waveforms (at 1 GSa/s) to a USB drive, then moved the USB drive to the 33622A where I used front panel key strokes to load the .csv files into generator memory. The 33622A analyzes the .csv file, then gets the user to select either binary or ASCII data format. Since the file format I selected on the 'scope was an Excel readable .csv, with data represented in ASCII, I selected ASCII. The 33622A then asks that the user select which columns are to be imported. I looked at the .csv file in Excel and saw that following a preamble header section there were two columns, a time stamp column and a voltage value column. See the example below which shows the first part of the captured waveform file for minimum blue illumination. When the Import Data button is pressed the generator imports and converts the data. It took 22 seconds to load and convert the minimum blue file which contains 66003 samples. The arbitrary waveform, captured on the 'scope from a live data stream, can then be bursted to the LED string as many times as desired to illuminate any number of LEDs from 1 to 240.
|Gating||9.3050% to 75.30700%|
A portion of the .csv waveform file generated by a Tektronix MDO4104-3 oscilloscope is shown to the left.
Note that there are several lines of header text. The 33622A automatically skipped over the header text and extracted the data found in CH1 column, as I specified during set up of the file import.
Everything was working well until I attempted to load a .csv file using BenchVue and the Pro version of the Function Generator app. I tried to load the waveform file using BenchVue because I anticipated I would be programming it to do this using the Test Flow application when I went to automate the whole process. The .csv files showed up in a file list view, but BenchVue would not let me load the file because the Load button would not go active. While I try to get a solution to this problem from Keysight in the background, I took a parallel approach to allow progress to continue.
Keysight's BenchLink Waveform Builder links to BenhVue, so I launched BenchLink from within BenchVue and built a set of eight waveforms that replicate the eight I had captured on the 'scope. This took about 30 minutes. I attempted to attach the resulting .arb files to this post, but they were disallowed by the file police. Each arbitrary waveform file contains 24 bits of WS2811 compatible LED data that will illuminate a single WS2811 LED device. By adjusting the burst count on the 33622A waveform generator, any number of LED devices from 1 to 240 (the number of devices on my 4 m long strings) can be illuminated.
BenchVue hiccuped the first time I tried to load one of the .arb files from the USB stick, generating an error message about the USB not being mounted, but the file loaded anyway after a couple of seconds, and subsequent files loaded without issue. All of the BenchLink generated arbitrary waveform files worked perfectly on the LED string, and they are much smaller than the corresponding live waveform files captured on the 'scope. That is mainly because the 'scope files were captured at 1 GSa/s whereas I set up the BenchLink files at 250 MSa/s. Both got the job done, and by the way, the 33622A with the 64 MSa/channel waveform memory option has plenty of room to store waveform files. My Tektronix AFG3102 only has 128k of memory, which has caused me some grief in the past. However, it has a really easy to use front panel layout with a nice big screen, so I still like it.
The brief video below shows how easy it is to use BenchVue and the pro Function Generator app to command the Keysight 33622A to load an arbitrary waveform stored in its internal memory and then have BenchVue control the function generator to burst the pattern into the LED string.
And here is a photo that illustrates a common problem when driving long RGB LED strings at full brightness with all LEDS on. The input voltage to the string is 6.0 VDC, The string is drawing 4.98 A. The supply is capable of providing 6.0 A, so it is not limiting current. The end of string voltage is +2.43 VDC. Notice how the LEDs get progressively dimmer toward the end of the string, primarily, I'm assuming, due to IR voltage drops along the length of the string. I'm going to try driving the supply into both ends of the string to see if that helps.
Yep, connecting both ends of the string to the power supply makes a noticeable improvement in brightness along the length of the string. See the image below. Under these conditions the string is drawing the full 6A available from the supply and it appears the string wants even more current as the supply voltage has dipped to 5.43 VDC from an open circuit value of 6.00 VDC.
Finally for this post, I will show the results of performing a manual simulation of what I want BenchVue Test Flow to do for me. As I used to tell my embedded systems students, "be the machine". I think it is beneficial to single step yourself through your algorithms before you code them into a microcontroller. In this case, I manually stepped through the sequence of events that I plan to program into Keysight's Test Flow application. I want to data log the end of string voltage and the string current for 1 minute under 8 different illumination patterns. I manually stepped through the steps to data log 1 minute minimum blue, followed by 1 minute of maximum blue then 1 minute of minimum red. The resulting data log is shown below. While the 34461A was gathering data for one pattern, I used BenchVue to preload the next pattern into the 33622A function generator. At the minute mark I had the 33622A burst out 240 copies of the next illumination pattern, and prepared for the next pattern. If I can program Test Flow to automate this process, I will be happy.