element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Test & Tools
  • Technologies
  • More
Test & Tools
Blog Getting Started with the Active Learning Module ADALM1000
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Test & Tools to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 14 Feb 2015 11:43 PM Date Created
  • Views 13398 views
  • Likes 11 likes
  • Comments 59 comments
  • educational
  • education
  • i-v_curves
  • smu
  • adalm1000
  • resources_for_educators
  • analog_devices
Related
Recommended

Getting Started with the Active Learning Module ADALM1000

shabaz
shabaz
14 Feb 2015

Note: Also check out the ADALM1000 being used to monitor current consumption of a CodeBug.

 

  • Introduction
  • What does it do?
  • Building the Software
  • Running the Software
  • Initial Experiments
    • Resistor
    • 1N4148 p-n diode
    • Tunnel Diode
  • Summary
  • Bug/Enhancements list

 

 

Introduction

The Analog Devices (AD) Active Learning Module ADALM1000Active Learning Module ADALM1000 is a nice compact board (near credit-card-sized) that is designed to help in electronics education. It can also make a great low-cost test tool.

image

 

It has a lot of functionality – it is like a Swiss army knife for electronics. It behaves like a low-cost Source/Measure Unit (SMU) which is a tool that is highly interesting for those interested in physics, understanding semiconductors, and gaining deep knowledge about how a circuit behaves.

image

 

The photo above shows it powered up; the photo below shows what comes with it.

image

 

The  ADALM1000ADALM1000 is extremely new (was available at Farnell only yesterday) so while the software is excellent, it does need a few small improvements. fortunately, it is all open-source. Improvements will occur over time. For further information also see the ADALM1000 Design Center Home.

 

What does it do?

In operation, it behaves like a dual power supply where either (or both channels) can be set to a constant voltage (like usual power supplies) or a constant current. So one could set a channel to 3.3V for example, or 5V, and power circuits with it. Alternatively, a channel could be set to (say) 10mA in constant current mode and used to power up an LED (or perhaps a couple of LEDs in series without requiring a series resistor).  Very much different from a normal power supply, the  ADALM1000ADALM1000 can also be programmed to generate patterns such as a sine wave or sawtooth if a constant supply is not desired.

 

The power supply functionality is one-half of the SMU capability (it is the ‘Source' part of the SMU acronym). The other half is the ability to measure. While the circuit is being powered it is possible to use the tool to simultaneously measure the current or voltage. For example, if a circuit is being powered by 3.3V from the  ADALM1000ADALM1000 then the device will also report current consumption of the circuit under test. In a similar manner if an LED is being supplied with a constant current of 10mA then the  ADALM1000ADALM1000 will report the voltage that is across the LED.

 

The voltage and current sources can be switched off if desired and the channels can be used as simple voltmeters with graphic trace capability. This extends the usefulness of the  ADALM1000ADALM1000 even further.

 

The reporting is done in real-time at up to 250 K samples per second; this allows for an oscilloscope-like display. The high speed is great for (say) testing a radio transmitter where the transmission burst lasts just tens of milliseconds; whenever it transmits it would be possible to see the increased current consumption on the graphical display (but see bug list below).

 

The SMU can also be used like a ‘curve tracer’ which is an instrument that can slowly vary current or voltage over time in order to produce a curve showing basic electrical characteristics of an electronic component.

 

Real SMUs and curve tracers are designed to operate over many orders of magnitude (decades) of voltage and current and therefore are quite advanced instruments. The  ADALM1000ADALM1000 is an extremely low cost tool and can only provide a taste of what a real SMU can do. The  ADALM1000ADALM1000 uses 16-bit analog to digital and digital to analog conversions (ADC and DAC) and has voltage and current limits of 0-5V and 0-200mA respectively and is powered from a PC or laptop using a USB cable.

 

SMU-like functionality can be useful for other test instruments too; check out Project Morpheus, aka the Battery Simulator project which is being worked on.

This is the underside view:

image

 

The photo below shows some of the main functional areas of the  ADALM1000ADALM1000 board:

image

 

Building the Software

(Note [October 2015]: A windows executable/installer is now available if you prefer that path. Check out the comments to the post, they explain the windows installation detail).

 

As a first step, download Ubuntu.

If you’re not using Linux, install Virtualbox or Fusion on your Windows/MAC machine as appropriate (it should be possible to build the code for these platforms but sometimes it is easier to just drop a Linux VM into your PC).

Set the VM network connection to ‘Bridged’. Once Ubuntu is installed and running, open up a terminal. Enable the root user password:

sudo su
passwd
      

 

As root user:

apt-get update
apt-get install git
      

 

Start up Ubuntu Software Center, and in the search bar, type libusb-1

Select libusb-1.0-0-dev and install it (when installed, there is a small green circle with a check-mark against the icon).

Search and install g++ using the same method.

 

Exit out of root user, and type the following command; it may take a few minutes, it is a >500MB file:

wget http://qtmirror.ics.com/pub/qtproject/development_releases/qt/5.4/5.4.0-rc/qt-opensource-linux-x64-5.4.0-rc.run
chmod 755 qt-o*
./qt-opensource-linux-x64-5.4.0-rc.run
      

 

Accept all the defaults and install Qt5.4 (it takes about 30 seconds). Don’t bother launching Qt Creator after it installs.

 

Back in the Software Center, type qtdeclarative5-con in the search bar, and install the qtdeclarative5-controls-plugin

Also, search for qtdeclarative5-qu and install the qtdeclarative5-quicklayouts-plugin if it is not already installed

Repeat for qtdeclarative5-dev

 

Now type:

su
cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser
ls -l
rm default.conf
ln -s ../../../../share/qtchooser/qt5-x86_64-linux-gnu.conf default.conf
ls –l
exit
      

 

Next, from the home folder, not as root user, type:

mkdir development
cd development
git clone --recursive https://github.com/signalspec/pixelpulse2
cd pixelpulse2
mkdir build
cd build
qmake ..
make
      

 

After a minute or so, the software build is complete.

 

Running the Software

Plug in the  ADALM1000ADALM1000 into a USB port and an LED should light up in a pink/purple color. Confirm that it is visible to your VM by typing:

lsusb
      

 

The output should contain a line saying:

Bus 001 Device 002: ID 064b:784c Analog Devices, Inc. (White Mountain DSP)

 

If you can’t see any Analog Devices entry, then you need to troubleshoot (it is likely to be a setting in Virtualbox/Fusion etc) to allow the guest OS to have access to the USB.

Next, from your ~/development/pixelpulse2/build folder, as root user (i.e. type su first), type:

./pixelpulse2
      

 

The output on the terminal will look something like:

Using libusb hotplug

device insert 0x1818b60

 

If you see an error message or a segmentation fault then you’re probably not running as the root user.

 

Note that to make use of the current software, a wheeled mouse may be needed (I couldn’t see how to do this using the trackpad on my PC). The screenshot at the top of this post shows where to click or scroll to use the software.

 

Initial Experiments

Now was the time for fun I just grabbed some components and began pushing them into the connector on the  ADALM1000ADALM1000

Resistor

The video here shows a basic experiment; observing the current through a 220-ohm resistor. Note that it can be seen that there is a small negative offset in the current measurement; I have not investigated if the current software allows for calibration; it should be possible to add to the software easily since the source code is available. For this video, channel A was programmed to output a sine wave. It can be seen that the current through the resistor was a sine wave in a similar phase.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

The video above is low-res but the actual output can be very high resolution:

image

 

1N4148 p-n diode

For the next experiment, the resistor was kept and a 1N4148 diode was inserted in series. Plot mode was switched on, which behaves a bit like a curve tracer. The x-axis shows the voltage across the resistor and diode, and the y-axis shows the current through the circuit. The scale appears a little messy (the two lines of text is intended for both channels I believe) but the trace is still very clear to understand. Obviously, changes can be made to the software to improve things if desired.

image

 

Tunnel Diode

This was the most exotic semiconductor I have. Such diodes have an interesting property that through quantum mechanics the voltage across a tunnel diode can “instantly” snap from one discrete voltage to another (with nothing in-between) as the voltage is increased across the device (the phenomenon is also known as ‘negative resistance’). They are amazing devices. They have some interesting use-cases; for example, they can be used to act as a trigger inside an oscilloscope (and they were used like this at one time; probably not anymore). Tunnel diodes were invented at Sony in the late 1950s by Esaki Leona who was actually trying to improve high-frequency transistor production, and noticed this odd effect whenever he tried to connect wires to his transistor experiment - he then turned the discovery into the tunnel diode and also won a Nobel prize.

 

The trace below shows the effect; despite seeing it many times it never ceases to amaze me.

image

 

Below it is zoomed-in; the very faint yellow diagonal line that is overlaid shows the trace for just a 220-ohm resistor; the green trace shows the resistor and the tunnel diode in series. It can be seen that as the voltage across the circuit rises, some point came (it happens to be about 55mV across this particular tunnel diode although only the voltage across the resistor and the tunnel diode is observable from the trace) that current no longer rose and instantly dropped across the tunnel diode; this means there was a higher voltage across the diode, a lower voltage across the resistor, and this is visible by the dramatic drop in current at that point. The voltage across the tunnel diode effectively snapped from about 50mV to many hundreds of mV.

image

 

It was worth recording a video of the effect:

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

Summary

The  ADALM1000ADALM1000 is extremely good value and provides good insight into components semiconductors and circuits I think it is a game-changer for electronics education but engineers will find uses for it too The application software is extremely promising it is stable(and easy to use and it needs just a few small refinements which will come in time It was straightforward to use the  ADALM1000ADALM1000 to run some initial brief experiments with resistors p-n diodes and tunnel diodes

Although this post was a little brief(just a day spent with the  ADALM1000ADALM1000 and doesn’t cover much hopefully it is sufficient to get people started with the board I am looking forward to seeing what experimentation people do with it

 

Bug/Enhancements list

(This is to just record a few things somewhere while the  ADALM1000ADALM1000 software is still quite fresh):

#Description
1Note there is a bug currently in either the firmware or the application software where the output voltage drops to zero(for 100ms or so periodically at a rate depending on the sample time setting This means that the  ADALM1000ADALM1000 can currently only be used with semiconductors or very simple circuits It is likely to be a simple fix but I didn’t try to resolve it yet
2Selecting items from the cog-shaped menu needs to be done with a single mouse click and then navigate using cursor keys (select by pressing enter or space); it seems to be difficult (or impossible) to do it using the mouse alone
3Zooming in time or amplitude requires a wheel mouse; key shortcuts would help too
4In Plot mode, the lower x-axis looks a bit weird when zoomed in time: the text sometimes overlaps
  • Sign in to reply

Top Comments

  • shabaz
    shabaz over 5 years ago in reply to navadeepganeshu +4
    Hi Navadeep, It is available from other distributors, so that might be an option if available in your region. Regarding the other kit you mention, Farnell has an earlier (but still nice) version of it…
  • shabaz
    shabaz over 11 years ago in reply to clem57 +2
    Hi Clem, Thanks! The device is ATSAM3U1CA-AU (a Cortex-M3 processor).
  • shabaz
    shabaz over 11 years ago in reply to ralphrmartin +2
    Hi Ralf, The one on the end (i.e. short side) provides the sources (and measures) for both channels. The diagram below shows how to connect it up to a circuit. For the examples in the post (resistor, resistor…
Parents
  • airshipcrew
    airshipcrew over 11 years ago

    Does anyone know if any significant changes have been made to this project?  I originally bought this board to do transistor curve tracing, something the application will NOT, as of the last version I was able to get to run will do.  I tried downloading the github files again but am unable to get qmake to run without errors, and I cannot remember for the life of me how I solved that the last time this happened.  At this point I am mystified as to why, after the release of their project why they have not at least updated the build instructions.  I had a couple of follow up questions for one of the developers and my email was unanswered.  As a customer I find this kind of behavior to be irritating in the extreme.  Anyone considering using this tool, buy it at your own risk.  It shows a lot of promise but for some reason the software is definitely not ready for "prime time".  I wish I had more time to get into the source code and firmware, I would imagine that at least the more glaring bugs may not require a whole lot of effort to fix, although there may be a significant time investment to getting familiar with the code and build process.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • airshipcrew
    airshipcrew over 11 years ago

    Does anyone know if any significant changes have been made to this project?  I originally bought this board to do transistor curve tracing, something the application will NOT, as of the last version I was able to get to run will do.  I tried downloading the github files again but am unable to get qmake to run without errors, and I cannot remember for the life of me how I solved that the last time this happened.  At this point I am mystified as to why, after the release of their project why they have not at least updated the build instructions.  I had a couple of follow up questions for one of the developers and my email was unanswered.  As a customer I find this kind of behavior to be irritating in the extreme.  Anyone considering using this tool, buy it at your own risk.  It shows a lot of promise but for some reason the software is definitely not ready for "prime time".  I wish I had more time to get into the source code and firmware, I would imagine that at least the more glaring bugs may not require a whole lot of effort to fix, although there may be a significant time investment to getting familiar with the code and build process.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • cstanton
    cstanton over 11 years ago in reply to airshipcrew

    It may not necessarily be the case that I can directly help with your problem, but it would be helpful to all if you posted (or posted a pastebin.com link to) the errors you're having so people can determine if it's easy to resolve.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • airshipcrew
    airshipcrew over 11 years ago in reply to cstanton

    Christopher Stanton,

     

    Here is the results of my qmake command:

     

    john@arabica ~ $ cd bin/pixelpulse/pixelpulse2

    john@arabica ~/bin/pixelpulse/pixelpulse2 $ cd build/

    john@arabica ~/bin/pixelpulse/pixelpulse2/build $ /opt/Qt5.4.0/5.4/gcc_64/bin/qmake ..

    Project ERROR: libudev development package not found

    john@arabica ~/bin/pixelpulse/pixelpulse2/build $

     

    When I do a locate libudev I get:

     

    john@arabica ~ $ locate libudev

    /lib/i386-linux-gnu/libudev.so.1

    /lib/i386-linux-gnu/libudev.so.1.3.5

    /lib/x86_64-linux-gnu/libudev.so.1

    /lib/x86_64-linux-gnu/libudev.so.1.3.5

    /opt/Qt5.4.0/5.4/Src/qtbase/config.tests/unix/libudev

    /opt/Qt5.4.0/5.4/Src/qtbase/config.tests/unix/libudev/libudev.cpp

    /opt/Qt5.4.0/5.4/Src/qtbase/config.tests/unix/libudev/libudev.pro

    /opt/Qt5.4.0/5.4/Src/qtwebengine/src/3rdparty/chromium/third_party/libjingle/source/talk/media/devices/libudevsymboltable.cc

    /opt/Qt5.4.0/5.4/Src/qtwebengine/src/3rdparty/chromium/third_party/libjingle/source/talk/media/devices/libudevsymboltable.h

    /opt/Qt5.4.0/5.4/Src/qtwebengine/src/3rdparty/chromium/third_party/libjingle/source/talk/third_party/libudev

    /opt/Qt5.4.0/5.4/Src/qtwebengine/src/3rdparty/chromium/third_party/libjingle/source/talk/third_party/libudev/libudev.h

    /usr/lib/vlc/plugins/services_discovery/libudev_plugin.so

    /usr/share/doc/libudev1

    /usr/share/doc/libudev1/changelog.Debian.gz

    /usr/share/doc/libudev1/copyright

    /var/lib/dpkg/info/libudev1:amd64.list

    /var/lib/dpkg/info/libudev1:amd64.md5sums

    /var/lib/dpkg/info/libudev1:amd64.postinst

    /var/lib/dpkg/info/libudev1:amd64.postrm

    /var/lib/dpkg/info/libudev1:amd64.shlibs

    /var/lib/dpkg/info/libudev1:amd64.symbols

    /var/lib/dpkg/info/libudev1:i386.list

    /var/lib/dpkg/info/libudev1:i386.md5sums

    /var/lib/dpkg/info/libudev1:i386.postinst

    /var/lib/dpkg/info/libudev1:i386.postrm

    /var/lib/dpkg/info/libudev1:i386.shlibs

    /var/lib/dpkg/info/libudev1:i386.symbols

    john@arabica ~ $

     

    By the way, how do you get code tags here?

     

    These are the build errors that I get.  I must have solved them before since I was able to get the project to compile a month or so ago.  I was trying to see if any significant changes had been made since last time I tried the software.  I was a bit mystified to see that you still have not changed at least your build instructions to reflect some of the issues others had early on with getting this project running.  I don't mean to seem overly negative, this board shows a lot of promise in being a useful piece of equipment, but in the state the software is currently in it is not all that useful to me.  As I mentioned in the previous post, I originally bought this thing to do transistor curve tracing.  To do that the 2 channels plots have to be superimposed on each other, and you need to be able to give the base of the transistor discrete step values of current, ideally in really low values of current depending on the transistor.  In it's current state the software cannot do this.  I emailed someone named Ian Daniher and asked him if the hardware was capable of putting out a "stair step" wave and have not heard back from him.  There is nowhere where a user can get current version information on the project to determine whether or not they should do an update.  The "about" box in the application itself does not display so I guess such information would be useless anyway.

     

    Now, if this is a commercially developed project then I feel the above criticism is warranted.  If this software is a volunteer effort than I apologize for seeming a bit harsh, however these are issues that should be addressed, and it would seem that the build instructions on the main page should receive a great deal of priority.  I would really like to know at this point if the board is even capable of doing the task I bought it for so I can decide whether or not to continue spending time and effort on it.  I would also like to know if the software is being developed commercially or if it is a volunteer effort.

     

    I would really like to add this board to my arsenal of useful test equipment.  I think it shows a great deal of promise for helping me to solve problems that go beyond simple transistor curve tracing and blinking LEDs.  At it's current state however I am getting a bit frustrated with it.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • cstanton
    cstanton over 11 years ago in reply to airshipcrew

    So you have libudev installed, but it doesn't look like you have "libudev-dev" package installed? (If you're using debian). Because the error particularly states you don't have the 'libudev development' package installed.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • airshipcrew
    airshipcrew over 11 years ago in reply to cstanton

    OK, thank you.  So, changes have been made to the project.  It is good to see that there is ongoing development.

     

    As a customer, how am I to tell if there is a more recent build to download?  There is no revision information that I can find and the dates on the directories are the same, and the about box in Pixelpulse still does not function.  Also, IS THE HARDWARE CAPABLE OF PUTTING OUT A "STAIRSTEP" WAVE?

     

    And another thing, how do you change the scale for the vertical axis?  I tried clicking on it by clicking on the axis then using he scrollwheel of my mouse but the axis does not change.  The only axis that can be changed is the time base.  For another thing, when you are in current source mode, I am assuming the vertical axis is mA.  It would be helpful to be able to set that to uA.  When in constant current mode and you select a DC value it would be helpful to have a box where we can type in value instead of trying to move the mouse a single pixel.  In Source current, read voltage mode, constant current, Why does the LED flash, shouldn't it stay lit?  If you are trying to figure out drive current for several different color LEDs, comparing them to each other and trying to match their brightness so that they are all the same brightness on a circuit board the flashing is not helpful.

     

    Thank you for the answer to how to get the project to compile.  I had assumed that since I had it compiling before that I already had everything needed.  Now, could I please get an answer to the question in caps above?

     

    Other improvements that could be made is a box where a frequency can be input for periodic waveforms, making this a simple function generator.  Does anyone know whether Pixelpulse 2 is under commercial development or is it a volunteer effort?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • clem57
    clem57 over 11 years ago in reply to airshipcrew

    airshipcrew

      I am guessing you are a casual user of software and not actually into building code. I have a suggestion in the future(now) that may help. If the code comes from GIT hub, you can expect the code to be in flux and may change. Right? I use a Raspberry Pi for example and have a package called git that allows we to control my versions of code. On Debian, it is an "apt-get install git" which will get the git command with any dependencies or libraries as well. Now that it is installed, I can do a "git clone URL' command where URL is the web page for the code to copy the code base into my local storage. Realize no changes will be reflected unless you do a refresh by repeating the command again. for new releases.. Also it is smart and will compress data before sending it and uncompress back to original form! Cool?

    Hope this helps,

    Clem

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube