Making a custom keyboard at home (Part 2)

I continue to work on the custom computer keyboard (part 1). After creating the laser cut parts, I needed to understand the electronic components. Unfortunately I hadn't done anything with an Arduino in a long time, so I was confused about what needed to be done.

To help me learn, I bought an educational Arduino kit and started working on the experiments. That was definitely worth my while. I got comfortable using an Arduino again. I also learned what shift registers are. There will be 10 of them in this keyboard, as they are essential to allow the Arduino to sense the button presses of 71 buttons.

Here's one of the kit's experiments, using two Serial to Parallel shift registers to control a dot matrix LED display.


And here's an experiment using one Parallel to Serial shift register to monitor 8 buttons. I was following an Arduino tutorial here:


And finally, a prototype 16 button keyboard, mapped to the first 16 letters of the alphabet. I even added an LED that lights up whenever any key is pressed.

Next I need to understand the assembly. I know how to solder, but I don't know how to arrange everything inside the keyboard in a sensible way. I will figure that out before soldering anything together.

Improved Pachelbel's Canon in D

Here's an improved rendition of Pachelbel's Canon in D. This time I used the pedal and didn't speed up as I approached the crescendo. I made one or two mistakes but they are relatively minor.

And I also recorded this on the first try, without sheet music! The previous recording took 20 attempts.

There's also a new connect the dots puzzle available, depicting a Pterodactyl.

Attempt at Pachelbel's Canon in D

For the past few months I have been trying to learn Pachelbel's Canon in D. Since April, at least. This is the most difficult song I have ever attempted. Here's where I am so far:

I made at least 4 mistakes, but every attempt after this was much worse. The crescendo is challenging! Of course I can play it better when I am not trying to record myself.

Tonight I also re-recorded myself playing Erik Satie's Gnossienne # 4. This time, without sheet music.

Making a custom keyboard at ITP Camp (Part 1)

I spent the month of June at ITP Camp. It's my third summer in a row there, and as always, I had a blast. This year I attended a session on building a custom computer keyboard. It was taught by Claire Kearney-Volpe and Ben Light.

In the class we met with several members of United Cerebral Palsy and discussed their experiences using computer keyboards. Traditional keyboards often do not meet the needs of disabled people. We talked about ways we could re-design a keyboard to make computers more accessible and meet their usability needs.

I worked with a woman named Shaniqua. She didn't like the traditional key arrangement of a QWERTY keyboard and often found it difficult to find the next key she needed to type. There were some keys she didn't use at all and she thought the keys were too close together.


Claire and Ben built a working prototype of a keyboard using laser cut acrylic and a Leonardo Arduino. The keyboard I am building for Shaniqua will have a similar construction but will be tailored to her needs.

Before camp ended I designed the keyboard layout in Inkscape. The keyboard will look like this:


Next I used ITP's 60 Watt laser cutter to cut and etch all of the parts with Adobe Illustrator files derived from the above SVG image. There are 72 keys on this keyboard so the cutting took almost 4 hours to complete.

I made two mistakes with the design. First, the arrow keys were Inkscape lines with arrow heads. Visually that makes sense, but a laser cutter interprets lines as places to cut clean through the acrylic. I wanted it to etch arrows instead. To remedy this I quickly designed different buttons and cut them out on extra material.

I also made a mistake with the bottom layer and omitted one of the screw holes in the bottom layer. To fix it I simply drilled the proper hole using the layer above as a guide. Cutting acrylic with a diamond tipped drill bit was overkill but it got the job done.


The next step was the acrylic welding. This welding isn't like metal welding with a torch, it is more like chemical welding that temporarily melts the plastic so two pieces can be fused together. The top of the keyboard with be two layers of acrylic with keyholes for each key, with the top layer of holes being smaller than the lower one. The keys will also be two layers of acrylic, but with the top key layer being slightly smaller than the lower layer. This will allow the keys to be pushed down into a button sensor but not up out of the keyboard.

A few of the keys seem like they will have a lot of friction with the keyboard frame, but if that's the case, I will fix it with some light sandpaper.

Camp is now over, but the keyboard building continues. This is a fun and challenging project that in the end will expand my horizons and my view of what I am capable of. The next step is to understand the electronic components and the Leonardo Arduino. I want to understand how the circuits work before I attempt to solder anything together.

Gnossienne #4

It's been a while since I posted something here.

In January and February I was a data science fellow at The Data Incubator and worked very, very hard on projects and assignments to learn more about Python and data science tools. But now that that's over, I have time for other things.

I fixed my laptop and can now record videos of myself playing piano again. Here's Erik Satie's Gnossienne #4:

I made a few minor mistakes here and there but overall I am very happy about it. The broken cords make this a difficult piece to play.

Also, I updated this website theme! Much better than the previous one.

More to come....

I made another lamp

I made another lamp; this time, out of an empty wine bottle.

Similar design and build as the first one, made with leftover gravel. The lampshade is the same color and fabric, so they're an matching set!

Someday I'll probably make third one and give it away.

Camera3D Documentation

This past week I spent much of my time writing the documentation for my latest project, Camera-3D. This is an open source library for Processing. It will enable artists and creative technologists to transform their sketches into 3D anaglyphs and experiment with other 3D effects.

Once I finish the examples this will be ready to go live. I am so excited!

JupyterDay NYC

Yesterday I had the pleasure of attending the first JupyterDay Conference in NYC. This was a one day event discussing the open source project Jupyter, formerly known as IPython Notebook.

I had a wonderful time at the event. All of the speakers were engaging and I got a lot of great ideas for what I want to learn about to strengthen my technology and data science skills.

I took extensive notes and can't compile them all here. Instead, here are a few highlights from the event:

  • Jeremy Singer-Vine, BuzzFeed - Jeremy is a Data Editor at BuzzFeed, and does data investigative journalism. BuzzFeed does quantitative analysis for some of their news stories and will back up their news stories with research posted on github that readers can verify. For example, this news story and this notebook. I wish more journalists were this transparent.
  • Doug Blank, Bryn Mawr - Doug talked about how Jupyter is changing education at his college. Everything is a notebook there. Students submit notebooks for their homework assignments. They've built many extensions to Jupyter to support this. The most fascinating is they have kernels for many other languages like BASIC, Assembly, and Pascal. I am going to set these up on my computer very soon.
  • Sylvain Corlay, Bloomberg - Sylvain is a quant at Bloomberg. He showed us a demo of a new plotting library called bqplot they will share with the community. He employed ipython widgets to interact with the charts. And the widget that got a round of applause from the audience? An ipython gamepad widget. I didn't even know that was possible! Glad I have a gamepad already. Can't wait to put that to use analyzing data!

These were just a few of yesterday's speakers. The attendees were supportive and bright as well. I had many thought provoking conversations about data analysis and now have a list of tools I want to learn about as soon as I can.

All in all, a great day. Very glad I signed up for this.

Gnossienne #2

Here's a re-recording of Erik Satie's Gnossienne #2, using the new microphone.

I'm working very hard on Gnossienne #4. I can play all of it except for a few notes that I can't seem to figure out. I'll get there eventually.