IKEA Hack: MIDI Enabled Highscore Chair

The best thing about IKEA’s ANTILOP Highchair is that it’s cheap, and I mean dirt cheap. With a price tag of $19.99 you don’t have to worry about destroying it, or even not liking it. Coming in as a close second best thing is the fact that you can purchase extra trays which you can modify into activity centers you can swap in and out, such as this pro-gamer training rig.

For the Highscore Chair I added some Joysticks and Buttons I had lying around, loosely intended for expanding my arcade cabinet. These parts have the added advantage of actually being functional, down the road I can hook them up to a Raspberry Pi, an Arduino, MIDI out (Update: I’ve since added MIDI out), or just to some lights and buzzers — if you’ve got any ideas I’d love to hear them. The sky’s the limit as to what you can add to these trays, just keep safety in mind, for example, I placed the joysticks out of the arc of the baby’s head if he were to fall forward.

The trickiest part of this whole process is swapping out the trays. There are four rather stiff tabs that snap in place when attaching the tray. I may make a tool of some sort to make removal easier but in the mean time four butter knives do the trick. It’s probably best to swap the trays without the baby in the highchair, just slip a butter knife under each tab and once all four are in you can remove the tray easily (the butter knives will fall), really, any flat object would work, popsicle sticks perhaps? Now having thought about it, I’ll probably cut off the inner two tabs, the tabs are surprisingly strong I don’t see any risk of the baby removing the tray even if I remove two of them, however removing two would probably allow removal of the tray by an adult pressing one tab with each hand and pushing up on the tray with a knee or the like.

The plastic is very easy to drill, a stepped bit works wonders. Cutting would be a little more difficult but nothing a dremel wouldn’t be able to handle.

Update: I did end up snipping off the inner two tabs on both trays (with some sheet metal shears) and it worked like a charm. The trays can now be removed without the need for tools. Just push on the two remaining tabs with your thumbs keeping your fingers behind the lip for leverage, then use your chest, shoulder or chin (whatever works) to push up on the tray, once the tabs clear the lip you can let go and just lift the tray off. Be sure not to leave any sharp edges and swapping is still best done while the chair is unoccupied due to the number of places little fingers could get pinched while putting the tray on.

Update: I’ve since added MIDI out, which amounts to 10 MIDI triggers, 8 for each joystick and one for each button. The Highscore Chair now triggers samples loaded onto an Akai MPC1000, but with MIDI out it could be used as any sort of control surface now. The MIDI out is accomplished through an Arduino UNO, by following a couple of simple tutorials, found here and here, you can get buttons triggering MIDI notes in no time. I’ll shoot a new video when the little fellow is up for it. While the underside of the tray is already quite isolated from the baby due to the structure of the chair for added safety I’ll be putting the Arduino, battery and MIDI Jack in an enclosure and covering the entire tray undercarriage.

And MIDI enabled, and, of course, he’d rather smash Dad’s glasses than actually play with his new MIDI enabled Highscore Chair — back to the drawing board!


Here’s the Arduino sketch, very bare-bones. I cranked it out after a long day so I didn’t want to risk using the wrong array syntax so it’s just long hand, maybe that helps readability for beginners? Anyhow it would be much shorter if it used arrays. Basically there’re variables for each button pin and variables for the state of each button, it will only send one MIDI note per button push and wait until the button’s been released and pressed again before re-sending that note. This sketch is hard-coded to send MIDI notes 36 through 45 on channel 1 at 69 velocity.

const int buttonPin0 = 2;
const int buttonPin1 = 3;
const int buttonPin2 = 4;
const int buttonPin3 = 5;
const int buttonPin4 = 6;
const int buttonPin5 = 7;
const int buttonPin6 = 9;
const int buttonPin7 = 10;
const int buttonPin8 = 11;
const int buttonPin9 = 12;

int buttonStatus0 = 0;
int buttonStatus1 = 0;
int buttonStatus2 = 0;
int buttonStatus3 = 0;
int buttonStatus4 = 0;
int buttonStatus5 = 0;
int buttonStatus6 = 0;
int buttonStatus7 = 0;
int buttonStatus8 = 0;
int buttonStatus9 = 0;

void setup() {
  pinMode(buttonPin0, INPUT);
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);
  pinMode(buttonPin4, INPUT);
  pinMode(buttonPin5, INPUT);
  pinMode(buttonPin6, INPUT);
  pinMode(buttonPin7, INPUT);
  pinMode(buttonPin8, INPUT);
  pinMode(buttonPin9, INPUT);   


void loop(){

  int button0State = digitalRead(buttonPin0);
  int button1State = digitalRead(buttonPin1);
  int button2State = digitalRead(buttonPin2);
  int button3State = digitalRead(buttonPin3);
  int button4State = digitalRead(buttonPin4);
  int button5State = digitalRead(buttonPin5);
  int button6State = digitalRead(buttonPin6);
  int button7State = digitalRead(buttonPin7);
  int button8State = digitalRead(buttonPin8);
  int button9State = digitalRead(buttonPin9);  

  if(button0State == 1 && buttonStatus0 == 0)
    buttonStatus0 = 1;
    noteOn(0x90, 0x24, 0x45);
  else if(button0State == 0)
    buttonStatus0 = 0;

  if(button1State == 1 && buttonStatus1 == 0)
    buttonStatus1 = 1;
    noteOn(0x90, 0x25, 0x45);
  else if(button1State == 0)
    buttonStatus1 = 0;

  if(button2State == 1 && buttonStatus2 == 0)
    buttonStatus2 = 1;
    noteOn(0x90, 0x26, 0x45);
  else if(button2State == 0)
    buttonStatus2 = 0;

  if(button3State == 1 && buttonStatus3 == 0)
    buttonStatus3 = 1;
    noteOn(0x90, 0x27, 0x45);
  else if(button3State == 0)
    buttonStatus3 = 0;

  if(button4State == 1 && buttonStatus4 == 0)
    buttonStatus4 = 1;
    noteOn(0x90, 0x28, 0x45);
  else if(button4State == 0)
    buttonStatus4 = 0;

  if(button5State == 1 && buttonStatus5 == 0)
    buttonStatus5 = 1;
    noteOn(0x90, 0x29, 0x45);
  else if(button5State == 0)
    buttonStatus5 = 0;

  if(button6State == 1 && buttonStatus6 == 0)
    buttonStatus6 = 1;
    noteOn(0x90, 0x2A, 0x45);
  else if(button6State == 0)
    buttonStatus6 = 0;

  if(button7State == 1 && buttonStatus7 == 0)
    buttonStatus7 = 1;
    noteOn(0x90, 0x2B, 0x45);
  else if(button7State == 0)
    buttonStatus7 = 0;

  if(button8State == 1 && buttonStatus8 == 0)
    buttonStatus8 = 1;
    noteOn(0x90, 0x2C, 0x45);
  else if(button8State == 0)
    buttonStatus8 = 0;

  if(button9State == 1 && buttonStatus9 == 0)
    buttonStatus9 = 1;
    noteOn(0x90, 0x2D, 0x45);
  else if(button9State == 0)
    buttonStatus9 = 0;

void noteOn(int cmd, int pitch, int velocity) {

DIY Copper pipe pedicel chandelier

As a soon-to-be parent with time to spare, uh, yeah, I thought I’d take it upon myself to create a chandelier to complement our nursery’s fiber optic starfield ceiling. I have already had some experience with iron pipe fixtures but wanted something a little more delicate for this one. I called the resulting chandelier a pedicel chandelier because the small frosted night light bulbs I used along with the pearl white painted copper pipe reminded me of the small fuzzy horns that a male fawn grows before antlers, also known as pedicels (they’re not actually antlers).

The basic how-to for this chandelier is to use 1/2″ copper pipe to create an organic pipe structure with candelabra lights on the end of each pipe. Since you can use any low watt candelabra bulb, also known as E12 bulbs, a variety of different looks can be achieved using the same process. This projects requires knowledge of electrical wiring and should only be undertaken by those who are familiar with light fixture wiring and the dangers involved.

Three different candelabra or E12 light bulbs.

The copper pipe is attached to a dome fixture cover with threaded adapters and electrical bushing nuts (any appropriately sized nut would work). I soldered the pipe together after it was completely cut and assembled however there are issues with soldering which I’ll get to later. Use of epoxy to join the copper hardware would probably be much easier and safer.

Metal dome fixture cover. These are also available in brass if you're planning on leaving the copper pipe unpainted.

Below you can see the basic collection of fittings for the chandelier’s horns. Once wired the candelabra socket connections are wrapped in electrical tape to insulate them from each other as well as from the pipe itself, make sure all wires are neatly trimmed and covered in tape. The electrical tape also enables the socket to fit snugly (is there an uglier word with a more desirable meaning?) in the pipes. Not snug enough? Add more tape. Too snug? Take some off. The only coupling I had left to photograph was one that I had done some test painting on, rest assured when you purchase them they are copper coloured.

Though I purchased a whole bunch of 90°/right angle fittings I did not end up using them as 45° fittings convey a much more organic feel. Even though the T junction fittings were at right angles I tried to use a 45° fitting right after to soften the look of the structure. Another tip to help the fixture look organic is to never have two lights extending at the same angle — all angles should be at least slightly different. If you want your fixture to have a more industrial or steampunk feel, more right angle fittings may work better.

I decided on 3 separate structures, or horns with 6 lights each. The total 18 7W bulbs ends up at a scant 126W, perfectly acceptable for most dimmers. This meant 5 T junctions per arm, a total of 15. I suggest mapping out your fixture before heading to the hardware store and try to purchase fittings which don’t have price tags on them, I made this mistake and spent a cozy evening with Goo Gone because of it.

Left to right, candelabra (E12) 7W night light bulb, candelabra (E12) socket, electrical tape, 3/4" to 1/2" copper coupling, 1/2" copper pipe and fittings, 1/2" to 3/4" threaded brass adapter, 1/2" electrical bushing nut

Here you can see the threaded brass adapters and electrical bushing nuts securing the fixture horns to the metal dome fixture plate. Be sure to get brass threaded adapters and not copper, copper threads are too soft to tighten properly and will bind.

Drilling the mounting holes is a breeze, as long as you have a power drill and a stepped bit (pictured below). Stepped bits can be expensive, but they’re well worth it as they make quick work of drilling holes in thin metals, holes which could otherwise prove tricky and end up messy. I highly recommend investing in one, or a set.

A few required tools, a stepped drill bit (for drilling the mounting holes in the fixture plate), a copper pipe cutting tool and a roll of electrical tape.

Candelabra (E12) replacement socket.

We don’t need all that extra jazz, just the socket. Some of these are riveted together, others have a screw. In the case of rivets, unscrew the extension, then just bend the remaining metal mounting arms until the rivet brakes — careful not to crack the bakelite socket (I don’t even know if it’s bakelite, but that’s what I like to think it is).

Candelabra socket disassembled. We only need the socket itself, shown on the right.

I started by drilling the fixture plate and mounting the threaded couplings, this gives you a good base to create your chandelier upon. I used a bolt through the center hole of the plate to attached the fixture securely to a camera tripod while I worked on it. Things can fall apart quite easily if you’re not paying attention or one structure is heavier than another, you can use some twine, elastics, or whatever works really to support various pieces while you create.

If it becomes a pain to keep it together while you work than you can affix joints that you are confident will not change. I ended up soldering the main support pipe line of each of the three horns and I kept any extending pipe structures separate to make threading the wiring easier. If you’re soldering you want to do as much soldering as possible before starting any wiring — soldering with wire inside can melt the insulation and short out the entire chandelier, this is one of the soldering issues I mentioned earlier.

Once everything is cut, perhaps some has been soldered or epoxied, it’s time to start running wire. I decided to run three main wiring lines, one for each horn, any pipes extending off the main horn would then be spliced into the main line. Based on the bulbs you want to use, and how many, you’ll have to determine the max amperage and thus the proper gauge of wire to use, if you’re soldering you’ll want to get wire with as much insulation as possible.

A bent nail (left) is great for fishing a wire line out of a T junction. By attaching a nut to the end of a wire (right) you can use a magnet to guide the wire through complex structures.

Chandelier in progress.

When running wire ensure that you leave at least 2-3 inches extending out of each pipe and when splicing be sure to maintain the proper polarity — striped or two different coloured wires helps with this. Once wired it’s time to epoxy or solder any final joints, if you’re soldering you run the risk of melting the wiring insulation, to avoid this remember that these joints do not have to be waterproof, just a small amount of solder will hold the joint. Be sure to use flux and have a spray bottle with water ready, quickly get the pipe up to heat, apply the solder and as soon as it’s solidified use the spray bottle to cool down the pipe to help prevent any damage to the internal wiring.

Once you’re done soldering you can test the wiring for faults with a multimeter, check for faults between the two polarity wires and from each wire to the chandelier structure. If there are any faults you’ll have to open things back up, you can re-flow solder to separate parts, not sure what you’d do if you used epoxy and then found a fault :O

To attach the sockets simply strip and screw the wire to each pole on the socket and then wrap them in electrical tape. While not essential, it’s good practice to maintain the same polarity across all sockets, to do this keep track of which wire you’re attaching to the brass pole and which to the silver pole on each socket. Once wrapped in electrical tape you can push them into the pipe ends.

Bulb socket and pipe fitting after white rustoleum and pearlescent acrylic.

Once you’ve got all the sockets affixed you should test for faults again with your multimeter. If no faults are found between the wires or to the structure you can test the fixture by attaching a 120 volt wall plug to the end and giving it a go. If all goes well you can move onto finishing.

I thought, while great looking and oozing steampunk, that the bare copper was a little too hardcore for my infant son’s nursery so I decided to paint the fixture white and use a pearlescent acrylic on the pipes. The sky’s the limit here, but copper is expensive so, if you can, show it off! If you do paint be sure to stuff some paper towel or toilet paper into each of the sockets so that the bulb leads don’t get paint on them.

Once it’s dried you can test it again with the multimeter (can’t be too careful) and then hang it. I ended up using a dimmer with a remote on this fixture so that my wife and I could adjust the lights while minding to the baby and it works like a charm. Good luck! I’m happy to answer any questions in the comments.


Fiber optic starry sky nursery

Getting a house ready for a new baby is no small task, there’s really no end to what one may consider essential, such as a fiber optic star-filled ceiling for the nursery. There’s nothing more comforting to an infant than the feeling that they’ve been left in the woods under a wondrous, awe inspiring, night sky — no?

Thankfully there are some great products available to convey just that feeling with the use of fiber optic cabling. Wiedamark offers a number of kits as well as the separate components, which are basically bunches of fiber optic cabling and a light source or illuminator. I opted for their 288 3 Star LED Fiber Optic Star Ceiling Kit With New Dimming Feature, it comes with everything you need for a drywall install (aside from tools) and includes 3 different diameters of fiber optic cables which translate to different sized stars or planets.

While waiting for the kit to arrive my wife and I decided on a night sky to represent. Our first child is due in December so we chose the night of the Winter Solstice this year, December 21st, 2014, or at least what the night sky should look like barring some unforeseen astronomical event. There’s some handy sites online you can use to generate a star map on which you can base the ceiling. We used Your Sky which generates images based on date, location and a number of useful options. The easiest way to get your latitude and longitude if you don’t already have it is to find your home on Google Maps and grab your lat/long from the address bar, it will look something like this 43.650033,-79.391594. Positive latitudes, the first number are North and negative are South. Positive longitudes, the second number, are East and negative are West. So when using the above coordinates in the Your Sky interface it would be 43.650033 North by 79.391594 West. You can also turn on and off constellation names and such as well as select what magnitude of objects to display. For printing purposes it’s useful to change the output to Black on white background, if you’re printing in colour this may not be the case. It’s also useful to increase the image size, something around 2400 x 2400 should do.

Once you have a sky that you’re happy with you can right click on the resulting image and select save image in your browser, you’ll end up with an image aptly entitled Yoursky.gif. I decided to divide the image into a grid in order to make it easier to transfer the star positions to the ceiling. This step is completely optional as you can just wing it if you like, create your own constellations and such, though you run the risk of creating an awkward cluster of stars that you’ll end up focused on for years to come.

I won’t go too far in-depth with the install instructions as I’ve recently found another fellow has here, in addition, Wiedamark has a variety of instructions available here. I will, however, outline some of the differences in my approach. You should note I placed the light in my attic, this requires an electrical outlet in the attic, you can also place the light source in a closet or the corner of a room. I also placed the light source in a large plastic storage bin with holes for the power and fiber optic cables to isolate it from the blown insulation in my attic. The light source does need ventilation so ensure any container is large enough for ample airflow and is not sealed.

Two things made my install quite a bit more difficult than a typical install, the first is that the target ceiling, and most of our house, is plaster lath and the second is that our attic has about 3 feet of blown insulation piled on top the 2nd floor ceilings. Step one should have been to clear away the insulation from the ceiling, I was impatient and only did this after I drilled many of the holes and promptly regretted it. Clear the insulation first, everything will go much faster. If you don’t have much space in your attic some good knee pads will go a long way to avoiding aches and pains, you’ll be up there for a while.

The typical method of install for these star fields is to drill through drywall from above and feed the fiber optics down through the drilled hole. Those of you familiar with plaster lath may see a problem with this method — plaster lath enjoys cracking off in large chunks, especially if you’re drilling through from the unfinished side. Because of this I decided to drill up through the ceiling, which reduces the plaster cracking, and insert a placeholder wire into each hole which I could then locate from the attic in order to replace with a fiber optic cable. For the kit I selected I needed three different colours of wire, one for each size of cable/star. I chopped this wire into lengths of 4 or 5 inches, one length of wire for each star. When transferring the star map to the ceiling be mindful of your cardinal directions and take some time to ensure that you’re orienting the map correctly, or not, it doesn’t matter all that much in the grand scheme of things — then again, maybe it is the grand scheme of things!

If you’re dealing with drywall you can skip this entire step, if you’re taking my approach you’ll end up with something like this after drilling and inserting placeholders.

Try to match both the drill bit size and the wire to the fiber optic cable diameter as closely as possible, this will contribute to a clean finished install. I found it difficult to find drill bits small enough, but they are out there.

The next step is to head up to the attic and feed fiber optic cable down through each hole, drilling down if you have drywall and replacing the placeholders if you have plaster lath and have already drilled from below. An LED headlamp helps quite a bit if you don’t have lighting in your attic. The hardest part (aside from back aches and sore knees) is keeping the fiber optic bundles organized, fiber optic cable will craze or crack if bent and that will impede or interrupt the light flow through that cable, so be gentle. It seems easy to pull cables off at first, but eventually everything will be a tangled mess if you don’t take your time to stay organized from the beginning. It helps to first separate the different sized cables into their own bundles. Be sure to push each cable at least a couple inches further than you need through the holes, you’ll clip them flush only after you’ve patched and painted any ceiling defects resulting from the install. Once you’ve placed a star and are sure it’s extended down through the ceiling by a couple of inches then put a dab of glue where it enters the ceiling from above to keep it in place. Use a glue thick enough so that it doesn’t drip through any extra space or along the cable.

This is the most time consuming, frustrating and potentially painful part of the process and is best done in stages. On the upside I bet you never thought you’d find yourself grappling for hours on end with a nightmarish deep sea monster.

Once you’re done running the fiber optic cabling you’ll end up with some trippy, glowing, alien grass growing out of your ceiling, don’t trim it just yet.

Now it’s time to patch and paint over any holes you didn’t use and any other ceiling damage that occurred during the install. It’s important to do this before you trim the cables so that you don’t paint or patch over any illuminated ends. Once you’re done patching and painting you can use flush cut pliers, or even nail clippers, to trim the fiber optic cable flush with the ceiling. After a couple of days and you’re confident there’s nothing left to do in the attic as far as corrections or the like, you can replace any insulation and pat yourself on the back.


Installing a modern railing on a closed box staircase

modern railing on closed box stairs

A year or two ago, suffering from terrible decor overload, I tore out the gaudy beige and gold twisted, scrolling picket staircase railing which adorned our main stairway. Since then I searched and searched for a modern replacement to take some focus away from some other design remnants left over from the previous owners (ehm, terrible tiles). The problem ended up being that there aren’t many railing options for closed box staircases, and fewer DIY modern indoor railing product. Like many industries the railing/stair manufactures don’t cater to the public, products are intended for contractors. With my wife newly pregnant it was time to kick this railing project into overdrive and get it done, after much searching and planning I found and installed a solution that worked out great.

For those of you wondering a box, or closed box, staircase is a staircase where the stringers (the support boards on either side of the stairway) enclose the stairs. In some cases stairways enclosed by walls are referred to by the same name, this is not the case here. If the one or both of the stringers do not enclose the stairs, but leave them open to extend past the stringer, the stairway is known as open, or partially open at least.

Railings on closed box staircases are, in most cases, mounted to the angled top edge of one or both stringers or affixed to the outside of the stringer. In the case of mounting the posts on the stringer the base of the pickets, or posts, can only be as wide as the width of the stringer, which can be quite restrictive.

In our case the stringer was under 2″ wide, not wide enough for most posts, and because of the 2nd floor landing spacing there was no room to affix posts to the outside of stringer. These issues left us very few options, even fewer modern design options. A modern-style steel railing needs something in the neighbourhood of a 3″ square base for each post, many require a flat surface as well, our stringer has neither. Mounting the posts on the stair tread, on the inside the stringer would result in a very awkward looking staircase and eliminate 3″ of stair width — so no help there.

The solution I came up with was to cut hardwood blocks to bolt to the inside of the stringer to add additional width to the stringer where support the posts was needed. It worked like a charm, painting the risers white along with the wood blocks gave the staircase a farm house look.

The railing hardware is from Inline Design, who offer some fantastic designs and will customize hardware to suit your needs at no extra cost — which you will need if any posts are mounted on either landing as well as the stringer since they will need to be difference heights to maintain the proper handrail (and potentially cable) angle. Thankfully, Inline Design has very reasonable shipping rates to Canada and the U.S., though some custom charges do apply. The hallelujah component from Inline Design is a pivoting base for their posts, this allows mounting the post to a stringer, or any angled surface as long as it has at least 3″ square available. All in all this project came in at about half the cost of having a contractor do it — and I’m not sure any local companies would have offered the blocking solution I ended up with. I’m almost certain I would’ve been told the entire staircase would have to be redone in order to install this type of railing.

The above step-by-step gallery should give a pretty clear picture as to how this all worked, feel free to ask questions in the comments.

New band lineup baby announcement

My wife Ester and I are expecting and since we’re both musicians we grabbed our guitars and did a fun photoshoot to announce our good news. Inspired by this creative announcement we came across.