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
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
$ python3 factory-bitstream.py --boot-source bios --revision evt --placer heap
build/gateware/top.bin, which you can load onto a target board via
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
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
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
$ fomu-flash -f top.bin -l factory-test.bin