Building A Spectrum Analyzer With Parallel Processing

fft

It’s the end of the semester for [Bruce Land]’s microcontroller design class at Cornell, and the projects coming off the workbench this semester look as awesome as any before. For their final project, [Alexander Wang] and [Bill Jo] designed an audio frequency spectrum analyzer using two microcontrollers in a parallel setup.

This spectrum analyzer takes an audio signal from an iPod, phone, or CD player through a 3.5 mm jack and displays the level for dozens of frequency bands much like an audio visualizer in iTunes or a nice car stereo display. To display these frequency bands, the spectrum analyzer first needs to perform a Fast Fourier Transform on the incoming audio signal. While FFT is extremely fast, the calculations are rather hardware intensive; calculating the frequencies and displaying them on a TV would be a bit much even for the ATMega1284 used in the project.

To graph the audio signal on their small display, [Alexander] and [Bill] broke the build up into two parts – one to do the math on the audio, and another to generate the NTSC video signal for the display.

As seen in the video after the break, the spectrum analyzer works wonderfully, and even though it only functions up to 4kHz, it’s more than enough to see what’s going on in most music.

Continue reading “Building A Spectrum Analyzer With Parallel Processing”

Online Radiation Monitoring Station

geiger-counter-build

This is a Geiger counter which charts its readings on a webpage. [Radu Motisan] put a lot of time into the build and it shows. This thing is packed with features and the hardware choices were the best combinations found through several iterations of development.

In addition to radiation levels the sensor unit takes several other measurements. These include temperature, humidity, luminosity, and barometric pressure. All of the sensor data is monitored and gathered by an ATmega168 which can be charted on a webpage with the help of an ENC28J60 Ethernet chip. The collection and display of this data is detailed at the post linked above.

For those interested in the hardware development, [Radu] published many updates along the way. These are available in his forums posts, as well as his build log. He doesn’t have any videos of his recent work, but way back in May he did publish a clip (found after the break) which shows the testing of different Geiger tubes.

Continue reading “Online Radiation Monitoring Station”

Voice Controlled Video Game Uses “Biu” And “ahh” For Control

voice-controlled-gaming

This video game gives your thumbs a rest while stretching those vocal chords. The pair of microphones seen above control the video game on the LCD display. Saying “Biu” will launch a projectile while “ahh” adjusts the flight path. The system was developed by [Tian Gao] as a final project for his ECE 4760 course at Cornell University.

The inputs are common computer microphones connected to some processing circuitry which he built on a piece of protoboard. This consists of some RC filtering and an LM358 opamp to get the signal ready for use with the ATmega1284. There is only one ADC on that chip so [Tian] alternates sampling from the microphones by using the multiplexer built into the chip. The video signal itself is an NTSC composite signal. To facilitate a reasonable frame rate he uses graphics that are packed in multiples of 8-bits. All in all this allows him to create a 160×200 pixel display.

All of this makes the game sound a little dry, but we dare you to listen to the video clip after the break without cracking a smile.

Continue reading “Voice Controlled Video Game Uses “Biu” And “ahh” For Control”

MSP430 Bit Banged USB 1.1

msp430-usb-hardware

Here’s a rather exciting development for those who work with MSP430 microcontrollers. [M-atthias] worked out a way to implement USB 1.1 on a MSP430G2452. He’s bit banging the communications as this hardware normally doesn’t support the Universal Serial Bus. This is much like using the V-USB stack for AVR micros.

The test hardware seen above uses an 18Mhz crystal to get the timings just right. As this squeezes the most out of the chip it should come as no surprise that the firmware is written in assembly. This is still quite early on in development but the core features are mostly there, having been implemented and debugged over several versions already. Currently the base functionality can be loaded using under 2k of flash memory. You can download the Mecrisp package from [M-atthias’] sourceforge page. If you want to lend a hand testing or developing it would be greatly appreciated.

[via 43oh blog]

PhatIO Uses File System To Control External Hardware

[Andrew Smallbone] wrote in with a link to his latest open source project. This is phatIO, a USB I/O device that uses a mass storage file system for control. The idea is that any operating system can manipulate files on a USB storage device. This enumerates as mass storage, and any alterations you make to its file system will result in pin manipulation on the I/O header.

We’ve long been Linux advocates and enjoy the fact that everything on a *nix system is a file. This simply extends the idea across multiple platforms. [Andrew’s] guide for the hardware gives an overview of how the system is structured. The top ‘io’ directory contains sub-directories called mode, pins, status, and a few others. Inside the directories are files for each pin. Writing to these files has much the same effect as writing to a data direction register, port register, or reading a pin register on a microcontroller.

The board is not yet in production and the github link to his hardware files gives us a 404 error. But there is code available for several software demos. After the break we’ve included video of the phatIO driving a Larson scanner.

Continue reading “PhatIO Uses File System To Control External Hardware”

USB Keyboard Becomes An AVR Programmer

[Steve] created an AVR programmer using an old USB keyboard. We feature a bunch of AVR programmers, but this one is made from parts that many people will have lying around. There are two components: the controller PCB from a USB keyboard, and an optocoupler for emulating key presses.

In order to send data to the AVR, [Steve] used the LED outputs on the keyboard. These LEDs can easily be toggled according to the HID device specification. They provide a 5 volt output with current limiting resistors, which means they can be connected directly to the target AVR.

Reading data is a bit more complex. The optocoupler tricks the keyboard into believing that a single key has been pressed, firing off a data transfer. The MISO pin on the AVR is connected to the row and column of the shift key, which is read by the driver.

On the software side [Steve] created an avrdude interface driver. This allows the programmer to be used with avrdude, just like any other programmer. [Steve] does point out that it isn’t the fastest programmer since the keyboard tries to debounce the MISO input, greatly limiting the speed. However, since it’s made from stuff you might have in your junk bin, it’s a neat hack.

MSP430 Launchpad Game Of Life Shield

[100uf] built an LED matrix shield for the MSP430 launchpad. His goal with this design was to have it play Conway’s Game of Life. It does just that, as you can see in the clip after the break. But it’s just waiting to learn some more tricks. After he tires of watching the cellular automaton he can try his hand at making some LED pendant animations.

As you can tell, the board was made in his home workshop. It’s not etched, but milled using the CNC machine shown in this image gallery. This is a single-sided PCB, which works well enough for the surface mount components and the downward facing pin sockets. But we wonder how difficult it was to solder the legs of that 8×8 LED matrix. It does have plastic feet at each corner that serve as standoffs to separate the body from the copper layer. But it still looks like a tight space into which he needed to get his iron and some solder.

Continue reading “MSP430 Launchpad Game Of Life Shield”