Slicer Decoding


Slicer History

A slicer is a small (usually) homemade circuit in use for many years (since the late 1990s) for decoding radio signals. The device plugs directly into a standard serial port. It feeds discriminator audio (from a radio) to a comparator circuit. Each time the signal crosses the zero threshold (low to high or high to low), the device produces an interrupt event on the host computer. The computer makes timing measurements to determine the pulse widths of the binary data. The technique works great on DOS and Windows 95; it does not work well under Windows NT, Linux, Unix or Mac OS/X. Unitrunker does not support the classic slicer.

Modern Slicers

Modern slicer designs place the data on the received data line (the RxD pin) allowing the serial port to operate normally. No special device drivers and no need to circumvent the host operating system. There are two variations - the time slicer and the symbol slicer. The "bit banger" feature of the Opto Comm is an early example.

Time Slicer

The time slicer samples the data at a fixed rate and places those samples on the data line where they're picked up by the host computer for further processing. This is similar to using an audio input to sample the discriminator audio signal. The difference is the samples are much smaller - one or two bits - instead of the typical 16 bits for audio. Contrary to popular belief, the sample rate does NOT need to be an integer multiple of the desired protocol's symbol rate.

The Bitstream is a free software implementation of a time slicer. It runs on the off-the-shelf Arduino family of microcontrollers (around $30 USD). The Arduino UNO is the most common. Unitrunker offers experimental support for this device. Feed discriminator audio to the bitsteam enabled UNO. The UNO will provide a stream of raw bits over a serial port. Credit for the bitstream code goes to someone whose online nickname is "Ground Loop."

Advantages are:

Disadvantages (which may change over time) are:

At the moment, the bitstream is limited to wide and narrow EDACS, Motorola, and possibly MPT1327. A new Bitstream - improved in 2012 - operates at a rate high enough for 9600 bps EDACS.

Beware that support for this is experimental. Features and functionality are likely to change. At the moment, Unitrunker's forthcoming release 23 should support time slicer decoding from the first channel of a bitstream device. I don't own one of these nifty toys so I can't test directly. Support for multiple input channels may be added later.

Symbol Slicer

The symbol slicer adds an extra processing step of collapsing the bitstream into individual symbols. The downside is the device must make assumptions about the underlying protocol (such as the baud rate) to provide a stream of symbols. This design has become popular for pager decoding. None of the operating modes on the commercially available symbol slicer (which uses a PIC based microcontroller) are compatible with trunked radio decoding. The pager protocols run at different baud rates. In contrast, the time slicer defers this extra step to the decoding application which can select the correct protocol. Unitrunker does not support symbol slicers. However, should a trunking protocol compatible symbol slicer appear - Unitrunker will likely support it.

Update summer 2013: rumor has it this slicer may support a time slicing mode in the future.

© Copyright 2011-2013 Rick Parrish