Stereo Audio on a PIC32

The PIC microcontrollers are powerful little devices, and [Tahmid] is certainly pushing the envelope of what these integrated circuits can do. He has built (for educational purposes, he notes) an audio player based on a PIC32 and a microSD card. Oh, and this microcontroller-based audio player can play in stereo, too.

The core of the project is a PIC32MX250F128B microcontroller. 16-bit 44.1kHz WAV files are stored on the microSD card and playback is an impressive 12-bit stereo audio. It can also play back 8-bit files (with some difficulty). [Tahmid] programmed the interface to work through the serial port and it is very minimalistic, mostly because this was a project for him to explore audio on a microcontroller and wasn’t to build an actual stand-alone audio player that he would use from day to day.

Still, even though the project isn’t ready to replace your iPod, the core audio-processing parts are already done if you want to try to build on [Tahmid]’s extensive work. You could even build a standalone audio player like this but have it play high-quality 12-bit stereo audio!

Continue reading “Stereo Audio on a PIC32″

Function Generator with Zero CPU Cycles

No one is sitting around their workbench trying to come up with the next great oscilloscope or multimeter, but function generators still remain one of the pieces of test equipment anyone – even someone with an Arduino starter pack – can build at home. Most of these function generators aren’t very good; you’re lucky if you can get a sine wave above the audio spectrum. [Bruce Land] had the idea to play around with DMA channels on a PIC32 and ended up with a function generator that uses zero CPU cycles. It’s perfect for a homebrew function generator build, or even a very cool audio synthesizer.

The main obstacles to generating a good sine wave at high frequencies are a high sample rate and an accurate DAC. For homebrew function generators, it’s usually the sample rate that’s terrible; it’s hard pushing bits out a port that fast. By using the DMA channel on a PIC32, [Bruce] can shove arbitrary waveforms out of the chip without using any CPU cycles. By writing a sine wave, or any other wave for that matter, to memory, the PIC32 will just spit them out and leave the CPU to do more important work.

[Bruce] was able to generate a great-looking sine wave up to 200 kHz, and the highest amplitude of the harmonics was about 40db below the fundamental up to 100 kHz. That’s a spectacular sine wave, and the perfect basis for a DIY function generator build.

800 inches per minute at 0.00025″ Resolution

The folks over at PONTECH have just released a pretty impressive opensource PIC32 library for controlling a linear slide at speeds of 800 inches per minute!

PONTECH makes the Quick240 (Quick Universal Industrial Control Kard) which is based on the open source chipKIT platform. It was designed for industrial automation systems, where typically a ladder logic PLC might be used. The benefits to using a system like this is that because it is open, you are no longer stuck with proprietary hardware, and it is much more flexible to allow you to “do your own thing”. Did we mention it is also Arduino compatible?

Using this system they’ve successfully controlled two 8″ Velox slides at a whopping 800 inches per minute with a resolution of 0.00025″ — just take a look at the following video to appreciate how freaking fast that is.

Continue reading “800 inches per minute at 0.00025″ Resolution”

An Open Source 1MHz Arbitrary Waveform Generator with an Awesome UI



[Herp] just shared a nice 1MHz Arbitrary Waveform Generator (right click -> translate to English as google translation links don’t work) with a well designed user interface. His platform is based around a PIC32, a TFT module with its touchscreen and the 75MHz AD9834 Direct Digital Synthesizer (DDS). Of course the latter could generate signals with frequencies up to 37.5MHz… but that’s only if two output points are good enough for you.

As you can see in the video embedded below, the ‘tiny dds’ can generate many different kinds of periodic signals and even ones that are directly drawn on the touchscreen. The offset and signal amplitude can be adjusted using several operational amplifiers after the DDS ouput and a separate SMA TTL output is available to use a PIC32 PWM signal. The platform can read WAV audio files stored on microSD cards and also has an analog input for signal monitoring. Follow us after the break for the video.

Continue reading “An Open Source 1MHz Arbitrary Waveform Generator with an Awesome UI”

Building A Home Made iPhone

iThing A few years ago, [Michele] built a mobile device with a touch screen, a relatively powerful processor, and a whole bunch of sensors. To be honest, the question of why he built this was never asked because it’s an impressive display of electronic design and fabrication. [Michele] calles it the iGruppio. Although it’s not a feature-packed cell phone, it’s still an impressive project that stands on its own merits.

Inside the iGruppio is a Pic32mx microcontroller, a 240×320 TFT touchscreen, and enough sensors to implement a 10 DOF IMU. The software written for the iGruppio is heavily inspired by the iPhone and a completely homebrew project – all the software was written by [Michele] himself. While the first version of the iGruppio was a little clunky, the second revision (seen in the pic above) uses an old iPhone case to turn a bunch of boards and plugs into a surprisingly compact device.

No, there’s no cellular modem inside the latest version, but [Michele] has put all the sources up on Github, and anyone wanting to build a homebrew cell phone could do worse than to take a look at his work. Video demo below.

Continue reading “Building A Home Made iPhone”

Measuring Light With ChipKIT

light meter showing LUX value

How does one go about measuring the amount of light in a given area? With a Light Meter of course! Maintaining proper lighting levels can be very important in places like schools, hospitals and even your own workbench.

[Raj] over at Embedded Labs has put together an excellent tutorial on how to construct your very own light meter based upon the chipKIT platform. The chipKIT Uno32 is similar to Arduino, but boasts a much more powerful PIC32MX320F128 microcontroller.  We’ve seen projects that feature the chipKIT Uno (pdf warning) here before. From playing pong to hosting several temperature sensors, it’s certainly a versatile platform.

The light meter uses an I/O shield and communicates to a BH1750FVI digital light sensor via I2C. The firmware divides the raw data coming off the sensor by a constant, and displays the light intensity data on an OLED display in Lux, foot-candles, and Watts/m^2 units. Be sure to check out the tutorial for full schematics and source.

Eloquent universal receiver for your home entertainment equipment


We’re really starting to enjoy the home entertainment control hacks which use a universal receiver to act on commands from any remote. This one is especially interesting as it uses a single remote to control the system but rolls in lots of extras.

Looking at the receiver itself the white plastic dome of the PIR sensor should raise an eyebrow. Since the cable box takes a while to turn on [Ivan] included the motion sensor to switch that component on when you walk into the room. This way it’ll be ready to go by the time you sit down. It does this by sending IR signals from the PIC32 dev board. Of course the board has its own receiver to listen for the remote control commands. The remote buttons have been mapped a bit differently than originally intended. You can see in the diagram above that the normal VCR/DVD/DVR buttons have been set to control the room’s LED strips. There’s even a power consumption monitor rolled into the project. All of these features are demonstrated in the clip after the break.

This is a nearly perfect base setup. But we’d love to see it with a web interface at some point in the future.

Continue reading “Eloquent universal receiver for your home entertainment equipment”