The GoodThopter12 is a sexy GoodFET CAN device based around the design of the GoodFET31. Unlike the general- purpose GoodFET boards, the purpose of this board is to be used in the exploration of Automotive communication buses, currently supporting only the CAN bus. In addition to GF31 circuitry we have added a high-speed CAN Transceiver (MCP2551) and a Stand-alone CAN Controller with a SPI Interface (MCP2515). This design improves upon the GoodThopter10 by correcting one important and many minor errata and improves on the GoodThopter11 by allowing users to purchase the cheaper OBD2 cables from SparkFun or


CAD Files

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

Bill of Materials

Resistor values can be approximated.

N.B., The BOM including Digi-Key part numbers can be found in SVN branches/goodthopter10/bom/ (GoodThopter10 uses the same components)

1HC49/UP**20MHz SMD Crystal, 15pF
406030.1μF Decoupling Capacitors
2060315pF Capacitors*
506030603 LED
40603330R LED Series Resistors
1060310K Pull-up Resistor
206030 OHM Resistors - Jumpers for OBD2 Cable
1USB Type B - TE 292304-2 or FCI 61729-1011BLF
1D-SUB 9 Position Mountable Conn. - TE 1734351-1

* These should match the required capacitance of the crystal.

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


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.


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=goodthopter12
make clean install
goodfet.mcpcan info

See the GoodFET Tutorial for more detailed explanations.

OBD2 Cables

NEW! On the GoodThopter12 you have your choice of OBD2 cable. We suggest purchasing the much cheaper Sparkfun model

Note: the SparkFun cable does not work with previous versions of the GoodThopter (10,11)

GoodThopter12 - Cable Selection

Looking at the image above, this is the GoodThopter12 silkscreen. We routed the SparkFun OBD2 cable by default, so if you use this cable you don't need to do anything.

IMPORTANT! For those who have previous GoodThopter devices and wish to use their existing cable (the one from ICS) then you can do so by populating resistors R6 and R8 AND cutting the traces to the SparkFun lines (see silkscreen). We hope this alleviates the expensive purchase of the ICS cable and allows all future users to purchase SparkFun's cable for much less!