No Such Badge 2013
No Such Badge is the twenty-sixth hardware revision of the GoodFET, owing its heritage to Facedancer21, of which it is a clone. 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. This board replaces the MAX3420E of earlier Facedancers with a MAX3421E, allowing for optional host mode through a USB A receptacle.
The badge is not available for order, but you might be able to get an extra one from an attendee of the No Such Conference or from that conference's organizers. See the Orders page for details on ordering other Facedancer PCBs.
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 6.x files for the design can be found in /branches/nsb2013 of the GoodFET subversion repository, or as manufacturable Gerber files as nsb2013.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 | TQFP32 | MAX3421E |
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 | |
1 | USB TYPE A SMT CONN RECEPT |
* These should match the required capacitance of the crystal. 18pF is wrong, but close enough to work.
** The /US SMD package works as an alternative.
If you need help selecting parts, you can follow this example Digi-Key order, but be sure to replace the MAX3420 with a MAX3421. You will also need the USB Type A receptacle for Host Mode.
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 errata section for details on where to run fly-wires, as two pins were not connected in the PCB layout.
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=nsb2013 make clean install goodfet.maxusbhid
See the GoodFET Tutorial for more detailed explanations.
Errata
None, we hope!