|   ABOUT   |   INSTALLATION   |   USAGE   |   HARDWARE   |  

Supported Hardware

If you're new to JTAG, I recommend the JTAG FAQ to start.


Wiggler is a simple JTAG adapter for the PC parallel port, which became a de-facto standard. It is available from Macraigor Systems LLC.

The schematic of a Wiggler compatible circuit is available here.

A device driver such as giveio.sys is required to access the Wiggler compatible JTAG adapter on a Windows NT/2000 system. The driver is available free of charge from Dr. Dobb's Journal and many other places.


This JTAG programmer is based on an AVR ATmega8 chip and connects to the PC serial port. It had been developed for the Ethernut Boards, an embedded hardware platform for AVR and ARM7 CPUs.

Louis Beaudoin kindly permitted us to publish the Schematics of the Turtelizer Hardware. The circuit is quite simple, using an ATmega8L CPU, an RS232 level shifter and an LED. By default, the following port bits are used for the JTAG interface.

Signal Port Bit
Reset PORTC Bit 5

Turtelizer Firmware

The firmware for the Turtelizer is distributed with the JTAG-O-MAT package, located in subdirectory adapter/turtelizer/firmware. To compile the code on Linux, you need to install the AVR GCC toolchain before configuring and installing the JTAG-O-MAT source package. On Windows you will find pre-compiled binaries in the bin directory. To re-build them, change to the firmware directory, make sure that the WinAVR directories are included in the PATH environment and enter

$ make -f Makefile.avr-gcc clean
$ make -f Makefile.avr-gcc

Turtelizer Boot Loader

In order to easily upgrade (or downgrade) the firmware, a simple boot loader is available, which allows to upload new firmware using the JTAG-O-MAT utility. The source code of the bootloader is located in the subdirectory adapter/turtelizer/boot. Like with the firmware, the AVR GCC toolchain is required to compile the code.

Turtelizer Protocol

The Turtelizer firmware uses a simple STX/ETX protocol with a longitudinal parity byte to communicate with JTAG-O-MAT running on the PC. The layout of a command telegram from the PC to the Turtelizer is as follows.

<STX> <Cmd Byte> <Cmd Param> <ETX> <LRC>
The number of bytes used for the command parameters is optional and may be zero. The Turtelizer will respond with
if the command had been received without error or
otherwise. In the latter case JTAG-O-MAT will repeat the transmission of the command telegram up to three times before giving up.

The Turtelizer will then process the command and return a response telegram, which optionally contains one or more result values.

<STX> <Error Byte> <Result Values> <ETX> <LRC>
JTAG-O-MAT will answer with
if the response telegram had been received without error or

If an <STX>, <ETX>, <ACK>, <NAK> or <DLE> character appears in the telegram data, then a <DLE> will be prepended.

At the time of this writing, Turtelizer is at version 1.2 and understands the following commands.

Command Parameters Result Value Description
O   FW Version (4) Open JTAG, activates the JTAG signals.
C     Close JTAG, deactivates the JTAG signals.
Z     Resets the target.
E     Enter debug mode. Will stop the target CPU.
X     Exit debug mode. The CPU will continue with the current register settings.
I   ID Code (4) Return target's JTAG identifier.
r Register (1) Value (4) Read specified register.
w Register (1)
Value (4)
  Write value to specified register.
R Address (4) Value (4) Read memory location.
W Address (4)
Value (4)
  Write memory location.
M Address (4)
1. Value (4) .. n-th Value (4)
  Write multiple memory locations. Currently n is fixed to 12.
i   Value (4) Read comm data.
o Value (4)   Write comm data.
0     Start firmware update. This will invoke the bootloader.
1 Address (4)   Erase firmware. Processed by the bootloader.
2 Address (4)
  Write firmware. Processed by the bootloader.
3 Address (4) Length (4)
Read firmware. Processed by the bootloader.
4     End firmware update. Exits the bootloader and jumps back to the fimrware.

This website is hosted at

SourceForge.net Logo