Video: Far From Any Road, True Detective Intro Song Cover

True Detective Intro

My gal Ester and I do a cover of the True Detective intro song, Far From Any Road, originally by The Handsome Family. The instruments used included guitar, melodica, ukulele, castanet, percussion frog and a snare drum. Recorded with a Shure SM58 for vocals, a Lexicon MX300 for the vocal reverb, a Shure SM57 for instruments and a MOTU Traveler.

)

DIY reclaimed lumber hanging Edison bulb chandelier

This DIY reclaimed lumber chandelier with hanging Edison bulbs is easy and quite self-explanatory, though I will explain somewhat. Here’s what you’ll need,

  • piece of lumber
  • 2x lengths of chain
  • 4x open/close chain links, to affix the chain to the eyelets you’ll screw to the board
  • 4x screw eyelets, to secure the chain to the lumber
  • 2x screw hooks, to hook the chain to the ceiling *screwed into solid wood joists
  • one or more junction boxes depending on the size of the wood
  • one or more hanging lights, cord, socket, bulb
  • a cover for the ceiling junction box plastic or otherwise, you make have to cut a notch for the power cable

Once you’ve selected your lumber, drill a hole for each light cord. I started with a spacious zig-zag pattern but it’s whatever you like really. Affix junction boxes to the top-side of the lumber and wire the lights into them. Screw an eyelet into each corner of the top-side of the lumber, at least an inch in from any side.

If the lumber is extra heavy you could consider another length of chain and place two more eyelets to support a chain in the center. If ceiling joist placements allows you could also use four lengths of chain straight up to four hooks instead of the swing system I employed.

Screw the hooks firmly into ceiling joists, hang the fixture and wire whichever junction box is closest into the ceiling electrical. If possible the power cable would be less noticeable if it snaked to the ceiling along one of the support chains.

Once hung you can adjust the heights of the hanging bulbs and coil the extra cable on top, it’s not coiled very neatly in some of these pictures but I have since remedied that. There you have it.

If you’re interested in other Edison-style lighting ideas check out DIY steampunk-style iron pipe Edison fixture and the reason I have so many Edison bulbs kicking around, Maker Wedding: Rustic Edison-style hanging light fixtures.

DIY steampunk-style iron pipe Edison fixture

I’ve been seeing these types of steampunk black malleable iron on the net for years; it was only a matter of time before I went and made one. The texture of the iron combined with the warm vacuum-tube glow is quite an amazing effect, and they certainly look easy to make. Previous trips to the hardware store had only resulted in the question of what socket will fit into these types of pipes? I found myself with some spare time this past Saturday, so I went to the local hardware store and laid out 15 or 20 iron gas pipe fittings in the aisle and designed a 4-bulb fixture — roughly designed that is.

While designing the fixture be careful not to screw the fittings together too tightly as they can bind, also keep in mind these fittings will turn your hands black and the sharp threads can easily shred your hands if you slip. This being my first attempt I kept it relatively simple, keep in mind that you will have to thread wiring through all the bends and turns at some point.

I used the largest malleable iron piping I found, which had an inner diameter of 1 inch on the female threaded sections. I then purchased some basic keyless (no switch) brass sockets. These did not fit in the pipes, though I didn’t mind the look of the brass sockets extending from the fixture so I started with that.

The rounded base of the sockets became a problem as when they were wired and threaded into the fixture they lolled this way or that rather than extending straight from the fitting. I tried bulking up the base of the sockets with electrical tape, but they still slipped. I then tried removing the rounded bottom section yet the upper brass part was still too large in diameter to fit in the pipe.

Then I discarded everything but the bare socket with its bakelite base, the middle portion in the exploded image below (not the exact socket, but very similar). These almost fit, I had to crack/shave/cut off some protrusions from the bakelite base. Discarding the brass and cardboard meant that the socket had no protection or isolation for the wiring leads, for this reason I wrapped the hot lead with some electrical tape to isolate it and then ran one wrap of electrical tape around the entire socket. This extra bulk meant I had to twist and fiddle but they still fit in the pipe. If you fiddle so much that you think the electrical tape may have shredded, take it out, replace the tape and start again. It’s better to be safe.

Even though the sockets had no ground lead it was important when wiring be sure to wire all sockets in the same fashion and keep track of which wire is hot as they will all be combined at some point and you don’t want to short the wrong lead to the iron fixture structure.

While threading wire through the fixture you can unscrew fittings but be careful not to twist the wiring too much inside around elbows.

With the sockets wired and the wiring threaded through the fixture the next step was mounting it to the ceiling or wall. The wall mount fitting, pictured right, is not large enough to cover a junction box. For this reason I used a white plastic cover, however screwing the wall mount fitting to the plastic cover would not be strong enough to support the fixture (iron is heavy).

Another problem was that the wall mount fitting’s screw holes would block the plastic cover’s screw holes. I decided to use a steel junction box cover on top of the plastic cover to support the fixture. I drilled a center hole in both covers, two holes to line up with two of the iron mount’s screw holes and ensured that one of the remaining two screw holes in the iron mount fitting lined up with one of the plastic cover’s screw holes. This meant that the iron fitting would not be centered on the plastic cover, but it did allow access to both of the plastic cover’s screws even after the iron fitting was secured.

In this manner the iron fitting could be bolted to the steel cover, through the plastic cover and still allow access to the plastic cover’s screw holes in order to affix the entire assembly to the junction box.

The photo above shows the steel cover which has been drilled, in this photo the white plastic cover has not had the center hole drilled for the wires yet. I’m confident this system would have worked with a full sized junction box, however once I removed the old fixture I realized my desired location had an old-style smaller junction box and this system wasn’t going to work.

As it turns out, mounting to an old-style smaller junction box is even easier as the two junction box mounting bolts do line up with the iron fitting and therefore there wasn’t a need for the steel plate after-all. I put bolts right through the iron mount fitting, the white plastic cover and into the junction box, which allowed the junction box to directly support the weight of the fixture.

If you’re confident wiring fixtures, outlets, sockets and such this should be right in your comfort zone — if not perhaps enlist a friend who is to help out.

If you’re interested in other Edison-style lighting ideas check out DIY reclaimed lumber hanging Edison bulb chandelier and the reason I have so many Edison bulbs kicking around, Maker Wedding: Rustic Edison-style hanging light fixtures.

A Maker Wedding

Initially I wasn’t sure how much our wedding was truly going to represent my fiancée and I, after all, we wanted our family and friends to enjoy themselves and feel included — as with any large event there are a lot of expectations to manage. After deciding to craft my own Edison-style light fixtures for our reception I realized that the occasion was, in addition to a celebration of our life-long commitment to each other, an opportunity for us to showcase our creativity and perhaps introduce some of our family and friends to aspects of ourselves they may not have known existed.

In retrospect we probably took on too much, but it allowed us to feel the occasion was a true reflection of ourselves — for me this meant soldering, stripping, crimping, twisting, programming and no small amount of brow furrowing. None of these projects could’ve come together without the help of my wonderful wife Ester, who not only said yes, but also collaborated throughout and trusted me to deliver on some very important aspects of our big day. In addition, a big thanks to my dear old Dad who took time to help me with the lengthy task of wiring the Edison fixtures and to the friends and family who helped us setup and teardown these, and other installations.

Animated Arduino LED matrix lounge table top

Vinyl “flexi” record wedding invitations

XBee remote relay as photobooth RF camera trigger

Bachelor party wireless Arduino accelerometer Stab-O-Meter


Various puppet arms available at Obscura Antiques & Oddities, New York

Maker Wedding: Animated Arduino LED matrix lounge table top


Finally got around to making an LED table top, as it turns out — for my wedding reception. We decided to have a lounge area and an LED coffee table seemed like the perfect centerpiece for it. I decided instead of making a full table that I would make a table top that fit onto an existing ottoman. I affixed the LED strips to a plywood board which had a 2″ raised frame with aluminium duct tape, to help with brightness.

Arranging the LED’s in a proper matrix turned out to be quite a job as the strips I used came pre-wired and there isn’t all that much length between LED’s on the strip. I ended up having to cut and re-splice the connection leads for each row of the 7 x 7 matrix, after that the construction went quickly. You could get around this by using a more modular LED strip solution, I initially had ShiftBrites slated for this project, but I made something else with them and when I got around to this table top there were much less expensive options available.

I created an outer frame with a bevel to support a glass top. Initially I went with plexiglass but it would bow in the middle with anything of weight on the table, I didn’t want to add supports as this would disrupt the light diffusion, so I opted for a piece of tempered glass (actually intended for table tops to boot).

Adding adhesive obscuring film to the glass didn’t have the diffusion effect I’d hoped for so I sandwiched a sheet of white tracing paper between the tempered glass and a similarly sized piece of plexiglass and this gave the soft white diffused look I wanted.

The issue of programming the animations took a little longer. I wanted to use the disco(esc) animations available from the fine folks responsible for the 1E Disco Dance Floor — which I also used in my ohDisco! app for iPad. These animations are 32 x 16 and can have hundreds of frames — too much to load completely into the Arduino’s memory. But I didn’t want to have to deal with reducing the animations to 7 x 7, or reducing their total frame count, as this would affect the quality and overall impression. Instead I opted to add an SD card reader to the setup which stores the animations. The 7 x 7 section of each frame is loaded on-demand from each animation file and displayed on the table, with this setup the Arduino has no memory problems whatsoever and with a little more code it could index and play animations from the SD card without the need for code changes.

Worth noting is that the SdFat library used to interface with the Seeedstudio SD Card Shield wouldn’t run reliably (or at all sometimes) on an ATmega128 so be sure to use a more powerful Arduino running an ATmega328.

Parts

Arduino Sketch


const int chipSelect = 10;

#include <SdFat.h>
#include "SPI.h"
#include "Adafruit_WS2801.h"

uint8_t dataPin  = 2;
uint8_t clockPin = 3;   

SdFat sd;
SdFile myFile;

int rows = 32;
int cols = 16;

long framesize = rows*cols*3;
long rowsize = cols*3;

int ledrows = 6;
int ledcols = 6;

int rep = 0;
long reps = 5;

int brightness = 15;
int delaytime = 40;

char* files[]={
  "pulsar.ddf",
  "snake.ddf",
  "inter3.ddf",
  "inter4.ddf",
  "inter5.ddf",
  "rings.ddf",
  "rings2.ddf",
  "rings3.ddf",
  "matrix.ddf"
  };

int fileCount = 9;

char* file;
int frame = 0;
int frames;

Adafruit_WS2801 strip = Adafruit_WS2801(50, dataPin, clockPin);

// strip to matrix addressing array
byte addressMatrix[7][7] = {
  1,2,3,4,5,6,7,
  14,13,12,11,10,9,8,
  15,16,17,18,19,20,21,
  28,27,26,25,24,23,22,
  29,30,31,32,33,34,35,
  42,41,40,39,38,37,36,
  43,44,45,46,47,48,49
};

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
  delay(400);  // catch Due reset problem
  if (!sd.begin(chipSelect, SPI_FULL_SPEED))
    sd.initErrorHalt();

  file = files;

  strip.begin();
  strip.setPixelColor(0, 0, 0, 0);
  strip.show();
}

void loop() {
  if (!myFile.open(file, O_READ)) {
    sd.errorHalt("failed");
    rep = reps + 1;
    return;
  }

  // seek to next frame
  if(myFile.fileSize() < ((frame*framesize)+1))
  {
    myFile.close(); 

    frame = 0;
    rep = rep + 1;

    if(rep > reps)
    {
      rep = 0;
      file = files;
      Serial.println(file);
    }

    return;
  }
  else
  {
    myFile.seekSet(frame*framesize);
  }

  // adjust reps for number of frames
  if(frame == 0)
  {
    frames = myFile.fileSize()/framesize;
    reps = 750/frames;
    Serial.println(frames,DEC);
    Serial.println(reps,DEC);
  }

  int data;

  int column = 0;
  int row = 0;

  while (row <= ledrows)
  {
    while (column <= ledcols)
    {
      data = myFile.read();
      // read red
      int r = map(data,0,255,0,255);
      // read green
      data = myFile.read();
      int g = map(data,0,255,0,255);
      // read blue
      data = myFile.read();
      int b = map(data,0,255,0,255);

      // set pixel address
      byte address = addressMatrix[row][column];

      // set pixel color
      strip.setPixelColor(address, map(r,0,255,0,brightness), map(g,0,255,0,brightness), map(b,0,255,0,brightness));

      // next column
      column = column + 1;
    }

    // reset column count
    column = 0;

    // increment row
    row = row + 1;

    // skip extra pixels
    myFile.seekSet((frame*framesize)+(row*rowsize));
  }

  // turn off first pixel (7x7 matrix, 1 unused pixel)
  strip.setPixelColor(0, 0, 0, 0);

  // send current frame to strip
  strip.show();

  // close the file
  myFile.close();

  // increment frame
  frame = frame + 1;

  // rest
  delay(delaytime);
}