Skip to content
Factory test firmware, software, and raspberry pi image for Fomu
Verilog C Python Assembly Shell Makefile
Branch: master
Clone or download
xobs jig: led-interface: show pattern at startup
This tests the LEDs, and shows the version of the test.

Signed-off-by: Sean Cross <sean@xobs.io>
Latest commit 983efed Sep 16, 2019

README.asciidoc

Fomu Factory Jig

Fomu is an FPGA that fits in your USB port. This repository contains files necessary for mass production, including building the final factory test program, and the software that runs on the test jig.

Factory Jig Hardware

The jig hardware is a bespoke device that the factory produces. These are very common in consumer electronics, and can be sourced from most any factory. We provide them a gerber + drill file, and tell them which test points to monitor.

The factory creates a test jig with 2.54mm cables, each labeled. These get connected to a Raspberry Pi, and driver software is loaded onto it.

Finally, this driver software loads firmware and test programs onto the Fomu device, and can give a Pass/Fail report.

Usage - Initial Setup

Download the Fomu Rpi Image and write it onto an SD card. Then follow the instructions in the jig directory.

Building Test Bitstream

To build the test bitstream, go into the hw directory and run factory-bitstream.py. You’ll need to specify a board revision, as well as a boot source. You may also have better luck with the HeAP placer:

$ python3 factory-bitstream.py --boot-source bios --revision evt --placer heap

This generates build/gateware/top.bin, which you can load onto a target board via fomu-flash.

Developing Test Software

To develop the test software, it can be handy to build a dummy bitstream and then replace the target program at runtime. To do this, replace --boot-source bios with --boot-source rand:

$ python3 factory-bitstream.py --boot-source rand --revision evt --placer heap

Then, copy build/gateware/top.bin to your target Raspberry Pi as usual.

Next, go into the sw directory and build the program by typing "make". Copy the resulting factory-test.bin over.

Finally, log on to the Raspberry Pi and load the bitstream into the target Fomu, but replace the random program code with the contents of factory-test.bin:

$ fomu-flash -f top.bin -l factory-test.bin
You can’t perform that action at this time.