Hey All,
I am working on optimizing a manufacturing script for a product that uses the nRF9160, this script is written in python and uses the pynrfjprog library to interface with a jlink connected to the 9160 over SWD. The production station that this script runs on is the bottle neck in our production line, and we only have a limited number of fixtures that can perform this function.
After conducting an analysis of how long each step in the programming / m-test process took, it looks like modem firmware update is the standout by an order of magnitude. This step takes approximately 35 seconds to complete, where as each other step takes between 5 -10 seconds. There are a total of 10 steps, and I have parallelized the modem firmware step as much as I can, but everything else has to happen sequentially.
I have determined that the only way I can speed up this any further is to speed up the modem firmware update process itself. I have this function running in a separate thread from the main script to program modem firmware.