BeagleBone Black and FPGA Driven LED Wall

LED Wall

 

This is 6,144 RGB LEDs being controlled by a BeagleBone Black and a FPGA. This gives the display 12 bit color and a refresh rate of 200 Hz. [Glen]’s 6 panel LED wall uses the BeagleBone Black to generate the image, and the LogiBone FPGA board for high speed IO.

[Glen] started off with a single 32 x 32 RGB LED panel, and wrote a detailed tutorial on how that build works. The LED panels used for this project have built in drivers, but they cannot do PWM. To control color, the entire panel must be updated at high speed.

The BeagleBone’s IO isn’t fast enough for this, so a Xilinx Spartan 6 LX9 FPGA takes care of the high speed signaling. The image is loaded into the FPGA’s Block RAM by the BeagleBone, and the FPGA takes care of the rest. The LogiBone maps the FPGA’s address space into the CPU’s address space, which allows for high speed transfers.

If you want to drive this many LEDs, you’ll need to look beyond the Arduino. [Glen]’s work provides a great starting point, and all of the source is available on Github.

[Thanks to Jonathan for the tip]

24 thoughts on “BeagleBone Black and FPGA Driven LED Wall

    1. There’s already a full linux box there in the beaglebone black. Why would you want to connect it to another computer? Just wondering why you want that?

    2. If the wall were higher resolution, I’d definitely want to use a video card with some GPUs to drive the panels via HDMI or DVI but for this smallish ”wall,“ the BBB works great and lets me mount the panel anywhere without having to drag along a PC.

    3. DVI ports are actually pretty easy, they need little more than a socket, 8 wires and some logic on the FPGA. You could drop the BeagleBone completely from the design.

  1. At 600x400mm, although it’s impressive, it’s not exactly a ‘wall’…

    When I used to work as a stagehand I dealt with plenty of what I remember as 20×15 arrays of 8×8 LED blocks, roughly 2000x1500mm overall. Maybe 20 or more of these would be assembled together to create giant video backdrops for the performer. 6000 LEDs here is crazy, but 384000+ is insane. Some LED manufacturer must be making big money from the entertainment industry…

    1. The most impressive video wall installation I’ve seen is the Comcast building lobby in Philadelphia. It’s the world’s largest 4mm pitch LED video wall w/ ~10 million RGB LEDs.

  2. So… the FPGA does all of the hard work and the BBB (Dark Ritual) just generates the image and passes it off to the FPGA, which does all of the heavy lifting?

    1. Exactly. For example, the software to display a static image pushes the image into the FPGA over the GPMC bus then quits. The FPGA drives the panels from there.

      1. A perfect example of why you might want to marry an FPGA with an embedded Linux system. The BBB is just sitting there waiting to do all kinds of cool visualizations without having to bother with the particulars of driving the display.

    2. Pretty much, yes. FPGAs are good at high speed IO with precise timing. Better yet they are inherently highly parallel, so rather than bumping up the clock further he could have set up a second data bus and run that in parallel with the first.

      What they are less good at is complex control logic, which is why it is common to implement a soft CPU core in an FPGA design for that kind of work, or with the latest ZINQ/ Cyclone V designs include one or more hard ARM cores on the chip.

      1. One common task for an internal CPU core is running a complete TCP/IP networking stack. This is often less expensive than adding an external CPU to the design to run the same networking stack.

    3. Actually, it is not as impressive as it looks. FPGA can drive things way faster than this. I am myself waiting for such panels to test a 15 bit color output, and i had to use a very slow clock to drive them without much noise. When it arrives and after some tests I’ll publish some info.

      Alvie
      ZPUino project

      http://www.alvie.com/zpuino

    1. The PRU will do it but the refresh rate is quite a bit slower which can be a problem if you’re sensitive to flicker or are photographing or filming the results. See @qrs on twitter for details on using the PRU to drive these panels.

      1. Not the same thing at all. That source is to drive WS28xx LEDs, which have their own onboard 8 bit per colour PWM. You feed them a serial data stream @800Kbit/sec and they do the rest themselves.
        This, on the other-hand, has non-PWM LEDs that are effectively being PWM’d by a 25MHz parallel data stream from the FPGA, so about two orders of magnitude slower.

    1. Good idea! Might have to run to the local plastics dealer and get a sheet of frosted acrylic and give it a try.

    1. I bet it was amazing. Any idea how much they wanted for it? Probably the sort of thing you rent for a two to three day event rather than buy.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s