BUZZ - version 1.0

A fun demo program for real-time computing with Linux

by Rob Butera (robert.butera@ece.gatech.edu)
Last updated: 22-Apr-2000
Current Version: 1.0

  1. What's new?
  2. Introduction
  3. What is it?
  4. How does it work?
  5. How do I install it?
  6. History

What's new since version 0.9:

Intro

This is the latest version of BUZZ, a program that demonstrates how to program a variety of tasks using a real-time flavor of Linux. The present version is based on RTAI-1.1 (http://www.rtai.org). With some mods to the API and shared memory, it should be very easy to port to RT-Linux (http://www.rtlinux.org).

This program demonstrates how to program a variety of common tasks using RTAI. It includes shared memory, fifos, and periodic processes.

What is it?

The speaker in a PC is a relatively unimaginative piece of hardware. It is driven by a single digital line that can be set high or low by writing to I/O port 0x61. It was intended for generating "beeps", and not much else.

BUZZ is a program that generates a frequency-modulated tone out of the PC speaker. The user can interactively specify the center frequency of the modulation, the amplitude of the frequency modulation, the modulation rate, and the waveform type (square, sine, rampup, rampdn, sawtooth).

How does it do it?

The realtime process (buzz_module) generates the sound, subject to parameters passed through it via a FIFO and shared memory. Briefly:

How do I install it?

buzz-1.0.tgz. This is the most recent version. It is a tarred and gzipped archive. Download it.

We assume that RTAI is installed in /usr/src/rtai-1.1. This program was developed using RTAI v1.1 with the 2.2.13 kernel. If you don't have it, go get it at http://www.rtai.org and install it.

untar the package in /usr/src/ (it will make a directory named buzz).
cd /usr/src/

tar xzvf buzz-1.0.tgz

cd buzz

make all

should make both buzz_app and buzz_module.
runme

will load the necessary modules and run the program.

The program is interactive with a text prompt, type "help" for a list of commands.

History

Version 0.9 was developed on a 486DX4-75MHz Compaq Contura laptop computer, running RedHat 4.2 with an updated kernel. It has also been tested on a 266MHz Pentium II running RedHat 5.1. Interesting, the speaker on the laptop sounds a lot better.

Version 1.0 and later were developed on a HP Omnibook 900 laptop computer, running SuSE 6.3 and Linux kernel 2.2.13 on a 366MHz mobile Pentium II processor.