USB IR Toy: SUMP logic analyzer mode

From DP

Jump to: navigation , search

The IR Toy captures and displays remote control waveforms with the SUMP open source logic analyzer client. Sampling is triggered by a change on the IR receiver, it won't start capturing until it gets a valid IR source.

Contents

Overview

sump-dataii

The logic analyzer mode currently operates at 10kHz with a fixed 1024 sample buffer. This isn't high-speed or long-sampling, but we were able to capture every mode we tested on a universal remote using these settings. Different speeds are possible, and could be added in a future firmware upgrade.

Remote control codes are generally carried on 38kHz modulated light, so data bits won't be shorter than 26us. The Nyquist sampling theorem suggests 76khz as the minimum sampling rate, twice the maximum data resolution. However, most IR receivers reject signals shorter that a few cycles so we can get away with much less.

The IR Toy has a SUMP protocol compatible state machine. It receives all commands correctly, but it only processes RESET, ID, and RUN; other commands are discarded. Future firmware might add a speed setting, but SUMP doesn't provide a lot of useful resolution in the low sampling frequency range of the IR Toy. It might also be possible to double the number of samples in a future firmware update.

SUMP is written in Java, and was originally intended for various FPGA setups. Download the latest version here:

Capture

These instructions are for the latest 0.9.4+ client only


Irtoy-ols-profilesettings.png

Start SUMP and press the capture button (or Device->capture from the menu) to configure an acquisition.

Jawi's latest OLS client has a profile for the IR Toy so setup is a snap. In the Connection Settings tab:

  1. Choose the correct serial port
  2. Set the speed to 115200bps or higher
  3. Choose the USB IR Toy device type

Irtoy-ols-capturesettings.png

Client v0.9.4+ automatically configures the Acquisition tab settings for the IR Toy:

  1. Recording size of 1K
  2. Only the first channel group is selected
  3. Sampling rate of 10kHz so the timing chart aligns properly, but this currently has no actual effect on the IR Toy sampling rate.
  4. All other settings are ignored by the IR Toy

sump-dataii

Now start the capture and sample the remote control signal:

  1. Press capture to arm the IR Toy trigger and wait for a signal. The IR Toy LED lights
  2. The first IR signal triggers the capture. The LED turns off, and 1024 samples are taken at about 10kHz (every 100us)
  3. When capture is complete, the IR Toy dumps the samples back to SUMP. The IR Toy returns to remote decoder mode until SUMP is armed again

Note that the IR Toy inverts the samples. The actual pin readings from the IR receiver are 0 active and 1 idle.

Capture with old SUMP versions

Sump-configii.png

Start SUMP and press the rocket button (or Device->capture from the menu) to configure an acquisition.

The important connection settings are shown above.

  1. In the Connection Settings box, choose the correct serial port and set the speed to 115200bps.
  2. In the Analyzer Settings box set recording size to 1K and make sure only the first channel group is selected. Set the sampling rate to 10kHz so the timing chart aligns properly, but this currently has no actual effect on the IR Toy sampling rate. All other settings are ignored by the IR Toy and don't impact SUMP performance.
  3. Press start to arm the IR Toy trigger and wait for a signal. The IR Toy LED lights.
  4. A change on the IR receiver triggers the sample timer. The LED turns off, and 1024 samples are taken at about 10kHz (every 100us).
  5. When capture is complete, the IR Toy dumps the samples back to SUMP. The IR Toy returns to remote decoder mode until SUMP is armed again.

Note that the IR Toy inverts the samples. The actual pin readings from the IR receiver are 0 active and 1 idle.

Commands

0×00 – Reset, return to RC decoder mode (all modes)
0×01 – SUMP run (captures and sends data to SUMP logic analyzer client)
0×02 – SUMP ID (responds: 1ALS )

SUMP protocol commands are sent to the default IRman decoder mode. These are the SUMP protocol commands that are recognized by IRman mode. Other SUMP commands are ignored.