Since starting to design and manufacture our own Raspberry Pi expansion boards which we sell on www.abelectronics.co.uk we have found that the testing phase of the board production has always been very time-consuming as we have always tested each board on a Raspberry Pi and often when hot-plugging the boards it would cause the Raspberry Pi to reboot causing a lot of delays while we waited for it to restart then login again to run the test scripts.
For boards such as the IO Pi expander, we had to use a separate LED board to show the status of each IO pin and toggle these via a Python test script. Testing each board could take several minutes to check all 32 IO ports.
In order to speed up the testing we made a custom board which fitted onto an Arduino Uno and had 32 LEDs with spring pogo-pins which allowed us to place the IO Pi board to be tested onto the tester and then run a script on the Arduino Uno which flashed the IO pins in sequence. This made testing the boards much faster as each one could be checked in under 10 seconds.
When we developed the new larger IO Pi Plus to fit on the new Raspberry Pi A+ and B+ models we decided to make new standalone testers for both of the IO boards using the same ATmega328 processor as used on the Arduino Uno with a 16Mhz crystal. These new testers are shown in the photo below.
We have also made a tester for our Servo Pi board which uses the same ATmega328 processor to generate the I2C signals needed to run a PWM sequence that lights 16 LEDs on the test board one at a time.
For the popular ADC Pi, we continued to test these on the Raspberry Pi and supply 5V to the input pins via a cable and probe but this was also very time-consuming and had issues with the Raspberry Pi rebooting at random times when changing the boards.
In the past few months, the sales of the ADC boards have greatly increased and so we experimented with the Arduino Uno to make a more complex test jig for the ADC boards and including an LCD screen to show the status of the board being tested and any errors in addition to basic Pass/Fail LEDs on the tester.
The new ADC Pi and ADC Pi Plus tester is a single board design which uses an ATmega328 processor to communicate with the board being tested via I2C and also with the LCD display. The tester has a precision voltage reference at 2.048V which is connected to the board being tested via pogo-pins.
The code on the ATmega328 then checks each analogue input 3 times to verify the input voltage and displays the input status on the LCD screen if it is within tolerance. If one or more of the ADC readings falls outside of the range the LCD shows either H for high voltage or L for a low reading.
If the tester cannot communicate with the board being tested the LCD shows I2C Error which normally indicates a soldering issue with the level shifter MOSFETs or pull-up resistors.
The photos below show the build progress of the new ADC Pi tester.