« January 2008 | Main | June 2008 »

March 2008 Archives

March 10, 2008

Coachella

For the past few months, and really accelerating in the last couple of weeks, Dad and I have been working on a new piece, set to debut at the Coachella Valley Music and Arts Festival April 25-27. At its core will be a much improved spherical display with high-res surface complemented by volumetric accents, all in 24-bit color. On-board will be on the order of 10GB of removable flash memory, combining the increased resolution and color depth with a much greater potential show length as well as much easier program changes. All of this will lend itself toward a renewed focus on content, which is a very exciting thing for me as a big step toward the high-definition three-dimensional canvas which I originally envisioned with the ORB.

To make this a reality, I've finally crossed the void into the world of FPGA, and I'm loving it. The ability to quickly create massively parallel hardware in a few lines of code is really powerful. It takes a bit of getting used to, but within a few days I was generating the beginnings of working code in VHDL, largely with the help of Volnei A. Pedroni's Circuit Design with VHDL and the Altera Cyclone III Starter Kit. Now, just under a week into serious development, I feel as though I've got a pretty good handle on things, so the learning curve isn't as steep as it initially seemed, particularly if you've got some crossover experience developing both software and hardware.

As is unfortunately too often the case though, the learning curve seemed steeper when it came to using some of the pre-existing libraries I found. I needed SPI to access the flash memory, and so I started looking for libraries. The Altera board shipped with Quartus II which I'm using for all of my development and is a pretty nice package. Quartus leads you directly to Altera's NIOS soft-core processors with all kinds of great add on modules. These designs are cool because they allow you to set up part of the FPGA to act as a microprocessor meaning you can develop in a typical procedural language like C where appropriate, using the hardware definition languages only where necessary. The demos were easy to walk through and I thought I had everything figured out — until I read about the $2500 per seat licensing fee.

I'd heard of OpenCores and it sounded like a really cool project so I thought I'd check it out. OpenCores is essentially Sourceforge for HDL (hardware definition language) designs, albeit much less trafficked. It appears that there is some great work going on there, but at my level of knowledge, the documentation was just insufficient for my needs. If I really needed a fully-featured CPU running on my chip I'm sure I could have figured it out given enough time, but as it stands it's far from plug and play. And as the countdown timer on coachella.com continually reminds me, the show starts in 45 days, 17 hours, 28 minutes and 26 seconds. So it's time for action.

As it turned out, I spent a bit more time tweaking the SPI module I had been writing prior to looking at the soft cores, and with just a bit more effort, got it up and running. I then began work on a state machine that controls the SPI module and passes the data out to a set of PWM modules which actually control the LEDs. I'm still working on scaling the code and getting some of the finer control functionality implemented, but all indications are that with a few more days of work the code will be 99% complete. Then its on to PCB design, construction, and content.

In parallel with the electronics, Dad's hard at work building two chassis, one to ship to Manhattan for me to use as a framework to finish the electronic development and another to finish out in time for Coachella. We've got a totally new look this time, a bit more design-influenced and incorporating some cool high-tech materials. I'll get some photos of that part of the process up here as soon as they become available.

In the meantime, it's back to work.

March 23, 2008

New Tools

It's also worth mentioning with respect to the new piece for Coachella, that I've acquired a few new tools that are making the process much quicker and easier. First and foremost, and really the centerpiece of it all, is the new Tektronix TDS3024B Oscilloscope. This baby has been on my wishlist ever since playing such a huge role in my senior design project success back at UIUC, and with the days counting down fast to Coachella, I decided I needed all the help I could get, and it really has been a big help.

I often describe working on electronics without a good scope as being comparable to trying to work with your eyes closed. It's not necessarily impossible but it increases both the time and frustration of even simple tasks by orders of magnitude. It's much easier to work intuitively when you can see what's happening right before your eyes. The image above, which I grabbed just to confirm that the duty cycle of the PWM was changing (in this design, the duty cycle of the PWM is also capable of changing faster than the eye can perceive), shows in yellow, pink, and green the CS, MOSI, and MISO lines from the FPGA to the SD card, and in cyan one of the channels of PWM out to an LED. Prior to this I had an old Tek265 analog scope which was useful in many circumstances, but for things like the serial bus debugging of the past few days, just didn't do the job. The 3024 has 4 channels @ 200MHz with all sorts of advanced measurement capabilities, FFT, advanced trigger, and a 640x480 color LCD. It also sports its own internal web server so getting screen captures is as simple as opening a web browser. The only negative is that when debugging a 50MHz serial bus on a 200MHz scope, the waves are pretty distorted, so a higher bandwidth wouldn't hurt. I wouldn't trade the advanced features for more bandwidth though, and to up the bandwidth to 500MHz crosses the line into 5-figure territory, which just wasn't in the cards this time. The reality is that the 3024 has been capable of everything I've asked, and I couldn't be more pleased with my decision on this one.

Also very helpful has been the Intronix LA1034 LogicPort USB Logic Analyzer. A logic analyzer is essentially an oscilloscope that trades the ability to see analog voltage levels for the ability to see lots of channels at once — in the case of the LogicPort, 34. It's somewhat limited in its sample storage capacity, which limits the length of data you can view at one time, but it mostly makes up for this with really smart triggering, which lets you focus that limited view on exactly what you want to see. The software also decodes serial buses, so it turns the SPI data and clock wave forms into hex that you can read directly (shown in the image below), which has been invaluable in the past few days. It's also an incredible bargain, when you compare with hardware solutions that (in Tektronix) start at $10k. The LogicPort is no $10k piece of gear, but it's a great addition to the lab that I'm very glad to have made. Plus, it's made in the USA by a small American company doing great work, which is always nice to support when the opportunity arises.

Music

Where am I?

Recent Photos

Powered by
Movable Type 3.35