# TIAO USB Multi-Protocol Adapter (TUMPA)

The TIAO USB Multi Protocol Adapter (TUMPA) is a multi-functional USB communication adapter for hobbyists or engineers. The adapter is based on FDTI’s flagship communication chip FT2232H, a USB 2.0 Hi-Speed (480Mb/s) to UART/FIFO IC. It has two multi-protocol synchronous serial engines (MPSSEs) which allow for communication using JTAG, I2C and SPI on two channels simultaneously. Official reference can be found here.

Contents

- Configuration

- Drivers

- Wiring Connections

  - JTAG Interface

  - Serial Wire Mode Interface (SWD)

- Platforms

- Frameworks

- Boards

## Configuration

You can configure debugging tool using debug_tool option in “platformio.ini” (Project Configuration File):

    [env:myenv]
    platform = ...
    board = ...
    debug_tool = tumpa

If you would like to use this tool for firmware uploading, please change upload protocol:

    [env:myenv]
    platform = ...
    board = ...
    debug_tool = tumpa
    upload_protocol = tumpa

More options:

- Debugging options

- Upload options

## Drivers

Windows

  - Step-by-step guide: Drivers, Zadig, Wiring

  - Video tutorial

Mac

  macOS contains default FTDIUSBSerialDriver driver which conflicts with debug tools which are based on this chip. FTDI Chip company recommends removing this default driver from a system. Everything should work after system rebooting. See detailed instruction in official application note (Page 16, Section 4: Uninstalling FTDI Drivers on OS X) AN134: FTDI Drivers Installation guide for MAC OS X

Linux

  Please install “udev” rules 99-platformio-udev.rules. If you already installed them before, please check that your rules are up-to-date or repeat steps.

## Wiring Connections

### JTAG Interface

TUMPA JTAG 20-Pin Connector | Board JTAG Pin | Description
--- | --- | ---
1 | VCC | Positive Supply Voltage — Power supply for JTAG interface drivers
4 | GND | Digital ground
5 | TDI | Test Data In pin
7 | TMS | Test Mode State pin
9 | TCK | JTAG Return Test Clock
13 | TDO | Test Data Out pin
15 | RESET | Connect this pin to the (active low) reset input of the target CPU (EN for ESP32)

### Serial Wire Mode Interface (SWD)

TUMPA SWD 20-Pin Connector | Board SWD Pin | Description
--- | --- | ---
1 | VCC | Positive Supply Voltage — Power supply for JTAG interface drivers
4 | GND | Digital ground
7 | SWDIO | Data I/O
9 | SWCLK | Clock
15 | RESET | Connect this pin to the (active low) reset input of the target CPU

## Platforms

Name | Description
--- | ---
Espressif 32 | Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.
Kendryte K210 | Kendryte K210 is an AI capable RISCV64 dual core SoC.
SiFive | SiFive brings the power of open source and software automation to the semiconductor industry, making it possible to develop new hardware faster and more affordably than ever before.

## Frameworks

Name | Description
--- | ---
Arduino | Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
ESP-IDF | Espressif IoT Development Framework. Official development framework for ESP32.
Freedom E SDK | Open Source Software for Developing on the SiFive Freedom E Platform
Kendryte Standalone SDK | Kendryte Standalone SDK without OS support
Kendryte FreeRTOS SDK | Kendryte SDK with FreeRTOS support
Simba | Simba is an RTOS and build framework. It aims to make embedded programming easy and portable.
Zephyr | The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with safety and security in mind.

## Boards

Note

For more detailed `board` information please scroll tables below by horizontal.

Name | Platform | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | --- | ---
AI Thinker ESP32-CAM | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
ALKS ESP32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
AZ-Delivery ESP-32 Dev Kit C V4 | Espressif 32 | External | ESP32 | 240MHz | 16MB | 520KB
Adafruit ESP32 Feather | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Arty FPGA Dev Kit | SiFive | On-board | FE310 | 450MHz | 16MB | 256MB
Briki ABC (MBC-WB) - ESP32 | Espressif 32 | External | ESP32 | 240MHz | 3.25MB | 320KB
Briki MBC-WB - ESP32 | Espressif 32 | External | ESP32 | 240MHz | 3.25MB | 320KB
D-duino-32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
DOIT ESP32 DEVKIT V1 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Dongsen Tech Pocket 32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
ESP32 FM DevKit | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
ESP32vn IoT Uno | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
ESPectro32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
ESPino32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Espressif ESP-WROVER-KIT | Espressif 32 | On-board | ESP32 | 240MHz | 4MB | 320KB
Espressif ESP32 Dev Module | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
FireBeetle-ESP32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Frog Board ESP32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Heltec WiFi LoRa 32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Heltec WiFi LoRa 32 (V2) | Espressif 32 | External | ESP32 | 240MHz | 8MB | 320KB
Heltec Wireless Stick | Espressif 32 | External | ESP32 | 240MHz | 8MB | 320KB
Hornbill ESP32 Dev | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Hornbill ESP32 Minima | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
IoTaaP Magnolia | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
MH ET LIVE ESP32DevKIT | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
MH ET LIVE ESP32MiniKit | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Node32s | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
NodeMCU-32S | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
OLIMEX ESP32-DevKit-LiPo | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
OLIMEX ESP32-EVB | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
OLIMEX ESP32-GATEWAY | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Pycom LoPy | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Pycom LoPy4 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 1.25MB
SG-O AirMon | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Silicognition wESP32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
Sipeed MAIX BiT | Kendryte K210 | External | K210 | 400MHz | 16MB | 6MB
Sipeed MAIX BiT with Mic | Kendryte K210 | External | K210 | 400MHz | 16MB | 6MB
Sipeed MAIX GO | Kendryte K210 | External | K210 | 400MHz | 16MB | 6MB
Sipeed MAIX ONE DOCK | Kendryte K210 | External | K210 | 400MHz | 16MB | 6MB
Sipeed MAIXDUINO | Kendryte K210 | External | K210 | 400MHz | 16MB | 6MB
Sipeed MF1 MF1 | Kendryte K210 | External | K210 | 400MHz | 16MB | 6MB
SparkFun ESP32 Thing | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
SparkFun LoRa Gateway 1-Channel | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
TTGO LoRa32-OLED V1 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
TTGO LoRa32-OLED V2 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
TTGO T-Beam | Espressif 32 | External | ESP32 | 240MHz | 4MB | 1.25MB
TTGO T1 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
VintLabs ESP32 Devkit | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
WEMOS LOLIN D32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
WEMOS LOLIN D32 PRO | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
WEMOS LOLIN32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
WeMos D1 MINI ESP32 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
WeMos WiFi and Bluetooth Battery | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
XinaBox CW02 | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
oddWires IoT-Bus Io | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB
oddWires IoT-Bus Proteus | Espressif 32 | External | ESP32 | 240MHz | 4MB | 320KB