I like to take things apart. Sometimes they work when I'm done. I've been a member of NYC Resistor since 2010 and you can see more of my projects at


 Uncategorized  2 Responses »
Jun 022014

Two weeks ago we salvaged two PDP-11/34 minicomputers, VT1xx terminals and assorted parts. Since then we’ve spent some quality time in the 1970s, cleaning Unibus contacts, reseating cards and replacing bad capacitors in the VT100 analog boards. Both of the CPUs start up fine and we’ve been able to read data from all of the RK05 and RL01 drive units. Still haven’t touched the tape drives, so no digitized monkey brains yet. Instead, here is a video of running Colossal Cave Adventure compiled from the original FORTRAN IV sources under RT-11v4 on our PDP-11/34:

 Posted by at 9:31 pm
May 152014

PDP-11/34 cabinets

We rescued two PDP-11/34 computers and their associated equipment from a storage unit in the Bronx and have been working on getting them running again. The computing system included multiple RK05 hard drives, two RL02 decpack drives, a TU11 tape drive and tons of media, including “digitized monkey brains“. Read on for more details and the exciting boot sequence.
Continue reading »

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!

Apr 092014

NYCR floor painting: BeforeNYCR floor painting: before
Did you ever notice how beat-up the floors were at NYC Resistor? Four years of rolling chairs had done horrible things to the paint, so we did something about it last night.

NYCR floor paintingNYCR floor painting
Everybody pitched in with a massive effort. While the painting only took from 22.8 to 73.3 .beats, the spring cleaning, organization and preparation took all weekend.

NYCR floor paintingNYCR floor painting
Zach was the last Resistor painting and escaped by taking the elevator. We turned off the lights and let the first coat dry overnight. The second coat will be dry in time for Craft Night. So come hack with us on a freshly painted floors!

 Posted by at 10:46 pm
Feb 252014

The Spikenzie Labs Solder:Time Desk Clock is a fun through-hole kit to solder together. It includes a snap-together lasercut acrylic case with a really nice red tinted screen that increases the contrast on the 20×7 red LED matrix. Plus it is totally hackable with quite a few unused pins available for expansion (like Holly’s sunrise alarm clock).

The kit is available from Adafruit and I’ve written more information on information on programming custom firmware for the Arduino-compatible ATmega328P that is the brains of the clock.

Feb 092014

Voronoi shadows

Given a set of points, the Voronoi tessellation creates a set of convex polygons that each contain one point. They can also be used to randomly generate unique art pieces that cast shifting, lace-like shadows. This one was really quite beautiful until the candle burned through…

Read on for some scripts to make your own and tips for laser cutting them.
Continue reading »

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.

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.

Dec 082013

Adafruit FLORA and Neopixel ring

Next weekend at NYC Resistor we are teaching a class on the Adafruit FLORA and Neopixel. These round Arduino compatible controller boards are a great base for wearable projects like watches, jackets and neck ties, as well as holiday decorations. Bring your laptop and we’ll teach you to make the LED ring blink with patterns of your own design. No prior programming required. The class fee includes a FLORA board, batteries, cabling, 4 RGB LED pixels and a 16 RGB LED ring.

Nov 182013

AVR RFID with extra capacitor

Last year we wrote about building HID Proxcard RFID tags with attiny85 microcontrollers (based on Micah’s avrfid.s code). The C version only supported classic 26-bit cards, but I recently needed to support the “secure” HID Corporate 1000 35-bit format.

Based on Daniel Smith’s writeup on the format and some digging around, I figured out that the MFG_CODE for this format is 10-bits long with the value 0x005. He also pointed out that the 26-bit firmware had the wrong code — it is not the 20-bit code 0x01002, but is instead the 19-bit code 0x0801 and the bottom bit is part of the parity computation for the card id. If you’re using a HID branded Proxcard reader, the value that it outputs is the entire data portion, including all of the parity bits, but does not include the MFC_CODE part. If anyone knows of a table of these codes, please let me know!

I’ve updated my firmware with these changes and it works great. Emulating a 35-bit card takes 846 bytes of flash (nine more than the 26-bit cards since the state machine stores one bit per byte), so it might be possible to port this to the attiny10. I’ve also found that the tags work much better with a small capacitor across the two clock pins, as shown in the above photo.