Embedded systems need to be tested. This talk describes a project to create a low-cost test fixture to test an embedded system.
The presenter originally looked into a commercial solution but rejected it due to cost and the unavailability of the components.
the solution they landed on was to design a custom PCB in Kicad with the probes in the corrct location. This also involved creating a custom footprint for the pogo-pin probes. Special consideration needed to be given to the following constraints:
The silkscreen was used to provide guidance to the operator in the factory to ensure that the placement of the DUT was correct.
The brains of the system were a Raspberry Pi zero with TinyCore Linux. The test involved driving a UART which they did from Python.
There was also a requirement to measure some voltages. As the RPi zero did not have the required ADCs they decided to use an off-the-shelf hat to give them 3 ADC channels. Aditionally a Relay was also available which was helpful in power cycling the DUT.
The SWD protocol was used for programming the microcontroller on the DUT. For this they used OpenOCD and a bit-banging driver using simple GPIOs.
The comparison they make between an OTC bed-of-nails testing solution and what they implemented is huge (€3700 vs €87). They did not take into account the set-up time which skews the comparison. During the Q&A they mentioned spending 4 days on setting everything up. The presenter says that for larger production runs it most likely makes sense to buy something off the shelf as these units allow testing multiple devices in paralle. Their production runs are < 10.000 units and for this usecase it makes sense to DIY.
So far they’ve already seen improved yields of the devices and they’ve been able to identify some problems with component placement that their manufacturer then was able to resolve.
W.r.t. to the reliability of the system they’ve tested 1000+ boards without any issues so it seems to be holding up. The pogo pins they selected are rated for 100000 cycles.
Right now they do not save the data from the testing but there is actually nothing that prevents them from doing this.