Chapter 5: Increase your knowledge about Test Point Measurements
First, we will be looking at our six Devices Under Test (DUTs) and will establish the order in which we will realize the Test Point Assignment. It is worth mentioning that for our practical part, we will only need the actual DUTs and a digital caliper, as seen in Figure 2. Since we have a total of six PBCs, it would require constructing the same amount of Bed of Nails fixtures to verify all test points simultaneously. From the cost point of view, we need to consider a large sum to cover the expenses for the fixture materials and pogo pins. Additionally, we need to pay attention to the die size of the devices located on the Arduino UNO board. Proper placement of the pogo pins is hardly achievable being very close to each other. Another reason is the presence of Surface Mounted Devices (SMDs) on the board, which would involve assigning telescopic pins on both sides of the circuit (an aspect not found in practice). Following we will explain what we are required to do to test these PCB devices. For our demonstration objectives, we consulted the schematics of all DUTs and then pinpointed all test points necessary for the FPICT software code. In this tutorial, it is out of scope to show all of the pinpointed schematics since the user will only see how the flying probe will make contact with the physical hardware platform via the webcam feed.
Figure 2. IoT Hardware Platforms and Digital Caliper Overview.
1. ESP 32 Microcontroller Unit
ESP32 is the smallest of the selected MCU batch with a length of 48.20 mm and a width of 25.40 mm (see Figure 3), but far superior to Arduino UNO or its predecessor, ESP8266, since it incorporates Wi-Fi capabilities, Bluetooth 4.2, and Bluetooth low energy, leading to an energy-efficient IoT hardware device.
To verify its functionality, we selected three critical test points for this MCU, namely the main 5V power supply and a pair of 3.3V voltage supplies. First, we choose a reference point which could be any edge of the MCU board. It is, however, recommended to select the reference point as close as possible to the test points to reduce the overall test time of the FPICT.
Figure 3 – Measuring the physical distance from the reference point to the 5V pin (left side), 3.3V pin same grid line (middle), and 3.3V pin opposite grid line (right).
The above measurements establish the two cartesian coordinates (x, y) as follows: TP1(0, 5.31), TP2(0, 15.74) and TP3(5.31, 22.40). The Z-axis coordinate was omitted because it varies depending on the board’s height, and can be later measured when the device is fixed on the hardwood board. In the software program seen in Fig. 4, the three pairs of coordinates will be stored as follows:
Figure 4 – Configuration Structure for the ESP32 Test Points
2. L298N Motor Driver
The L298N Dual H-Bridge is among the most popular motor drivers for controlling peripheral engines used in a plethora of projects. More specifically, the L29N IC is capable of driving two DC motors or one Stepper motor with a maximum current draw of 3A. Since the voltage and current values can vary depending on the motor’s power requirements an additional heatsink is installed on its surface to properly dissipate heat. The L298N board (see Fig. 5) has a square shape measuring 43 mm in length. To verify its functionality only one test point was considered sufficient, namely the common point of the Dual H-Bridge, which was measured according to the method described above: TP4(0, 16.37).
Figure 5 – L298N Motor Driver Test Point Localization using Digital Caliper
3. STM32 Development Board
The STM32 MCU is a great alternative to Arduino UNO due to its more compact electronic packaging and the capability of being programmed from the same Arduino software interface. Additionally, thanks to its energy-efficient design it consumes less power than other MCUs in its category, making it the ideal choice for any home or school project. Similar to the L298N, the STM32 (seen in Fig. 6) presents itself in a square-like shape with a parameter length of 50 mm. Test point localization is much easier since, compared to other development boards, the STM32 has only a 3.3V power supply scattered around a few pins on the edge of the device. By using the digital caliper, we could determine the two test points with the following coordinates: TP5(0, 18.89) and TP6(0, 24.16).
Figure 6 – STM32 Development Board Test Point Localization
4. Arduino UNO R3
The Arduino UNO R3 seen in Fig. 7, is the most iconic development board due to its wide use in a variety of projects, ranging from simple sensor readings to solar tracking devices and other automated systems. It offers a total of 6 analog GPIO pins (A0-A5) and 14 digital GPIO pins (D0-D13). Additionally, some Arduino UNO releases have a different pin configuration on the backside allowing for a better evaluation concerning the Atmega328 MCU. In this example, I will show you how to use a simple but efficient trick to measure all test points by using the digital caliper only twice.
Figure 7 – Arduino UNO Test Point Localization
Our strategy, as illustrated in Figure 7, is to measure only the distance from the reference to the two rows of contact pins (which denote the Atmega328P). By determining the minimal distance between two neighbor pins (in our case 2.19 mm) it is extremely easy to find the coordinates of any test pin from the two grid lines. The selected test points are: TP7(16.33, 0) – RESET 5V, TP8(16.33, 2.19) – RXD 5V, TP9(16.33, 13.4) - ANALOG POWER 5V, TP10(9.04 ,15.33) – GND 0V, TP11(9.04, 17.52) – AVCC 5V. All 11 test points that were chosen for this tutorial were organized in the following table.
IoT Hardware Platform |
Test Point Number |
Strip Order ( L-R ) |
ESP32 Breakout Board |
TP1 |
5V Contact Pin |
TP2 |
3.3V Contact Pin |
TP3 |
3.3V Contact pin |
L298N Motor Driver |
TP4 |
5V Power Supply |
STM32 Development Board |
TP5 |
3.3V Power Pin |
TP6 |
3.3V Power Pin |
Arduino UNO R3 |
TP7 |
RESET (5V) |
TP8 |
RXD (5V) |
TP9 |
ANALOG POWER (5V) |
TP10 |
GROUND (0V) |
TP11 |
AVCC (5V) |
While FPICT is a potent tool for testing PCBs, it has these limitations:
- Electrolytic components can be tested for polarity only on specific configurations (e.g. if not parallel connected to power rails) or with specific sensor
- The quality of electrical contacts cannot be tested
- It is only as good as the design of the PCB. If no test access has been provided by the PCB designer, then some tests will not be possible