The goodfet.maxusb client is a simple proof of concept for talking to the MAX3421 and MAX3420 chips. Additional clients exist as goodfet.maxusbftdi for emulating the FTDI USB to Serial adapters, goodfet.maxusbhid for emulating an HID keyboard, and goodfet.maxusbmass for emulating a mass storage disk. Use goodfet.maxusbhost to interact with host mode on MAX3421 devices.


Usage: goodfet.maxusb verb [objects]

goodfet.maxusb info
goodfet.maxusb iotest
goodfet.maxusb peek 0x$start [0x$stop]
goodfet.maxusb poke 0x$adr 0x$val

Usage: goodfet.maxusbhost verb [objects]

goodfet.maxusbhost info
goodfet.maxusbhost allstrings

Usage: goodfet.maxusbhid

Usage: goodfet.maxusbftdi

Usage: goodfet.maxusbmass disk.img

Usage: goodfet.maxusbhost [info|allstrings]


The MAXUSB app has wiring diagrams for connecting a GoodFET to the MAX3421E development kit, but it's easier to build a Facedancer11 board with integrated USB.

Further Reading

The Facedancer board and the MAXUSB module were introduced by Travis Goodspeed in Emulating USB Devices with Python. A later article described emulation of the Device Firmware Update protocol in order to impersonate an Ubertooth and catch it's firmware update. An article will soon be posted on mass storage emulation, but for now you can probably find the video from the 29th Chaos Communication Congress in Berlin.


As this is a rather new port, expect new features and better documentation in the near future.