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

Running Nut/OS on Altera FPGA

Not many hobbyists dare to put hands on FPGA. But now there are tons of information and tutorials that almost any beginner can follow and master these monsters step by step. If you’re done with FPGA LED blinking projects, its time to do more serious projects that involve soft processors running real time OS. Micheal Fischer suggests his series of tutorials on how to setup Altera FPGA board to run Nios II soft processor and even run Nut/OS on it. Three part tutorials gently takes through all steps with rich explanations and visual guides. First part focuses on setting FPGA to run Nios II processor. Second part shows how to compile Nut/OS for soft processor upload it and debug. And in the third part of tutorial you’ll learn how to set up internet radio project and enjoy the musing in earphones. Continue reading

Interesting comparison of Arduino and Papilio running soft Arduino

Duane Benson decided to make interesting comparison between actual Arduino UNO and Papilio FPGA configured to run soft Arduino. We all know that plain FPGA would beat Arduino in no time, but what happens when you need run software Arduino. You can get all you need here to setup Papilio board and even run custom Arduino IDE to program Arduino. Just for the record Papilio running Arduino was configured to run at 32MHz while Arduino runs at 16MHz. It would be different result if FPGA would run at 300MHz. And here are the results. Simple square signal without delay on a single pin: Papilio Arduino: 106kHz; Arduino Uno: 115kHz; and for reference PIC12F1822 gave 1MHz square. Arduino library really slows digital I/O compared to raw AVR performance (this is why PIC beats test here). Another test was measuring program/sketch upload time. Arduino took 2s while Papillio Arduino 6s. Once again, using Papilio FPGA to run Arduino isn’t great idea. FPGA is different concept and is meant to do complex tasks in hardware level. Continue reading

Controlling motor speed using FPGA

Chris continues his tour to FPGA/CPLD programming. This time topic covers a motor control using CPLD board. The idea is simple – read potentiometer value with on-board MAX150 ADC converter and according to its value generate PWM signal that is passed to motor control circuit. Along with motor rotation PWM signal is output to LED bar which gives visual intuition on motor speed and direction. Using CPLD instead of microcontrollers in motor control gives some benefits. Firs of all in CPLD there are hardware modules instead of software flow. So it is more robust and precise process. Another benefit is that you can create multiple hardware modules that work concurrently and thus give precise timing. Continue reading

Capturing ov7670 cam stream using papilio

Voelker have designed a bare-bones for line following robot. He attached an ov7670 camera module to papilio FPGA board and was able to send videos to PC using 30fps. To achieve this he scaled images down from 640×480 to 80×60. And still it took 3Mbaud com speed. He wrote a simple java program that takes data stream from COM port and combines in to display. His next plan is to do edge detection algorithm and apply it to line following robot. For a record, it he didn’t use any soft-core – all is programmed using VHDl and SystemC. Continue reading

FPGA driven PSP screen

PlayStation Portable (PSP) 4.3” screen is cheap true color TFT display. Florian wanted to make use of it and decided to interface display to his DE0-Nano board. He faced couple problems here. First was a difference of voltage levels on FPGA and display side. Since FPGA pins are tied to 3.3V and display require 2.5V he decided that difference is safe enough to drive LCD with 3.3V. Another problem were back-light voltage. It required 20V to light 7 LEDs in series. To solve back-light problem he assembled a boost regulator using LT1932 to rise voltage from 3.3V. He made a nice looking board with some traces less than 10 mils thick. Great job considering that Florian is just starting with FPGAs. Continue reading

Hand motion controlled game of bricks

Game of bricks is a classic game where you have to move a bar on bottom of screen to bounce ball which breaks bricks on top. Guys from Cornell university have designed another version of this great game. They used a DE2 FPGA board connected to VGA monitor. Instead of using mouse or keyboard they went with hand motion control. A CCD camera simply reads hand position images. Hand is recognized by using human skin detection algorithm. After this complex part is done there follow simple control commands like moving hands to sides moves the bar on screen. Hand going up and down speeds and slows bouncing ball. Continue reading