Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Synthesizing ocarina sound using FPGA

Ocarina is a flute like musical instrument with several holes to change tones of pretty complex sounds. Cornell Students decided to synthesize ocarina instrument using FPGA direct synthesis algorithm. First of all they analyzed original ocarina sound spectrum to get amplitudes of each harmonic so they could create state machines to output them when played. as it is air instrument they attached microphone to get air flow intensity which controls the volume of output. Simple six button board substitutes holes to change pitch. The results as you can see in the video are good enough to say that its ocarina like. Continue reading

Playing MP3 and WAV on FPGA

When there is an MP3 involved you usually pick some microcontroller and decoder chip that takes all the workload. Check out a bit different work where all work is done using FPGA. The hardware is based on Sartan 6 XC6SLX9 along with 512K of SRAM and stereo DAC. Inside FPGA there is a soft-core 32 bit processor running at 60MHz which decodes MP3 using Hellix decoder library. MP3 files are stored in MicroSD flash card. As a result audio player is capable of playing MP3 and WAV files at 320Kbps. 44.1kHz audio is a 3% slower but seems this isn’t noticeable and so acceptable. Continue reading

Altera DE2 FPGA midi converter

If you know a bit about MIDI then you know that you can create music files out of notes. There are plenty of PC software that allows doing that. This Visual Music Composer tries to get rid of PC. Project is based on Altera DE2 FPGA board and this is where whole fun happens. Since there is no PC board has to take care of human input interface where PC keyboard is used. You can’t write notes if you don’t see them. So a another part is a VGA output – you can see what you’re doing on VGA screen. And of course there another hidden part – the brain “music reader and converter” which resides inside FPGA chip. Code reads whats been input by user and then converts music data in to audio signal. The interface is fairly simple. In VGA screen you can see a set of available notes and other music specific symbols and then you have music sheet where you can pick and place notes. It has lots of limitations. Seems it can’t play chords and… Continue reading

Adaptive noise canceler on DE2 baord

Guys Jiawey and Jinda from ECE5760 class have build an adaptive noise canceler as their final project. Algorithm is based on least-mean-square (LMS) routine which is simple and efficient. Without going to deep in to theory of operation we can mention that algorithm is filtering noise contaminated signal in real time. To do so, it needs two inputs, one for reference noise and another for signal which is contaminated with noise. Both inputs are fed in to DE2 board where algorithm filters noise out and produces cleaner sound to speakers. Continue reading

Play music with your fingers on a sheet of paper

The guys from Cornell designed an interesting system that allows playing music on a paper with only fingers. The idea is simple but another talk with implementation. They took a camera to capture area where playing is performed. Then each area is divided in sectors with different instruments like keyboard, drum. FPGA has to detect finger by recognizing human skin and then determine its position. As they say – the most challenging part of the project was detecting human skin. They escaped with pretty simple solution where normalized RGB values are analyzed. In order to get piano like music sound they used Karplus-Stron algorithm which models the behavior of string vibration. For drum signal they modeled a wave propagation on a mesh surface. They put all system in to two FPGA DE2 boards where one takes care of detecting fingers and generates piano sounds while another takes care of drum sound. Continue reading

FPGA based prime number generator for RSA encryption

RSA encryption and decryption algorithm operates with prime numbers. If are familiar with RSA encryption you know that here involves two keys – public and private. In order to generate these we need a two prime numbers p, q to calculate modulus n=pq. Prime numbers are numbers that has no other divisor than 1 and itself and is greater than 1. For instance prime numbers are 2, 3, 5, 7, … Finding prime number is a first task that FPGA has to do. There are many algorithms that may help finding prime numbers. Cornell university students are using Rabin-Miller Strong Pseudoprime Test probabilistic algorithm that allows to test if number is prime. With large numbers like 1231164598461316549… you cant test all division variants that would take endless time. Anyway theory is way deeper here that we are capable to cover. FPGA is pretty fast to take multiple tests on number to determine prime numbers. And as you guessed these numbers are used to generate RSA keys to encode message. NiosII soft processor is used to help with encryption. They also… Continue reading