May 052014

Please allow additional travel time.Companion Cube
Hexadeca scrollerDisorient Pyramid, mini version

A few months ago we introduced Octoscroller, NYC Resistor’s eight-sided RGB LED matrix display built with jumbtotron RGB LED matrix panels. The interface “cape” has been reworked twice and the LEDscape source code has been refined to handle various arrangements of panels, from rectangular displays to larger polygons to six-sided cubes and minature pyramids. We’ve also updated the code to receive from OPC and other transmitter formats, in addition to local drawing into a user-space framebuffer.

Jumbotron time!
The good news is that we finally have the supply of panels and control boards to offer a class on building your own mini-jumbotron or other shaped display! Included in the class fee are eight of the 32×16 RGB panels, a BeagleBone Black with the Octoscroller^2 cape (capable of driving up to 64 panels at 30-60Hz), a 10A power supply and the wiring to put it together.

You can print or lasercut your own brackets based on how you want to arrange your panels — OpenSCAD and STL files for the octagon, cube and flat brackets are in the source, and Misumi 15mm extrusion works great for larger structural pieces.

HandcraftedTrammell finishing his mini-Disorient pyramid display of LED matrices.
I’m Trammell Hudson, the primary author of the LEDscape code and the designer of the controller boards and I’ll be leading the three hour workshop at NYC Resistor on May 24th. In the class we’ll solder together the board, install the software on the BeagleBone Black, wire up the eight panels and write a simple program to draw on the panels. I’ll also walk through the PRU firmware that handles the real-time interfacing, although this programming experience isn’t required. Buy your tickets here!

Feb 022014

Firefox on a Mac SEMac SE video driver

It is a truth, universally acknowledged, that an engineer in possession of an antique computer must be in want of hacking it. Last year I reverse engineered the Easter Egg photographs from a Mac SE that I found on the side of the road and that machine has been sitting idle since then, so I took inspiration from NYCR founder Dave Clausen’s six year old 24th anniversary Mac project and turned my old SE into a “30th anniversary Macintosh” with a new ARM motherboard running Linux. Unlike Dave, I was able to interface with the original 9″ CRT thanks to the programmable hardware in the Beaglebone Black.

Mac SE video pulses
The CRT was still in good shape and the m68k motherboard would startup (although we have no media or OS for it) so it was fairly easy to reverse engineer the pinout and waveforms for the combination power-supply and video connector. The all-in-one Macs shared a common power-supply for the monitor, analog board, motherboard and drives, so the same cable carries video, hsync, vsync, +5, -5, +12 and -12 Volts.

Mac SE video driver
With these timing measurements I was able to write a software video card that runs inside the BeagleBone Black’s PRU to display a user-space framebuffer, and then used Xvfb to render X11 into a shared memory buffer that could be exported to the PRU’s memory. Working with a bare CRT like this can be scary — the monitor is not even remotely multisync and vsync a few percent off from its desired 60.1 Hz refresh rate generates very bad buzzing sounds.

[flickr video=12200336913 show_info=no w=640 h=380]
You can enjoy the dithered 1-bit cat videos above and relive the era with monochrome visuals for xeyes and other classic applications. If you want to build your own and see the specifics of the design, there are more details on my website,

Mac SE with a BeagleBone Black motherboard
UPDATE 2014-02-09: Original ADB Keyboard and mouse support is now working. adb2usb source code for a Teensy 2.0.