Cornell Students [Sean Carroll], [Gulnar Mirza], and [James Talmage] designed a realtime pitch shifter to run on their DE1-SoC and controlled by its ARM core.
The team’s goals were to pitch-shift the left and right outputs independently, to produce chords using the original voices as well as the pitch-shifted ones, and time-delayed pitch shifting. All of it is controlled on a VGA monitor through a simple GUI, allowing users to create lots of different effects by layering the different options.
Under the hood they made use of dual circular buffers to do the pitch shifting, reading in the sample and then using simple fixed-point arithmetic to modify it, then running the signal through a Butterworth filter to clean up artifacts.
The project was built as part of [Bruce Land]’s ECE5760 class. If you’re looking for more DE1 goodness, you’ll find excellent projects aplenty on Hackaday, including the LED Matrix Audio Visualizer from last year and Synthesizing Strings on a Cyclone V, among many others.
Continue reading “Voice Shifting with a Cyclone V FPGA”
Reconfigure.io is accepting beta applications for its environment to configure FPGAs using Go. Yes, Go is a programming language, but the software converts code into FPGA constructs, so you don’t need Verilog or VHDL. Since Go supports concurrent routines and channels for synchronization and communications, the parallel nature of the FPGA should fit well.
According to the project’s website, the tool also allows you to reconfigure the FPGA on the fly using a cloud-based build and deploy system. There isn’t much detail yet, unless you get accepted for the alpha. They claim they’ll give priority to the most interesting use cases, so pitching your blinking LED project probably isn’t going to cut it. There is a bit more detail, however, on their GitHub site.
Continue reading “You are Go for FPGA!”
[Claire Chen] and [Mark Zhao], students in [Bruce Land]’s ECE5760 class at Cornell, created a project aimed at the manufacturing sector: quality-checking manufactured products automatically by visually scanning a bunch of them and processing the pixels one at a time. Ordinarily, the time when the widget comes off the line is when you have to bring in actual people to inspect. This project uses morphological image processing to like dilation and erosion to look for flaws.
[Claire] and [Mark] created a simulated manufacturing line with a servo-driven belt that brings a series of Spree candies into the range of a camera, which scans them. The SoC with a Cyclone V FPGA and ARM Cortex-9 then processes the raw images to establish the object’s color, while running it through a couple of algorithms to look for defects. The FPGA tracks how many Sprees that have passed by as well as their color, maintaining a 99% success rate with a rate of 5-10 frames per second. The FPGA also looks at each blob of color as a collection of pixels, establishing connectivity to help to distinguish multiple Sprees touching each other.
Also be sure to check out [Claire] and [Mark]’s bike sonar project from a previous semester.
Continue reading “Quality Assurance Through FPGA”
The history of Commodore 8-bit computers ends with a fantastically powerful, revolutionary, and extraordinarily collectible device. The Commodore 65 was the chicken lip’ last-ditch effort to squeeze every last bit out of the legacy of the Commodore 64. Basically, it was a rework of a 10-year-old design, adding advanced features from the Amiga, but still retaining backwards compatibility. Only 200 prototypes were produced, and when these things hit the auction block, they can fetch as much as an original Apple I.
For their Hackaday Prize entry, resident hackaday.io FPGA wizard [Antti Lukats] and a team of retrocomputing enthusiasts are remaking the Commodore 65. Finally, the ultimate Commodore 8-bit will be available to all. Not only is this going to be a perfect replica of what is arguably the most desirable 8-bit computer of all time, it’s going to have new features like HDMI, Ethernet, and connections for a lot of FPGA I/O pins.
The PCB for this project is designed to fit inside the original case and includes an Artix A200T FPGA right in the middle of the board. HDMI and VGA connectors fill the edges of the board, there’s a connector for a floppy disk, and the serial port, cartridge slot, and DE9 joystick connectors are still present.
You can check out an interview from the Mega65 team below. It’s in German, but Google auto-generated and auto-translated captions actually work really, really well.
Continue reading “Hackaday Prize Entry: The FPGA Commodore”
I’m always on the lookout for a quality addition to my lab that would respect my strict budget. Recently, I’ve found myself pushing the Hertz barrier with every other project I do and hence desperately wanted a high bandwidth scope. Unfortunately, only recently have 70 MHz to 100 MHz become really affordable, whilst a new quad channel oscilloscope in the 500 MHz to 1 GHz range still costs a fortune to acquire. My only option was to find an absolute miracle in the form of an old high bandwidth scope.
It seemed the Gods of Hand Me Down electronics were smiling upon me when I found this dumpster destined HP 54542C. It appeared to be in fairy good shape and was the Top Dog in its day. But something had to be broken right? Sure enough, the screen was clearly faulty and illegible. Want to know how I fixed it? Four letters: FPGA.
Continue reading “FPGA Rescues Scope From The Dumpster”
There are two radio modulation schemes everyone should know. Amplitude modulation changes the amplitude — or ‘volume’, if you will — of a carrier frequency and turns all radio into channels owned and operated by a church. Frequency modulation changes the pitch of a carrier frequency and is completely run by Clear Channel. Amateur radio operators are familiar with dozens of other modulation schemes, but there’s one hardly anyone touches. Phase modulation is weird and almost unheard of, but that doesn’t mean you can’t implement it on an FPGA. [nckm] is transmitting audio using phase modulation on an FPGA (Russian, here’s the Google Translatrix).
This hardware is just an Altera MAX10 board, with a single input used for serial data of the audio to be transmitted, and two outputs, each connected to a few bits of wire for a quarter-wave antenna. No, there’s no output filter or anything else except for a few bits of wire. It’s an experiment, chillax.
The Verilog for this project receives an audio signal as serial data in mono, 22050 BPS, 8-bit unsigned samples. These samples are fed into a dynamic PLL with phase shift in the FPGA. Shifting the phases also changes the frequency, so [nckm] can receive this audio signal with the FM transmitter on his phone.
Is this really phase modulation if it’s being received by an FM radio? Eh, maybe. PM and FM are closely related, but certainly distinguishable as modulation schemes in their own right. You can grab [nckm]’s code over on the gits, or check out the video demo below.
Continue reading “Phase Modulation With An FPGA”
Programming an FPGA with Verilog looks a lot like programming. But it isn’t, at least not in the traditional sense. There have been several systems that aim to take C code and convert it into a hardware description language. One of these, cynth, is simple to use and available on GitHub. You will need to install scala and a build system called sbt, if you want to try it.
There are limitations, of course. If you want a preprocessor, you’ll have to run it separately. You can’t use global variables, multiplication, floats, and many other pieces of C. The compiler generates a Verilog file for each C function.
Continue reading “FPGAs in C with Cynth”