OpenPilot FOSS JTAG

Content

 

Introduction

The OpenPilot FOSS JTAG is a tiny, economical USB JTAG hardware debugger/programmer and is designed to work with the software from the OpenOCD project.

The FOSS JTAG uses a clean, self contained cableless design and has a dedicated ARM mini 10 pin JTAG port, additionally the FOSS JTAG also includes a fully independent UART on a 4 pin standard OpenPilot 1mm connector. This independent connector contains a serial transmit and receive, but also presents USB power for external devices. So, not only is the FOSS JTAG an extremely small and powerful JTAG programmer/debugger, it also includes USB to serial functionality with USB power pass-thru.

This results in a very flexible and useful device. For example, within the OpenPilot project is it common to use the FOSS JTAG as a debugger/programmer while also connecting the serial port to one of the OpenPilot boards. This enables developers to power the target board, upload firmware, perform hardware based debugging, as well as sending and receiving serial data such as telemetry... and all this using a single USB cable.

The FOSS JTAG protects your computer's USB port by a 500mA resettable fuse which ensures current drawn by external devices is limited to to stay within the USB specifications.

A FOSS JTAG powering a CopterControl GPS as well as receiving GPS serial data.


The OpenPilot FOSS JTAG has full cross platform support and has been extensively road tested within the OpenPilot project for many months. Based on extensive feedback from thousands of hours of heavy development use, it has been refined several times to evolve in to a device we are extremely proud of today. The FOSS JTAG is a cross platform, flexible, powerful, and robust Open Source JTAG programmer/debugger in a micro sized package.

The FOSS-JTAG supports all ARM Micro-Controllers targets supported by OpenOCD and is the JTAG we recommend for OpenPilot development.

Features

Details

    • 5th Generation Future Technologies architecture
    • High Speed USB 2.0 device with low latency
    • J-TAG port with new standard 10 pin Micro JTAG connector
    • Dedicated RS232 serial port
    • Provides 5V (Up to 500ma) power, protected by resettable fuse
    • Professionally designed compact 2 layer PCB
    • Extensive platform support: Linux, Macintosh and Windows both 32bit and 64 bit
    • OpenOCD support with both Open Source and proprietary access libraries
    • Ready to go floss-jtag.cfg included with OpenOCD  (See the "History" section below for an explanation of the "floss-jtag" naming)

Auxiliary connector

The JTAG is also equipped with an auxiliary port that may be used to provide an extra debug UART, power to the target, or both. When looking at the bottom of the JTAG with the 10-pin connector on the left, the aux connector pins may be numbered from right to left. Respectively, the pins supply:

    • GND
    • Vcc
    • UART TxD (relative to JTAG)
    • UART RxD (relative to JTAG)

EEPROM

The OpenPilot FOSS JTAG has an on board EEPROM. Adding this to the FOSS JTAG gives it the advantage over many low cost JTAG devices because it means that multiple FOSS JTAGs can be used on a single machine. This is incredibly useful when trying to debug multiple boards at once, which is common task in firmware development. The EEPROM can be used to customize the USB VID, PID, Serial Number, Product Description  Strings and Power Descriptor value of the FOSS JTAG.

Information on programming the EEPROM can be found on the Programming the EEPROM page.

USB compliant

The FOSS JTAG uses the FT2232D controller at its core, hence it is a USB 2.0 full speed device and fully compliant with the USB 2.0 specification.

OpenOCD set up

OpenOCD is the On-Chip Debugger, and is an GPL licensed software interface to JTAG hardware debugging devices. It can be used for code uploading and step by step debugging on many ARM based devices including the OpenPilot boards.

As of version 4.0 of OpenOCD, native support for the FOSS JTAG is included by use of the floss-jtag.cfg file.
Basic set up of OpenOCD for Windows, Mac and Linux can be found OpenOCD Set up page.

History

The FOSS JTAG concept was originally developed under the name of Floss-JTAG by Piotr Esden-Tempski as a compact JTAG interface to enable code upload and hardware debugging for ARM microprocessors used in conjunction with the OpenOCD project.

Originally, the OpenPilot project used a variation of Esden's design for a short while. However, due to feedback, cost and assembly issues, this was replaced by a brand new design from Rowan Taubitz. The new design is simpler, more cost-effective, and adds additional features such as an EEPROM to allow the use of multiple JTAGs on the same PC. The EEPROM feature has since been contributed back to Esden original design.

To ensure credit was given to Esden's idea and his work, we kept the name of Floss JTAG in line with the CC-BY-SA license. Esden requested we change the name as the FOSS is a totally new design and to avoid confusion with his own device. Hence, the name FOSS JTAG was selected to avoid confusion but while showing the heritage of the device and still giving credit to Esden for his innovative idea.

Hardware design files

The files are released under the Creative Commons attribution share alike license (CC-BY-SA). Besides the release of the Altium design files that show the source of the design, we are also releasing all the other files required to replicate the design. This includes the full BOM with Digikey part numbers, assembly sheet and the Gerber files used in the production devices.    

Please respect the great amount of time, effort and money that has gone in to creating this hardware. Even relatively simple devices like the FOSS JTAG take a lot of testing and refinement to ensure they are perfect. The hardware files for the FOSS JTAG allow commercial use even though OpenPilot is a non-commercial and non-profit project. If you plan to produce the FOSS JTAG or a derivative based on it, we request that you retain the OpenPilot logo to be visible on the board and clearly link back to the OpenPilot project as required by the CC-BY-SA license.

This hardware is released as Open Source because we care about community and sharing. Please respect the generosity of the people behind the OpenPilot project.

The hardware files for the FOSS JTAG are in the Hardware/Production folder of the OpenPilot Git Repository.

Labels
  • None