myfire.gif (7222 bytes)d2klogo.gif (1885 bytes)myfire.gif (7222 bytes)

Second Prize Winners | Third Prize Winners

Grand Prize Winners
DDSGENQuizWizInLine MIDI Monitor

DDSGEN
Robert Lacoste
Chaville, France
robert_lacoste@yahoo.fr

The DDSGEN is a full-featured DDS-based generator that can generate sinusoidal and square signals from 0–120 MHz with a resolution of up to 0.001 Hz. The DDSGEN supports a variety of modulation modes (AM, FM, PM, shaped keying, FSK, PSK), as well as wobbulation (programmed jitter). The DDSGEN can also be extended by daughter boards to implement a full-featured Arbitrary Signal Generator (ARB) and pulse generator. And last but not least, its cost is reasonable. The DDSGEN is primarily built around an AD9852 DDS chip from Analog Devices and is controlled by a pair of Philips 87LPC764 microcontrollers (one main, one dedicated to the user interface).

The DDSGEN features include:

• onboard user interface (2 × 16 LCD, keyboard, rotary encoder)
• all functions can be remotely controlled through a RS-232 connection
• 300-MHz internal clock frequency, standard 100-ppm stability or OVCXO based 3 ppm option
• 0 to 120 MHz output frequency with 0.001 Hz resolution from 0 to 999 KHz and 1-Hz resolution from 1 MHz to 120 MHz
• sinusoidal output from 0 to ±3 V, 12-bit resolution, programmable offset of 0–3 V
• low jitter squarewave output, 3.3- and 5-V compatible
• fully digital AM, FM, PM (amplitude, frequency, and phase modulation) up to 5 KHz with programmable depth, 10-bit resolution; internal modulation generator option
• shaped keying (0 to 100% amplitude modulation based on a digital signal), with programmable slope rate
• digital ramped FSK (Frequency Shift Keying) between any two frequencies; immediate or programmable change rate
• digital ramped PSK (Phase Shift Keying) between any two phases (resolution 12 bits); immediate or programmable change rate
• linear wobbulation between any two frequencies, programmable repetition rate
• 0- to 30-MHz clock with 0.001-Hz resolution, 12-bit amplitude resolution, 1 × 8k-word signal or 8 × 1k-word signals. Serial download of the waveforms through the RS-232 port to an onboard EEPROM
• future optional pulse generator: 10-ns maximum resolution, 24-bit length register/32-bit repetition register
• optional high-precision 3-ppm OVCXO system clock
• future optional ARB (Arbitrary Signal Generator)

The software for the DDSGEN is mainly written in C, thanks to the freeware SDCC-optimizing cross-compiler. The dynamic structure of the DDSGEN embedded software is of the classic (but field-proven) interrupt driven variety. After initialization, a main program manages the user interface and stores in a shared RAM buffer all parameters that need to be loaded into the DDS chip. An interrupt routine, executed each time the DDS chip asks for new values (usually every 200 µs), executes an A/D conversion of the external modulation input and recalculates the frequency and amplitude (and/or phase if a modulation is requested) on the fly and uploads the modified parameters into the DDS chip.

COMPLETE ABSTRACT

QUIZWIZ
Paul Kiedrowski
Fort Worth, TX
kiedro@swbell.net

A common practice for automatic scoring of multiple-choice quizzes or tests is to use a commercially available system based on a desktop card reader machine, which requires that students mark their answers on preprinted forms of specific size and layout. This method is relatively expensive because of the cost of equipment and score cards, and therefore is usually used only for critical testing.

In most cases, because only one centralized scoring machine is available to the teacher, it is not located in the classroom where it would offer the most convenience. Perhaps more importantly, the most useful time to evaluate test results would be immediately afterwards so that teachers could promptly give feedback and discuss the most commonly missed questions. This is especially desirable for periodic quizzes where the intent is to allow the teacher to quickly gauge the classroom’s learning progress.

To answer the above needs, a new scoring device was developed based on the Philips 87LPC764 microprocessor. The QuizWiz uses a single reflective opto-sensor to perform the scanning detection process. To preserve battery power, the opto-sensor LED is only active when QuizWiz is pressed against the paper, which depresses a mechanical switch located on the bottom.

Normal battery current is about 25 mA when all circuits are operating, 15 mA when not scanning, and 20 µA during shutdown. Using three AAA batteries in series, with a typical capacity of 1000 mAh, a teacher can score approximately 100 quizzes for 30 students (i.e., 3000 scans).

QuizWiz uses a simple 3-chip design (processor, 5-V converter, and RS-232 interface). The 87LPC764 is a good match for the required features, and all of its pins and most of its features are used in this project. To minimize cost further, no external crystal is required, because the processor conveniently includes an internal 6-MHz RC oscillator.

For access to quiz scoring details in real time, as they are scanned, the user may connect a PC to the QuizWiz using a standard RS-232 serial port connection at 9600 bps. The QuizWiz automatically detects the presence of the serial port connection, and power usage is reduced when not connected. When the serial port is connected, the PC will receive the results of each quiz as they are scanned and completed. The questions that are wrong will be reported as well. A standard terminal emulator program can be used on the PC, and the results can be copied and pasted into other programs.

COMPLETE ABSTRACT

InLine MIDI Monitor
Robert Morrison
Star, ID
rdm@boi.hp.com

The Musical Instrument Digital Interface (MIDI) is the RS-232 of the musical world. However, much like RS-232, MIDI has its downside. If something doesn’t work, it’s difficult to find out why. The InLine MIDI Monitor was designed to quickly diagnose problems unique to the MIDI environment. The monitor looks like a cable that plugs into a MIDI port and displays the status of the line. The device can be battery powered for quick debugging while on the road, or run from a wall transformer to provide continuous MIDI line monitoring during a performance.

As an amateur classical pianist and synthesizer player, I have a MIDI-compatible piano and MIDI-compatible synthesizer equipment. My biggest nightmare is beginning a solo performance by playing a dramatic opening chord and hearing no sound, except for the clunk of the synth keys. All too often, a cheap MIDI cable prevents data from getting from the keyboard to the rackmount synthesizer box. What’s worse is that I will have to check many things before determining the problem. Is it an incorrect channel setting of the keyboard or synth? An amplifier or mixer line cable that didn’t get plugged in? Maybe a bad MIDI cable?

The MIDI protocol allows every note or other command to be assigned to one of 16 channels, so if there is a channel mismatch between the keyboard and the synth, no sound will occur. Wouldn’t it be nice if I could be reassured that the connections were all working so I could concentrate on the performance? That’s why I designed the InLine MIDI Monitor—an unobtrusive, battery-powered, 87LPC762-controlled monitor that provides visual information about the MIDI connection.

The InLine MIDI Monitor checks for several things and provides its status on a small 5 × 7 LED array. The MIDI Monitor checks for receiver connectivity, active messages, channel information, and note integrity/noise. Because MIDI is a current loop, if the receiving end of the cable is not properly connected, it is easy to detect—this verifies that the rackmount synthesizer is actually present (cable is connected). That may not sound like a big deal, but unless you’ve done time as a band roadie, you don’t know what a rat’s nest of cables are involved in an instrument setup, and might not realize how easy it is to leave some cables unconnected or connected to the wrong device.

The MIDI Monitor will also check for channel settings. This is one of the most common goofs in making sure that MIDI instruments are talking to each other. I will set the keyboard to transmit on channels 0 and 1, but set the synthesizer to receive on channels 1 and 2! If I’m lucky, I will figure it out quickly, hunt down the MIDI channel configuration for both the keyboard and the synth and set them to match.

To solve the problem, the MIDI Monitor will display (in slow sequence) the active channels on the line so I can verify that the transmitting device is functioning and what channels it is sending on. It will also watch for the MIDI active messages that are sent periodically, and display an idle status (IDL) if no keyboard activity is occurring (it displays inactive status (IA) if there are no MIDI active messages at all). With such a powerful tool checking the MIDI cable connection, I can rest easy and concentrate on the performance!

COMPLETE ABSTRACT

Grand Prize Winners | Second Prize Winners | Third Prize Winners