Skip to content

StreamStatusIndicators

Josh Blum edited this page Oct 30, 2018 · 3 revisions

Stream status indicators

Or why your SDR application randomly spews capital letters to the console...

What is a stream status indicator?

A stream status indicator is a single (sometimes multi) character print to the console that a driver produces to indicate some kind of error or warning condition during streaming. Stream status indicators can be produced by the transmit or receive stream implementation. They are totally arbitrary and specific to the driver and hardware in question.

Example, you are running osmotrx or oai and you see an odd group of characters like this:

ULUULLULLUROFLULLLULUULLULLUUUL

In this case, the modem software is having trouble with keeping up with the stream due to random OS latency and processor overhead. Its screaming that the transmit chain has scheduled packets that are late (L) and that the transmit buffer suffered an underflow (U). Because the modem software is paced by the Rx stream, this condition isn't necessarily caused by a transmit issue; if the processing cannot keep up, the problem is only observed by the detection of a late transmit packet.

Commonly used indicators

Many of these indicators are only used with devices that support stream timestamps and bursts, although not exclusively.

  • U - underflow in a transmit stream. Example: The FPGA was streaming from a buffer to the DAC and encountered an empty buffer when it needed the next sample. Maybe the write to the transmit stream did not occur fast enough. Maybe the burst was not ended properly.
  • O - overflow in a receive stream. Example: The FPGA was streaming from the ADC into a buffer, but the buffer was full. The sample was dropped and the error reported. The user should read from the rx stream faster.
  • aU - audio underflow often seen with gnuradio audio sink. Caused by starvation of the audio sink, often because there is an upstream SDR source running at a slightly slower rate due to different oscillators between the SDR and audio chipset.
  • aO - audio overflow often seen with gnuradio audio source. Caused by lack of buffer space for the audio source, often because there is an downstream SDR sink running at a slightly slower rate due to different oscillators between the SDR and audio chipset.
Clone this wiki locally