JTAGulator alternative & a hardware hacker's multi-tool for RP2040 microcontroller based development boards. Huge shout-out to Joe Grand for his JTAGulator project!
- Detects JTAG & SWD debug pinout (JTAGulator function)
- Functions as a USB-to-Serial adapter
- Reads & writes flash ICs with Flashrom
- Supports OpenOCD with JTAG & SWD modes (BusPirate protocol)
- Acts as a CMSIS-DAP adapter (supports UART & SWD)
- Download latest release version of blueTag ("blueTag-vX.X.X.uf2") from this github repository's releases section
- Press & hold 'BOOTSEL' button on a RP2040 microcontroller based development board, connect it to a computer via USB cable & then release the button
- Copy "blueTag-vX.X.X.uf2" file onto the newly detected flash drive (RPI-RP2*) on your computer
NOTE : Releases now also contain experimental builds ("blueTag-vX.X.X-RP2350-Experimental.uf2") for RP2350 based dev-boards.
- Connect the RP2040 microcontroller based development board running blueTag to your computer using USB cable
- Connect the development board's GPIO pins (GPIO0-GPIO15 so 16 channels in all) to your target's test-points
- Connect the development board's "GND" pin to target's "GND"
- Open a terminal emulator program of your choice that supports "Serial" communication (Ex. Teraterm, Putty, Minicom)
- Select "Serial" communication & connect to the development board's newly assigned COM port
- blueTag supports auto-baudrate detection so you should not have to perform any additional settings
- Press any key in the terminal emulator program to start using blueTag
- UI provides detailed guidance for all commands & hardware modes
Hardware boot modes: If you want blueTag to boot straight into a hardware mode, connect the relevant hardware boot mode selection GPIO to GND & reset or reconnect blueTag to your computer. As long as the GPIO is connected to GND, blueTag will continue to boot into the selected hardware mode when reset or reconnected. Only one boot mode can be active at a time.
NOTE 1: Most RP2040 microcontroller based development board's GPIO pins function at 3.3v. For connecting to devices running other voltage levels, use of external level shifter(s) will be required.
NOTE 2: Since the algorithm verifies channels in order (from 0 to 15), connect the channels in sequence (from 0 to 15) to your target's testpads/test points for the quickest execution time when using JTAGulator function.
Recommended to use Docker
- Open a command-prompt or terminal
- Change to the desired directory & then execute the following commands:
git clone --recurse-submodules https://github.com/Aodrulez/blueTag.git
cd blueTag
docker build -t pico-builder-image .
docker create --name pico-builder-container pico-builder-image
docker cp pico-builder-container:/project/src/build_rp2040/blueTag.uf2 ./blueTag-RP2040.uf2
docker cp pico-builder-container:/project/src/build_rp2350/blueTag.uf2 ./blueTag-RP2350.uf2NOTE : RP2350 builds are only for testing at the moment.
-
JTAGulator Features:
-
Flashrom Support:
-
OpenOCD Support:
-
USB-to-Serial Support:
-
CMSIS-DAP Support:
- TinyUSB: MIT License
- ARM CMSIS_5: Apache 2.0 License
- Project Code: MIT License (unless otherwise stated)

