Introduction
The ADALM1000 is a small module that acts like a combination of an oscilloscope, waveform generator, and SMU (source-measure unit). That gives enough capability to experiment with low-frequency circuits, to characterise many semiconductor devices, and to log sensors in a lab setting, all without needing a lot of expensive, specialized test equipment. As it's built with standard semiconductor products (from ADI, obviously!), it's also an example of how to use those components in combination, and might even be useful as a basis for product prototyping.
{gallery}ADALM1000 |
---|
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
IMAGE TITLE: THEN IMAGE DESCRIPTION |
It only works to 100kSPS, so is much more limited frequency-wise than the ADALM2000, but it has a small advantage in that it's working to a resolution of 16 bits rather than the 12 bits of the ADALM2000.
Information about the module and its open-source software is available in a wiki on the ADI website. There is also educational material there, though I haven't looked at that in any detail.
PixelPulse2
The first software I tried with the module was PixelPulse2 (v1.0.5). It had a windows installer and the installation went fine, even on my old Win 8.1 laptop.
Although it looks very nice, and the thing with using the two blue dots to control the waveform would look very good if you were demonstrating it to a friend on a phone or tablet, it wasn't actually very intuitive and was surprisingly limited given what the module hardware is capable of. I kept wondering if there was hidden functionality there, somewhere, that I just hadn't found the key to. Control of the waveform was difficult with the blue dots. Sometimes it would decide that it couldn't do what was asked and just snap back to the previous settings. All a bit frustrating. Eventually I discovered that I could click on where the values were reported above the trace, and edit them in-place, though the three values still interacted with each other in an odd way.
When I was confident that I more or less understood the settings and wasn't going to do anything to disastrous, I set Ch A of the ADALM1000 to source current to a silicon diode (1N4148), connected from Ch A to ground, and to measure the voltage on the same pin. This is using the ADALM1000 as an SMU.
This was the result:
As well as the scope-like display of traces, it can also provide an X-Y display. Unfortunately, the X-Y display is very limited. It pulls across from the righthand side, but there's little you can do to control the area and the way it's displayed: I couldn't find a way to swap the axes, so the diode characterisation couldn't take the usual form; the vertical axis seemed to be stuck on a 0-5V range and it wasn't evident how it could be controlled for a smaller range (that might be down to my using it on a Windows laptop with a mouse); and the resolution of some of the axis labelling is just silly, obscuring the trace that's being observed.
ALICE
The other control software offered for the module is a group of programs called ALICE. These are written in Python 2.7. I had difficulty getting these installed.
I didn't pick up at first that I needed to install the right version of Python myself and that that needed to be done before installing ALICE. After I'd done that, it would start the ALICE desktop application, but only to report that it couldn't find pysmu. I tried installing numpy, but that didn't help. Eventually, I realised I could try running it from a command prompt box, and that revealed that it had got as far as an error message that MSVCR120.dll was missing. After downloading and installing the specific VC++ runtime from Microsoft, it then ran fine.
Here's the ALICE M1k Desktop. It's in source-current-measure-voltage mode and I've got a triangle waveform controlling the current from the pin so that it sweeps over a range repetitively. This is all much better (for me - others might disagree) - it's conventional enough that I can quickly pick up how to use it. As before, it's showing the voltage response of a 1N4148 diode being driven by a current.
The waveform and source modes are set within this window which floats separately from the desktop when you click on the 'AWG Window' button.
Starting the XY app gets another window, like this:
Here I've swapped the axes and adjusted the ranges of both to give a good curve with the silicon pn diode.
Finally, I've turned the persistence on, to retain the curve for the 1N4148, and done a second curve for a BAT42 Schottky diode so we can see the difference between the two.
That all works quite nicely and it's already showing some of the potential it would have in an educational context. (Unfortunately the curves are wrong. See the comments below the blog for more detail.)
As a further experiment, I've changed the current drive to the 1N4148 diode to be a sinewave.
The waveform trace shows nicely how the non-linearity of the diode distorts the waveform.
Here it is again, in the Spectrum Analyser component of ALICE, displaying the harmonics that now result. Plenty of second harmonic if you wanted to try your hand at a frequency doubler.
I haven't explored the analyser much yet, but it looks fairly capable and useful.
I'll leave Bode plots for now because I think they deserve a blog of their own.
Conclusions
It's a nice little module and I'm glad I persevered with getting the software installed (I did almost give up and put it to one side). I'm looking forward to experimenting further with it. After writing this, I discovered that Shabaz had done much the same thing 8 years ago - see link at the end - but hopefully mine will complement what you read there. It looks like there IS functionality missing from my install of PixelPulse2 (the whole column of buttons down the lefthand side are missing), but as I'm happy with ALICE I'll continue with that for the moment.
Pros
- Once I got it going, the ALICE software was quite usable.
- The open-source Python approach means there's a library for operating the module, so that leaves the
way open to custom test instruments of your own devising if you have appropriate software skills. - It's a great way to quickly set up experiments, without having to assemble lots of separate test instruments.
- I paid £70 (after tax) for it from Farnell here in the UK, and I'd say that was reasonable for what it is.
- Finally, there's something about it that's just plain simple fun. You find that you want to play around and experiment with it.
Cons
- The 100kSPS sample rate limits the bandwidth to not much more than audio frequencies.
- The unipolar 5V operation range limits what it can do from a hardware perspective.
Further information
Shabaz: Getting Started with the Active Learning Module ADALM1000