Introduction

In the early stages of product development, it is common to constantly be re-programming PCB's for both firmware development and building prototypes. To quickly flash boards, a simple development fixture can be designed to program boards and run early tests.

This is part 3 in a series that covers FixturFab Development Fixtures. In part 2, we assembled a 3D printed development fixture designed with the Automated Design Service. Part 3 covers adding test instrumentation for flashing the board and running initial tests.

Development Fixture series

This guide goes over selecting test instrumentation to interact with prototypes boards, connecting this to the fixture, and writing and executing some simple tests.

Resources

To follow along with this tutorial you will need an assembled Development Fixture and SparkFun RedBoard Artemis. You will need a Binho Nova (or a similar Arduino-like device) to interact with the Artemis and some basic electrical development components like a breadboard and jumper wires.

Test Instrumentation Interface

Binho Nova

The Binho Nova is a multi-protocol USB host adapter that we really enjoy. It has support for I2C, SPI, UART, 1-WIRE, SWI protocols all in one compact package; making it a fantastic option for test instrumentation for the development of various types of boards. You can find additional detail on their product overview page.

binho-header.png

Although overkill for this project, we had one lying around and plan to feature it in future posts, so we thought it would be a good time to introduce this device. However, if you do not have a Binho available and still want to follow along, most basic Arduino-like devices can handle the ‘tests’ we will write for the RedBoard Artemis. You will just need to supply your own code.

Artemis Module

The SparkFun RedBoard Artemis is a development board based on the SparkFun Artemis module which contains an Apollo3 from Ambiq as its core IC. This is an ARM Cortex-M4F IC.

atremis-module.png

We will simply flash this board with some code that configures the serial interface to read analog or digital inputs.

Testing the RedBoard Artemis

Connect Binho to PC and breadboard

Connect the Binho to your PC and attach it to a breadboard using a breakout component. Use jumper wires for the following connections from the Binho to the RedBoard Artemis.

  • GND to GND
  • IO1 to A0
  • IO0 to D2
  • IO3 to TX1
  • IO4 to RX1
  • IO2 is not connected

Connect test fixture to breadboard

Add jumper wires from the test probe receptacle underneath the 3D printed probe plate to the breadboard.

dev-fixture-instrumentation.JPG

If this were a real prototype board, you could also add jumper wires from the fixture to your programmer. In part one of this series, we designed our fixture to help with this by adding test probes for the JTAG interface to flash the Artemis Module. However, for simplicity’s sake, we will use the USB jack to program the Redboard in this article.

Flash the Artemis

Download the test code. The dut-artemis dir contains the code for the Artemis module and the binho-pytest dir contains the configuration and test case files. Use the dut-artemis.ino file to program your RedBoard.

Setup the test environment

We recommend python virtual environments for testing specific projects. Either way, make sure to install the following python libraries.

  • pip install pytest
  • pip install pyserial
  • pip install binho-host-adapter

Write the Test Cases

For FixturFab’s Turnkey Test Systems, we write our tests in a similar way to python unit tests. These are executed with our soon-to-be open-source test runner. Conveniently, Binho leverages a similar philosophy with pytest. We provided the test cases to verify the dut-artemis.ino code, but you can read more on how our tests were written to leverage pytest here.

Execute the Test Cases

Execute the test cases by navigating to the /binho-pytest directory and issuing the pytest command. Pass in the comport for Artemis board and the deviceID of the Binho Nova as follows:

  • pytest --dutPort COM49 --fixtureID 0x1c4780b050515950362e3120ff141c2a

If you do not want to specify the port and fixture ID each time you can update the defaults in the /binho-pytest/conftest.py file:

  • line 10 for default COM port for Artemis board
  • line 13 for default deviceID for Binho Nova

Then the test can be performed simply by issuing the "pytest" command in the terminal.

3D Printed Development Fixture Conclusions

This is the end of our series on 3D Printed Development fixtures. While viable as an inexpensive testing solution for a low volume of boards, they have several significant limitations. 3D printing is slow and accurately fabricating probe plates with small holes close together (1.4mm diameter for P75 test probes, 1.9mm apart) is challenging. If you have a simple board with well-separated test points or a finely tuned 3D printer this could be a solution for you.

Next, we will introduce FixturFab’s laser-cut DEV260 fixture. Fabricating these is fast and accurate to a 50mils pitch! We will also provide kits with all components needed to assemble your own or ship assembled fixtures designed in our Automated Design service. The next Test Fixture Guide series will cover designing, assembling, and test instrumentation for a more relatable PCBA development process.