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).
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.
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.
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.
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, trmm.net/Mac-SE_video.
UPDATE 2014-02-09: Original ADB Keyboard and mouse support is now working. adb2usb source code for a Teensy 2.0.
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.
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.
The PUMA 260 robot arm that was hanging around NYC Resistor was seen heading into Manhattan on the subway.
Hexascroller has been a central fixture at NYCR for the past few years, with a few ups and downs. It’s replacement, Octoscroller, improves on our classic message alert polygon by having two more sides and two more colors of LEDs.
The userspace application renders images into a shared memory frame buffer, or in this case receives UDP packets containing video images from the Disorient Pyramid transmitter. The PWM algorithm can do between eight and sixteen levels of brightness for each color, producing approximately 12-bit color.
See it in person at MakerFaire in NYC this year and read on for details of how to wire up a driver for the panels, as well as a walkthrough of some of the PRU code.
This year the Disorient Camp at Burning Man built a 7m tall pyramid with over half a kilometer of LED strips. Several artists developed patterns for the panels, including Disorient founder Leo Villareal and Jacob Joaquin from Fresno Idea Works. Every night there was a party in front of the pyramid, with bicycles blocking the entire Esplanade.
The pyramid was visible from just about everywhere on the playa and served as a great beacon for finding the camp after a long night out. Read more for the technical details of how it was constructed and links to all the source code.
One of the most powerful tools in debugging circuits is the oscilloscope — it allows you to visualize your analog and digital signals at millisecond or microsecond time scales. This 18 August class at NYC Resistor will teach you basic operation of a handheld oscilloscope: topics include how to setup different time and voltage scales, how to configure the trigger modes to capture fleeting signals and how to use the cursors to measure various qualities of the signals. We’ll also show how to use the ‘scope to trace a signal through a circuit to identify some common problems.
The other most valuable tool in your electrical test equipment toolbox is a multimeter for measuring the instantaneous values of three important electrical measurements: voltage, amperage and resistance. This class covers all three of these as well as the very important “beep mode” to check for electrical connectivity.
Get your tickets here! The class fee includes both a compact multimeter and a DSO Nano v3, an Open Hardware design that is a great getting started oscilloscope. With these in your toolbox you’ll be able to diagnose all manners of circuit issues.
Are you building a giant LED display for your hackerspace or Burning Man and need a way to control multiple kilometers of LED strips? Are you tired of running massive USB hubs of Teensys for each row? Then you might be interested in my LEDscape code for the BeagleBone Black to drive up to 500 meters of WS2811 RGB LED strips at 30fps.
On the Teensy 3, Paul’s OctoWS2811 makes very clever use of three DMA engines to generate the bit-train for the WS2811 LED strips, but only supports up to eight strips. Beth’s FadeCandy improves on Paul’s work and has a great frame rate with beautiful interpolation (and a custom USB protocol to pump pixels fast enough to keep up with the frame rate), but the temporal dithering and expanded colorspace features run into frame rate and memory limitations at strips beyond 64 pixels.
The BeagleBone Black has far more memory than the embedded AVRs (512MB versus 16KB) and the AM335x ARM Cortex-A8 has a killer feature: two built in PRU (“Programmable Realtime Units”). These are embedded real-time microcontrollers built into the ARM core with full DMA to main memory and control over all of the IO pins. This afternoon I hacked up a quick proof of concept in PRU assembly that use one of the units to drive 32 of the WS2811 strips at full speed with zero CPU load and easy double-buffering of the image. The best parts of writing for the ARM instead of the AVR is that there aren’t any issues with running out of memory for image processing and there is built-in ethernet for OSC or other visualization libraries.