USB Bootloader

Tools required

Activating the bootloader

The K1 button needs to be pressed while connecting the device to the computer with the USB cable. Once the XScope enters the bootloader, the red LED will be lit, and will blink with USB activity. The XScope will appear as a new device on the host computer, the drivers required are found in the FLIP application folder.

FLIP application instructions

  1. Start Flip.
  2. Select ATXMEGA32A4U in the device selection list.
  3. Select USB as communication medium
  4. Open the USB port to connect to the target.
  5. Make sure the FLASH buffer is selected and check ERASE, BLANK CHECK, PROGRAM, VERIFY.
  6. Load the HEX file .hex
  7. Press RUN
  9. Load the HEX file .eep
  10. Uncheck ERASE and BLANK CHECK, only leave checked PROGRAM and VERIFY
  11. Press RUN
  13. After updating the firmware, make sure to recalibrate the device (See section 1.6).

Xprotolab Logic Analyzer Manual

The Xprotolab has an 8 bit logic analyzer and can do sniffing on standard protocols: I2C, UART and SPI.

The logic inputs are 3.3V level. The Xprotolab logic inputs are not 5V tolerant!, If you need to connect 5V signals to the logic analyzer, you could:
Add a 3K resistor in series with the signal, or, use a 5V to 3.3V level converter chip.

Logic Analyzer Menu


Parallel Decoding

Shows the hexadecimal value of the 8 bit digital input lines. The hexadecimal number is shown below the last digital trace. If all the 8 digital traces are enabled, then there is no space to show the parallel decoding.

Serial Decoding

Shows the hexadecimal value of the stream of bits on each channel. The decoding starts at the first vertical cursor and ends at the second vertical cursor, 8 bits are decoded. If the cursors are disabled, then the decoding is done from the start of the screen, to the end.

Protocol Sniffers

When the Xprotolab is in Sniffer mode, a small text appears on the screen, indicating where to hook up the signals. As soon as the data is received, the data is displayed in "pages".

There are 16 pages of data. To browse thru the pages, use the buttons K2 and K3.

In the UART and SPI sniffers, the data can be displayed in HEX or ASCII, press K2 and K3 simultaneously to toggle between them.

If using ASCII, note that letters will be always uppercase, and only codes 0x20 thru 0x7A will show valid characters.

I2C Sniffer - Connect SDA to Bit 0, SCL to Bit 1

The Xprotolab implements the I2C sniffing in a bit-bang fashion. The maximum clock frequency is 400kHz (Standard I2C Fast Speed).
As the data is decoded, the data in HEX will appear on the screen, accompanied by a symbol:

When the Master initiates a read, < is an ACK and ( is a NACK
When the Master initiates a write, > is an ACK and ) is a NACK
Subsequent data in the frame will be accompanied by + for ACK or a - for NACK.

There are 16 pages of data, each page shows 64 bytes => the total memory for the I2C sniffer is 1024 bytes.

UART Sniffer - Connect RX to Bit 2, TX to Bit 3

The Xprotolab can decode both the TX and RX lines of the UART at the standard baud rates:

1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

The screen is split in two, the left side is use for the RX line, and the right side is used for the TX line. Each side can show 40 bytes per page. With 16 pages, a total of 640 bytes can be stored for each decoded line.

SPI Sniffer - Connect the Select to Bit 4, MOSI to Bit 5, MISO to Bit 6, SCK to Bit 7

The Xprotolab can decode both the MOSI and MISO lines of an SPI bus. The SPI's MOSI pin decoding is done in hardware, so it can decode data at high speed, But the SPI's MISO pin decoding is implemented in software using bit-banging, so the maximum clock allowed will be limited.

The screen is split in two, the left side is use for the MOSI line, and the right side is used for the MISO line. Each side can show 40 bytes per page. With 16 pages, a total of 640 bytes can be stored for each decoded line.

Video Demonstration:

BMP Screen Capture

To send a BMP screen capture to a PC:

You can send a screen capture of the oscilloscope to your PC using hyperterminal. All oscilloscope bitmaps in this manual where generated using this method.

  • Open HyperTerminal.
  • Enter a name for a new connection (example: scope).
  • Enter the COM port where the device is connected.
  • Select 115200 bits per second, 8 data bits, Parity None, 1 Stop bit, Flow control None
  • In the Transfer menu, select Receive File.
  • Enter a folder where to save the file and use the XMODEM protocol.
  • Enter a file name with a BMP extension and press OK

To send a BMP screen capture to Linux:

Matt Pritty has shared a script for capturing the BMP file:


To use, make the script executable with “chmod +x”. Then enter “./” into a terminal followed by the serial device for example “./ /dev/ttyUSB0”.

Then enter a name for the bmp image including the .bmp file extension.


Xprotolab AWG Manual

The Xprotolab can output the standard waveforms of a function generator: sine, triangle and square. It can also output a custom waveform, which is initially set with an exponential.

You can adjust all the parameters of the waveform: frequency, amplitude, offset and duty cycle.

The predefined waveforms of the AWG are:

sine square triangle exponential

* The custom wave is preset with an exponential, but can be changed with the PC Xprotolab Interface.

Frequency Sweep

The Xprotolab has a SWEEP feature, which increases the frequency of the wave automatically on each screen refresh of the oscilloscope.

The start and end frequencies are automatically determined by the current sampling rate. Since the sweep is synchronized with the oscilloscope, displaying perfect frequency plots is a breeze.

AWG Menu

AWG menu


When adjusting the parameters, the K1 button serves as a shortcut key, which sets predefined values.

Technical Details

The waveform is stored in a 256 byte long buffer, this buffer is fed to the XMEGA's DAC thru the DMA. Once the waveform is set, the waveform will be generated without any CPU intervention. The maximum conversion rate of the DAC is 1MSPS, this limits the maximum output frequency of the AWG as a system. For example, if the AWG is generating a sinewave with 256 points, the maximum frequency is 3906.25Hz. If generating a sinewave with only 32 points, the maximum frequency is 31.25KHz. The AWG amplifier has a low pass filter of 44KHz.

The resolution of the generator varies depending on the frequency range: the lower the frequency, the higher the resolution:

Frequency = Cycles*125000/(Period+1)

Cycles: Integer number, with these possible values: 1,2,4,8
Period = Integer number, with values between 0 and 65535

Note that the possible frequencies are discrete.

Video demonstration