Facedancer11

The Facedancer11 is the fifteenth hardware revision of the GoodFET, owing its heritage to the GoodFET41 and Facedancer10. Unlike the general-purpose GoodFET boards, the only purpose of this board is to allow USB devices to be written in host-side Python, so that one workstation can fuzz-test the USB device drivers of another host. The board is functionally identical to the Facedancer10, correcting only minor errata.

See the Orders page for details on ordering PCBs. Assembled boards are not yet available.

Further Reading

For more information on USB emulation and fuzzing, see Travis Goodspeed's article, Emulating USB Device with Python. A follow-up article describes emulating DFU to capture firmware updates.

CAD Files

Eagle CAD 5.x files for the design can be found in /branches/facedancer11 of the GoodFET subversion repository, or along with gerbers as facedancer11.zip.

Bill of Materials

The MSP430F2618TPM may be replaced with a 2617, 2619, 2417, 2418, or 2419 chip, provided that the $mcu variable is set.

Resistor values can be approximated, and the 1.0μF capacitors are probably unneeded. Be sure to get the 64 pin variant of the MSP430F2618, as 80-pin versions are also manufactured.

Quantity Package 1 SSOP28 FT232RL 1 QFP64 MSP430F2618TPM 1 LQFP32 MAX3420E 2 0603 1.0μF Capacitors 3 0603 0.1μF Decoupling Capacitors 2 0603 18pF Capacitors* 1 HC49/UP** 12MHz SMD Crystal, 18pF 3 0603 0603 LED 2 0603 330R LED Series Resistors 2 0603 33R USB Series Resistors 2 USB Mini Receptacle Kobiconn 154-15320-E or FCI 10033526-N3212MLF or On Shore USB-M26FTR

* These should match the required capacitance of the crystal.

** The /US SMD package works as an alternative.

If you need help selecting parts, you can follow this example Digi-Key order.

Construction

Place the components as shown in the comments of this Flickr image. As this is a surface-mount design, be sure that you are familiar with such techniques or have assistance before beginning assembly.

See the GoodFET Tutorial for more detailed explanations.

Usage

Build and flash firmware with the following commands. This board self-flashes over USB through a masked-ROM bootloader, so there is no need for an external programmer.

export board=facedancer11 make clean install goodfet.maxusbhid

See the GoodFET Tutorial for more detailed explanations.

Errata

None, we hope!