Skip to the content
2 layers70 × 45 mmJaguar USB tap, the printed circuit board in 3D

Schematics, PCBs and firmware for an Atari Jaguar controller to USB adapter, based on an STM32F07 ARM uC.

Size
70 × 45 mm
Copper layers
2
Thickness
1.6 mm
Parts
24
Nets
47
Pads
119
Tracks, vias
349, 16
Pours
2
Routed
Yes
KiCad
KiCad 4
Created
20 Nov 2017
Updated
28 Nov 2018

Overview

Jaguar USB tap is an open-source printed circuit board by dgrubb, from the dgrubb/Jaguar-USB-tap repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 70 × 45 mm with 24 parts on 47 nets, routed with 349 tracks and 16 vias.

It is built around the STM32F070CBT6. Its parts include 9 capacitors, 5 connectors, 3 resistors, 2 ICs and 2 diodes. It belongs with the retro computing and games boards and the STM32 boards of this library.

Main components

1

README

README.md

Jaguar USB Tap

Atari Jaguar logo

The controller for the Atari Jaguar game console is a strange beast and doesn't map well to modern controllers (in large part due to the numeric keypad). This makes emulating games on a PC with off-the-shelf controllers, which usually mimic PlayStation or XBox layouts, somewhat cumbersome. One possible solution is to create a device which can convert the Jaguar controller's pinout and signals to a USB HID device.

Hardware

The hardware was developed using the open-source schematic and PCB design tool KiCad. It sports an STM32F070 ARM Cortex M0 micro-controller which handles input from the Jaguar gamepad and generate appropriate USB HID signalling.

Assembled Jaguar USB Tap

Jaguar USB Tap

Typical use case

Accessibility

Even though the design uses entirely surface-mount (SMD) components, with the exception of connectors, I selected components with relatively large footprints such as 1812 for non-polarised capacitors. Larger components resulted in the PCB being bigger than it needs to be, but I feel this to be an acceptable trade-off to ensure that the design is accessible as they require less skill to solder and can also be identified and handled more easily by those with poorer eyesight.

At the heart of the board is an STM32F070 microcontroller. This part contains an ARM processor core, a USB peripheral and a small handful of GPIO pins making it highly suited as an embedded processor in USB human-interface devices (HID). While the part is a good technical fit for the project there are also accessibility reasons for using an STM32 uC. Chiefly, firmware can be developed using entirely open-source tools, such as gcc, on the user’s platform of choice (Linux, Mac OS or, I suppose, even Windows).

Firmware

Compatibility

I've tested on:

  • Linux
  • Windows 7
  • MacOS X

In all cases the default USB HID driver on each system is suitable for use with the Jaguar USB Tap and enumerates correctly without additional drivers.

Building

Prerequisites

Requires an ARM toolchain:

  • arm-none-eabi-gcc
  • arm-none-eabi-gdb
  • arm-none-eabi-binutils
  • OpenOCD (programming utility)

On Debian/Ubuntu:

text
$ sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi openocd
Make targets

To build the application:

text
$ make

To delete compiled objects and binaries:

text
$ make clean

To flash the STM32F0 over STLink:

text
$ make upload

To run the debugger, start an OpenOCD session with the target:

text
$ make debug

and then, in another terminal window:

text
$ make run_gdb

Parts

24
QtyValueFootprintReferences
50.1uFCapacitors_SMD:C_1812_HandSolderingC2, C3, C4, C6, C12
210uFCapacitors_SMD:CP_Elec_4x5.8C8, C11
220pFCapacitors_SMD:C_1812_HandSolderingC1, C5
2650Resistors_SMD:R_1210_HandSolderingR1, R2
2LEDLEDs:LED_1206D1, D2
110KResistors_SMD:R_1210_HandSolderingR3
18MHzCrystals:Crystal_SMD_HC49-SD_HandSolderingY1
1CONN_01X02Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mmJ4
1CONN_01X03Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJ1
1CONN_01X05Pin_Headers:Pin_Header_Straight_1x05_Pitch2.54mmJ7
1DB15_FEMALE_HighDensityDB15-SPC15430:conn_SPC15430J6
1LOGOSymbols:OSHW-Logo_19x20mm_SilkScreenG***
1NCP1117ST33T3GTO_SOT_Packages_SMD:SOT-223U1
1STM32F070CBT6Housings_QFP:LQFP-48_7x7mm_Pitch0.5mmU2
1SW_DPST_x2Buttons_Switches_THT:SW_PUSH_6mmSW1
1USB_BConnectors:USB_BJ5

Similar boards

  • 2 layers35 × 41 mmPif fpga, the printed circuit board in 3D

    Pif fpga

    jago85/UltraPIF_Hardware

    N64 PIF Replacement Hardware (KiCad)

    61 parts79GPL-3.0
  • 2 layers80 × 61 mmUsb thermo logger, the printed circuit board in 3D

    Usb thermo logger

    richardklingler/usbthermocouple

    This is my first ever published project on Github, so most probably not error free (o;

    61 parts11GPL-3.0
  • 2 layers56 × 65 mmSeaTalk1, the printed circuit board in 3D

    SeaTalk1

    dotnet/iot

    This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.

    24 parts2.4kMIT
  • 2 layers26.2 × 45.5 mmPL18 multiprotocol, the printed circuit board in 3D

    PL18 multiprotocol

    pascallanger/DIY-Multiprotocol-TX-Module

    Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.

    24 parts1.9kGPL-3.0
  • 2 layers58 × 35.5 mmHat, the printed circuit board in 3D

    Hat

    menloresearch/asimov-1

    v1 of Asimov, an open-source humanoid robot

    24 parts1.4kCERN-OHL-S-2.0
  • 2 layers21.6 × 19.5 mmMicron Logo LED, the printed circuit board in 3D

    Micron Logo LED

    DraftShift/StealthChanger

    Tool changing system for Vorons and other front mount printer motion systems, not just stealthburner.

    24 parts1.2kGPL-3.0

Questions

How big is the Jaguar USB tap PCB?

It measures 70 × 45 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Jaguar USB tap use?

24 parts, built around the STM32F070CBT6. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Jaguar USB tap KiCad files?

From the dgrubb/Jaguar-USB-tap repository on GitHub, at the commit this page was made from: the board is Hardware/Jaguar-USB-tap.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Jaguar USB tap design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).