What tools are on your bench?

In a previous topic What tools do I need to work in electronics? I covered a few basics that someone would need to start working with some basic electronics. I know the list can go on forever. Tell us below what tools you have on your bench. Make sure to tell us what you use them for and what makes essential to your electronics bench and why it should be on everyone’s tool wish list!

1 Like

The Saleae logic analyzer is one of the best tools around, unfortunately we don’t carry their product at the moment (we once did through microchip). https://www.saleae.com/
The UI and continued advancement of their software is leaps and bounds beyond all the other competitors.

1 Like

I have a few tools that I use for projects at my desk.

Eye-Loop: 638002810 helps sometimes if markings are too small

Wire Kit Plus Solderless Breadboard : TW-E41-1060 all of my personal experiments and basic posts use this kit for prototyping

TI-89 Titanium Graphing calculator (we don’t carry this), I would recommend this type of calculator for solving systems of equations and graphing.

Basic Wire Stripper: 0640160040 in a pinch this stripper is pretty decent since most of my wires I use are 22AWG

Fancier Wire Stripper (multifunction): TOL-14872 this is a higher quality more consistent stripper, cutter, and crimping device. This makes more involved projects quicker and easier to strip wires consistently.

Digital Caliper 6 inch: 3C301-NB for getting precise measurements such as pitch and diameters

The Digi-Key ruler: PCB-RULER-ND this ruler has so much information on it that is incredibly useful beyond just a good ruler, I didn’t know about the PCB trace stuff before this ruler.

I have a Simpson 260 (that I once repaired and calibrated many while in the service)
https://d1v51qgszgkqrr.cloudfront.net/media/catalog/product/cache/e4d64343b1bc593f1c5348fe05efa4a6/7/8/7865e.jpg and a Fluke-87
https://www.digikey.com/short/z7qzf0 both are used for different applications.
I enjoy using both.

I use ADALM2000 (ADALM2000-ND) from ADI and like it very much, it is a low cost All-In-One lab tool that combines together the functions like logic analyzer, digital scope, pattern generator, programmable power supplies, triggers and some other useful function. The tool is controlled by PC via USB and uses the scopy sw as an interface. It is ideal tool for students, hobbyists, self-Learners and design engineers and is good for debugging the designs with low speed signals

At home I have a 50 watt ATTEN SA-50 soldering iron from Adafruit. I like that it’s portable and has an adjustable knob on the handle for setting the temperature. I replaced the stamped aluminum stand it came with and upgraded to the AVEN Tools 17530 Stand with scourpad.

I have the wire stripper pair from Tempo that I love, have a pair at home and at work- PA70058-ND. 1691-1037-ND flush cut trimmers from Hakko are inexpensive and super handy. I tend to misplace them so I have probably 10 pairs around. If you do any electronics repair, a precision screwdriver set is a must. I have a surprisingly inexpensive kit from Sparkfun, part number 1568-1964-ND. A good high wattage soldering iron such as the FX-888D or the FX600 with a few different tips for an array of applications suits me well both at home and at work. I also have the handy Global Specialties 1325 power supply that can supply up to 5.5A at voltages from 0 to 16.5VDC. I also have a good assortment of different USB cables for any development board I may be programming. Although it may not be a “tool” in the traditional sense, KiCAD is a great open-source (FREE!) and full-featured PCB design software. Check out the KiCAD instructional video series on our YouTube channel. My favorite tool that Digi-Key doesn’t carry is by far my DCF887 DeWalt 20V impact driver.

Edit: oh, and of course PCB-RULER-ND

I have been working with the RASPBERRY PI 3 MODEL B+ for a while now. Many ups and downs, breaking things then trying to fix it, re-installing operating systems or simply using the Recovery Mode option.
image
Recovery Mode. This is the option that works when you are out of options (just cannot fix what you broke).

Power up the Pi. When the screen comes up that shows the shift key, click the shift key and you will be able to re-install the operating system without having to format the micro SD card and install the operating system again.

Recovery Mode is much less time consuming that re-installing the full operating system. Yes, you are starting over but that is half the fun of having the Pi.

1 Like

I tend to like a larger amount of room to work with on my breadboards and the 1286-1220-ND from Digilent gives me all the room I need - sometimes I even keep multiple circuits on the board instead of tearing down after each use. It also includes four screw terminals to easily organize power supply connections.

Two other items that have not been mentioned that I use quite a bit for my projects are a precision screwdriver set and a heat gun. I’m not sure which brand I currently have at home for the screwdriver set but it is very similar to our part 243-1222-ND

For the Heat gun, I currently have part 1568-1602-ND which has worked well for what I have used it for. Also if you need a good chuckle, read the datasheet/operating instructions for this.

1 Like

I have been doing component level service work on electronics for the last 40 years and have a few items I have learned are well worth having on the bench.

I keep a dispenser bottle with denatured alcohol for cleaning boards like the 16-1144-ND. The bottle will keep the alcohol clean and keep it from getting contaminated while use.

And by the side I also have the CT200-ND swabs. A little alcohol on these will clean up the flux off the board when desoldering and after the component is replaced.

My favorite desoldering braid is the Chemtronics CW10-25-ND

And a trick I like to use on the wick when trying to clean out small diameter via holes is to cut the wick at an angle as I showed in this previous TechForum post.
(Removing thru hole components from two sided circuit boards).
image

You can’t beat the Molex 10x magnifier. WM9650-ND will get you close to inspect the work you have done for see the component markings on those little 0603 parts.

The Aven tweezer set, 243-1056-ND won’t disappoint you either.

And if you work on RF circuits such as myself, a good set of ceramic drivers is a must. The 243-1265-ND fits the bill very well. The ceramic tips are durable and will not de-tune the circuit while adjusting variable inductors and variable capacitors.

And the PROBEKIT-ND from Chip Quick will prove to be handy on the bench.

So this is a quick run down on some of the items which I end up using quite a bit when doing service work on the bench. I hope this helps you out.

2 Likes

Here’s some more information on ADI’s Virtual Electronics Lab and How to Create an Oscilloscope Using Python and the ADALM2000

image

from Christian Jason Garcia, Software Systems Engineer and
Arnie Mae Baes, Software Systems Engineer

Abstract

A virtual electronics laboratory is a collection of software-based instruments. It is a simulated electronics lab environment implemented as a software application, and it allows users to perform a multitude of electronic experiments. Having a physical, fully functional laboratory can be expensive and hard to manage. Imagine having the capability of an electronics laboratory that can fit inside your pocket; the possibilities are endless!

This article aims to demonstrate how users can develop their own virtual laboratory instruments using the ADALM2000. The Python programming language will be used in this article due to its simplicity, and also because it is open source. With the combination of Python and the ADALM2000, it is possible to develop several virtual laboratory instruments such as an oscilloscope, signal generator, digital multimeter, and many more. However, this article will only concentrate on one instrument – the oscilloscope. This is a good instrument to start with since it is one of the most fundamental instruments that we use in an actual electronics laboratory.

Introduction

The instrumentation industry is moving steadily and rapidly toward virtualization. Software-based instruments are hosted on a PC that uses as minimal specialized hardware as possible to link it to the devices it must measure/control. This hardware typically includes plug-in boards for digitizing a signal directly or for controlling standalone instruments.

Virtual instrumentation is known for its flexibility, modularity, and portability. Analog Devices provides its customers with electronic modules that cater to almost every use case there is, including this one. A good example of this module is the ADALM2000.

The ADALM2000 enables engineers or developers to create their own virtual electronics laboratory depending on their specific needs. Via the libm2k library, users can develop software applications for controlling the ADALM2000 using C++, C# or Python. More detailed discussions about the ADALM2000 and libm2k will follow in later sections.

What Is an Oscilloscope?

Oscilloscopes are an essential part of electronics engineering due to the value they bring to signal analysis of common and complex circuits. In addition to that, oscilloscopes nowadays feature computer connectivity so that the signal captured in the oscilloscope can be digitally stored for later analysis.

image

Figure 1. Representation of an oscilloscope.

An oscilloscope is used to visualize the voltage and time characteristics of an analog or digital waveform. The front panel controls – amplifier triggering, sweep timing and display – are used to tweak the display to better visualize the signal.

It shows us the behavior of a signal input over a certain period, which is essential for analyzing common circuits. It also helps in verifying the functionality of these circuits. This is a major reason why an oscilloscope is an indispensable part of any electronics lab equipment. In addition to this, we can improve the analysis of certain electronic circuits by allowing engineers to customize their very own oscilloscope to suit their needs.

What Is the ADALM2000?

The ADALM2000 is an active learning module that features a digital oscilloscope, function generator, logic analyzer, voltmeter, spectrum, and digital bus analyzer, along with two programmable power supplies. For basic users or students, Scopy can be used to interface with the ADALM2000. For application developers, an application interface can be developed using the libm2k library. There is also an option for firmware developers to develop a custom software or HDL that can run directly on the ADALM2000.

Get Started

Installation of Python and PyCharm

Python is a powerful and easy to learn open-source programming language. Python can be downloaded from the official Python website. Select Python 3.7 if you are unsure which version to use.

Python can be used without an Integrated Development Environment (IDE), but to make downloading libraries and debugging hassle free, PyCharm can be used. PyCharm is an IDE providing several essential tools for developers, making it the most popular IDE used for Python development. Download the latest version of PyCharm Community on the official JetBrains website.

Installation of Libraries

Python libraries contain methods or functions that can be used for specific applications. In this article, we will use libm2k, matplotlib and NumPy.

Libm2k

To interface with the ADALM2000 using Python, you need to install the libm2k library. This is a C++ library with available bindings for Python, C#, MATLAB® and LabVIEW®, and has the following functionalities:

AnalogIn is for an oscilloscope or voltmeter. We will focus on this one.

AnalogOut is for a signal generator.

Digital is for a logic analyzer or pattern generator.

PowerSupply is for a constant voltage generator.

DMM is for a digital multimeter.

Detailed information about this library can be found on the libm2k wiki page.

Installation of Libm2k

One way to install this library is by following these steps:

Go to the release page.

Download the latest executable version of the library. Example: Libm2k-0.4.0-Windows-Setup.exe

Run the executable. Make sure to select Install libm2k Python bindings when the Setup window prompts you to select additional tasks.

image

Figure 2. Libm2k installation window.

Finish the installation. Libm2k will be installed in the default environment of Python.

Matplotlib

To create the oscilloscope display, you need to use the matplotlib library. This library is popular and easy to use for customizing and displaying visualizations in Python. Detailed information about this library can be found on the matplotlib website.

NumPy

A simple oscilloscope will still require a lot of mathematical computations. The NumPy library can help by providing simple functions for complex computations. Detailed information about this library can be found on the NumPy website.

Installation of Matplotlib and NumPy

To install both matplotlib and NumPy, follow these steps in PyCharm:

Go to File > Settings > Project Interpreter.

Click the + icon located on the right side of the Settings Window.

The Available Packages window will appear. In the search box, search for matplotlib and NumPy.

Specify the version to be installed (select the latest version).

Click the Install Package button.

image

Figure 3. Installing library packages in PyCharm.

Hardware Setup

Before we start coding, let’s set up the hardware components. The following hardware components are required:

Signal source (or a signal generator, if available)

ADALM2000

Probes and clippers

If a signal generator is available, connect the ADALM2000 device to Channel 1 and Channel 2 with probes and/or clippers using the configuration shown in Figure 4.

Figure 4. An actual setup with a signal generator and ADALM2000 .

Table 1. Pin Configuration

Signal Generator ADALM2000
Ch1 Positive Wire (+) 1+
Ch1 Ground 1-
Ch2 Positive Wire (+) 2+
Ch2 Ground 2-

You could also follow the same configuration for other available signal sources. Lastly, connect the ADALM2000 device to your PC via the USB port.

Simple Virtual Oscilloscope

In this section, we will go through the program block per block. We will also discuss what the codes do and the reasons for how they are written. We will demonstrate additional examples in the succeeding sections where we modify this base code to show that we can add more functionalities to best fit the use case of developers.

First, import the three libraries (libm2k, matplotlib and NumPy) that we will use to develop our virtual oscilloscope.

image

An Uniform Resource Identifier (URI) is a unique identifier for each ADALM2000 connected to the PC. This block of code ensures that an ADALM2000 is connected to the PC. The code will automatically exit if there is no ADALM2000 device plugged in to your PC.

image

Connect to the ADALM2000 with the detected URI. The uri[0] pertains to the URI of the first ADALM2000 device detected, in case there is more than one device connected.

image

Run the calibration for ADC and DAC. This is an important step to ensure we will get accurate measurements.

image

Set the sample rate and time duration. The available sample rates are 1 kHz, 10 kHz, 100 kHz, 1 MHz, 10 MHz and 100 MHz. The sample rate is the number of times we get a sample in 1 second, and the duration is how long we get these samples. For example, if we set the sample rate to 1000 and duration as 3, we’re going to get 1000 samples per second for 3 seconds. This makes a total of 3000 samples.

image

Enable and set up Channel 1 as analog input for the oscilloscope.

image

Linspace is used to create an array of evenly spaced samples. We will use this NumPy function to create the time x-axis data array. The first and second parameter of this function indicates the start and end value of the array, respectively. The last parameter is the number of samples that we want to generate within the start and end value.

In this example, the start value is 0 and the end value is the set duration, which is 3. For the number of samples, we multiply the duration and sample_rate to get the total sample that we need, which is 3000 samples. These 3000 samples will
be evenly placed between 0 and 3. This array will be stored in time_x .

The data_y stores the waveform samples that we gathered using the ADALM2000 device. The samples for Channel 1 are stored in data_y[0] , while samples from Channel 2 are stored in data_y[1] . In order for us to display the accurate frequency of the waveform, we have to use the same number of samples that we used in time_x .

image

Create the figure that we will manipulate. The plt.subplots function will return the figure object (stored in g ) and the axes object (stored in ax ), which will be used to customize the whole plot.

We can add grids that will serve as guidelines to the waveform. Add axes labels and y limit to add more details about the plot.

image

Show the graph.

image

Destroy the context at the end of the code.

image

Run the code and expect to see a figure similar to Figure 5.

image

Figure 5. A single-channel sine wave output; one signal generator output: 10 Hz, 2 V p-p.

2-Channel Virtual Oscilloscope

In this section, we will use the code from the previous section and add more code blocks to make it a 2-channel virtual oscilloscope.

To add another channel, duplicate the ocsi.enableChannel and ocsi.setRange lines and change the first parameter from libm2k.ANALOG_IN_CHANNEL_1 to libm2k.ANALOG_IN_CHANNEL_2 .

image

In creating the graph, add another plot for Channel 2. The data for Channel 2 is in array data_y[1] . We can also customize the colors of the two plots to easily distinguish them from each other. In this example, we used light coral for Channel 1 and steel blue for Channel 2.

image

Run the code and you should see results similar to Figure 6.

image

Figure 6. Two-channel sine wave output. Channel 1 signal generator output: 10 Hz, 2 V p-p; Channel 2 signal generator output: 5 Hz, 3 V p-p.

Additional Functionalities for Virtual Oscilloscope

In this section, we will add additional functionalities to our virtual oscilloscope to make it more interactive. Matplotlib provides several widgets that we could use. In this example, we will use the text label and slider widgets. We will also continue the code from the last section.

Add another import for the matplotlib slider.

image

Convert the time and data arrays to NumPy arrays. These will be used in the computations we will do on the next code block.

image

Since we acquired all the waveform data, what’s stopping us from extracting the properties of these waveforms? In the code block below, we extracted the Vpp, Vave and Vrms from the acquired data of both channels. To compute for the Vpp, we added the absolute value of the maximum and minimum values found in the data_y numpy arrays. To compute for Vave, we just need to divide the Vpp to pi. To compute for Vrms, we need to divide the Vpp to 2 multiplied to square root of 2.

image

This block of code is similar to the previous sections. The only difference is that we used the NumPy arrays for the plot instead of using the original arrays. We also created waveform objects from the plots. We will use these objects later.

image

To display the computed Vpp, Vave, and Vrms in the figure, we will utilize the text label widget from the matplotlib library. Create the string labels, label_ch1 and label_ch2 and then concatenate the two strings to create the final label, n_label . We will use the plt.text to create the text label. The first and second parameter (0.2, 3) is the x and y position of the text. The third parameter is the string to be displayed. The fourth and fifth parameters are the style of text and box, respectively.

image

Next, let’s create the offset slider. The purpose of this slider is to adjust the reference level of the waveform. Adjust the main plot to the left to give space for the slider. The plt.axes defines the dimensions, position and face color of the slider. The Slider function is used to create an object for the offset slider with specific properties.

image

Create update_offset function and register it to the offset_slider object. This function adds offset to the waveform every time we change the value of the slider.

image

Run the code and expect to see a figure similar to Figure 7.

image

Figure 7. Default 2-channel sine wave output with offset slider.

Try to adjust the offset by using the slider. You will see the waveform move up or down in real time.

image

Figure 8. Adjusted offset slider (left slide) to adjust offset of both channel outputs.

Summary

This article explains the importance and convenience of having a virtual electronics laboratory. It also demonstrates how to develop a virtual oscilloscope using the ADALM2000 and Python. Software requirements and hardware setup were discussed before presenting three examples.

References

ADALM2000 Overview.” Analog Devices, March 2021.

Bhunia, Chandan, Saikat Giri, Samrat Kar and Sudarshan Haldar. “A Low-Cost PC-Based Virtual Oscilloscope.” IEEE Transactions on Education , Vol. 47, No. 2, May 2004.

Limb2k Examples: analog.py.” Analog Devices, Inc.

Tegen, Amelia and Wright, Jeremy. “Oscilloscopes: The Digital Alternative: The Digital Scope’s Capability in Measurement, Transient Capture, and Data Storage Is a Significant Improvement Over its Analog Counterpart.” IEEE Potentials , Vol. 2, 1983.

What Is libm2k?” Analog Devices Wiki, April 2021.

About the Authors

Arnie Mae Baes joined Analog Devices in December 2019 as a firmware engineer. During her first year, she focused on GUI and firmware development. In December 2020, she joined the Consumer Software Engineering Group and is now focusing on firmware test development. She graduated from Batangas State University with a bachelor’s degree in electronics engineering. She can be reached at arniemae.baes@analog.com.

Christian Jason Garcia is a firmware verification engineer in Analog Devices General Trias, Philippines. He joined Analog Devices in November 2018 after graduating from University of Santo Tomas with a bachelor’s degree in electronics and communications engineering. He specializes in software testing and system verification of SmartMesh networks in the e-Mobility Group. He can be reached at christian.garcia@analog.com.

Additional Resources

ADALM2000 Learning Module - Analog Devices | DigiKey

ADALM2000 Wiki Datasheet - Analog Devices Inc. | DigiKey

ADALM2000 product page

Other Related Documents

StudentZone - Activity: Differential Temperature Sensor

ADALM2000 Activity: Common Emitter Amplifier

ADALM2000 Activity: The MOS Transistor Connected as a Diode

StudentZone-Activity: MOS Transistor Common Source Amplifier

Evaluation Boards - Expansion Boards, Daughter Cards

AD-M2KBNC-EBZ ADALM2000 BNC ADAPTER BOARD

AD-M2KPWR-EBZ ADALM2000 POWER BOOSTER BOARD