Skip to content

Factory test firmware, software, and raspberry pi image for Fomu

License

Notifications You must be signed in to change notification settings

im-tomu/fomu-factory-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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