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
- Designing a 3D Printed Development Fixture
- Assembling a 3D Printed Development Fixture
- Test Instrumentation for Development Fixtures
- Designing a Laser-Cut Development Fixture
- Assembling a Laser-Cut Development Fixture
This guide goes over selecting test instrumentation to interact with prototypes boards, connecting this to the fixture, and writing and executing some simple tests.
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
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.
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.
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.
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.