Developing A Better Way To Control 10,000 LEDs

The SoundPuddle project drives thousands of LEDs based on audio input. The team is working on a replacing the controller for this wire-filled setup with something more robust. They took the mess seen above to the Apogaea Festival and were plagued by loose wires and unreliable communications due to noise and interference. The aim of the new system is to reliably control up to 10,000 LEDs.

The red PCB seen at the center of the rats-nest is a Papilio FPGA board. They still want to use it to drive the installation, but a new hardware interface is necessary. The solution is to design what they call a megawing (wings are to Papilio as shields are to Arduino).  The LEDs will be in RGB strip form, so one of the requirements is to supply enough connectors to drive 16 channels of SPI devices. The wing will also include the 48V power source and connectors for the condenser microphone that serves as an input for the SoundPuddle. There are also two other options for audio input, one via a Bluetooth module (which can double as a control device) and the other via MIDI.

After the break you can see a lighting demo. Be ready with the volume controls as most of the sounds used in the test are quite annoying.

Continue reading “Developing A Better Way To Control 10,000 LEDs”

Editing Your FPGA Source

[Dave] noted that in a recent poll of FPGA developers, emacs was far and away the most popular VHDL and Verilog editor. There are a few reasons for this – namely, emacs comes with packages for editing your HDL of choice. For those of us not wanting to install (and learn) the emacs operating system, [Dave] got Notepad++ to work with these packages.

Notepad++ already has VHDL and Verilog highlighting along with other advanced text editor features, but [Dave] wanted templates, automated declarations and beautification. To do this, he used the FingerText to store code as snippets and call them up at the wave of a finger.

As [Dave] writes his code, the component declarations constantly need to be updated, and with the help of a Perl script [Dave] can update them with the click of a hotkey. Beautification is a harder nut to crack, as Notepad++ doesn’t even have a VHDL or Verilog beautifier plugin. This was accomplished by installing emacs and running the beautification process as a batch script. Nobody can have it all, but we’re thinking [Dave]’s method of getting away from emacs is pretty neat.

Driving A PSP Screen With An FPGA

Here’s [FlorianH’s] setup for driving a PlayStation Portable screen with an FPGA. He’s using the DE0-Nano board to do this, and the first order of business was to establish a way to connect the two. He did a great job of etching his own breakout board, which has some traces that are less than 10 mils thick. Soldering the connectors for the screen was a bit of a challenge, and he shared several pictures of the process for your enjoyment.

With everything hooked up he fired it up with just a couple of lines of code to draw a test pattern. From there it was on to building a more intensive driver. [FlorianH] mentioned to us that he’s just starting to learn about FPGAs after having worked extensively with 8-bit microcontrollers. He’s been documenting his work on his site, and finds himself frequently referencing his own material so remember how he did things. Our vicarious enjoyment is an unintended (but welcomed) consequence of that habit.

A Game Of Skill For The North Carolina Maker Faire

The North Carolina Maker Fare was last weekend, and over the course of the festivities  [Dave] was asked for the documentation for the arcade game he built. It’s a neat build, so we’re very glad he chose to share it with us.

Anyone who has been to an arcade in the last 15 years has seen the game [Dave] was inspired by. The object of the game is to hit a button when the sequentially illuminated lights are in a particular position. [Dave] built his own version out of 90 LEDs and a very tiny FPGA dev board.

The 90 LEDs are controlled by the FPGA using charlieplexing, and are illuminated in sequence when the game starts. A heavy-duty emergency switch button modified into a momentary push button takes a hit whenever the player thinks the LED will land in the ‘jackpot zone.’  If the player wins, a buzzer sounds and much excitement is had by all.

Seeing as how the arcade version of this game is a complete rip off and is impossible to win, we really like [Dave]’s version. You can check out his demo video after the break.

Continue reading “A Game Of Skill For The North Carolina Maker Faire”

MyHDL Python Programming Option For FPGA

MyHDL is a Python module that brings FPGA programming into the Python environment. [Christopher Felton] tipped us off about a simple tutorial he just finished that gives an overview of how the module is used.

You may remember hearing about PyCPU a couple days ago which can run very simple Python code on a FPGA. There was a healthy discussion in the comments section comparing PyCPU and MyHDL. Although they may seem similar at first, the two are quite different. PyCPU creates a processor on the FPGA chip which can execute a small range of Python code. MyHDL actually implements Hardware Description Language in the Python environment. Once you’re used HDL to model your hardware choices in a Python script, it is converted to VHDL then fed to the toolchain and pushed to the chip like normal.

This is not an absolute beginner’s experience. But if you’re well-versed in Python it makes the jump to HDL a lot easier because you’ll be working with syntax that is already familiar to you.

Programming FPGAs With Python

If you’ve ever wanted to jump into the world of FPGAs but don’t want to learn yet another language, you can now program an FPGA with Python. PyCPU converts very, very simple Python code into either VHDL or Verilog. From this, a hardware description can be uploaded to an FPGA.

The portion of the Python language supported by PyCPU is extremely minimal, with only ints being the only built-in data type supported. Of course ifs and whiles are still included along with all the assignments and operators. A new addition is a way to get digital IO access with Python, and obvious requirement if you’re going to be programming Silicon.

PyCPU surely won’t replace VHDL or Verilog anytime soon, but if you’re looking to get into FPGAs and the ‘telling a chip what to be’ paradigm it offers, it’s certainly a tool worth looking into.

Hats off to [hardsoftlucid] for sending this in. Our wonderful (we mean that, really) noticed a few mistakes when this was first posted. Those mistakes have been corrected.

Putting Every Chiptune Ever In An FPGA

Finally one device combines the power of the Commodore 64 SID, Atari ST YM2149, and Amiga MOD audio into one awesome box. It’s called the RetroCade Synth, and there’s a Kickstarter that is perfect for starting your chiptune composing journey.

[Jack]’s RetroCade synth is connects directly to the Papilio One 500k FPGA. All the classic chiptune ICs can be emulated in this FPGA including the Commodore 64 SID chip, and an Amiga MOD player. Being a follow-up to [Jack]’s previous FPGA YM2149 project, he also threw that chip into the project for good measure. While the RetroCade doesn’t ship with every old chiptune IC – there isn’t support for NES, Atari, GameBoy, or SN76489-based chiptunes yet – that is something [Jack] will add once the Kickstarter is completed.

After the break you can see [Jack] jamming out on his RetroCade project playing a YM2149, SID, and Amiga MOD sounds simultaneously. For $100, it’s comparable to the venerable MIDIbox SID, but also allows anyone to play whatever genre of chiptunes they desire.

Continue reading “Putting Every Chiptune Ever In An FPGA”