Categories
Uncategorized

A Big Big Keyboard

Big Keyboard

If you happened to see a post titled 8 Crazy Keyboards That Will Trick Out Your Typing over on the Make Blog, you may have seen the big keyboard I worked on last year.

It was for a graphic design station we built for “Word Headquarters” at the Betty Brinn Children’s Museum. (I did this project as a contractor, before I worked at the Exhibits Shop.) Here’s a bunch of images that show the building of the keyboard.

Concept #1

This is the concept Mike came up with, which was to use lots of different sized pieces of wood, CNC’d to look like letterpress type (though obviously not reversed, as they would be unreadable.) This was definitely a fun design, but things always change along the development path…

Layout

Layout

While Mike was working on a design, I mocked up a drawing showing the spacing I thought would work using arcade buttons and how close together we could get them. This helped determine the overall size of the keyboard. Things could obviously get more spaced out, but this was the tightest we could go.

Teensy++ 2.0

I’ve built plenty of keyboards over the years using Teensy development boards so there wasn’t too much new happening on that front. Still, it’s always good to breadboard things up for testing.

Concept #2

We ended up going with a simpler and cleaner key layout than the original concept. As you’ll see later, we added variations elsewhere in the piece.

Teensy++ 2.0

Did I mention the keyboard would have 46 keys? Well, 46 is the number of digital inputs you can get on a Teensy++ 2.0 board. That’s every single input. (And yes, there was an issue using pin 6 which eventually got solved.)

Buttons!

Here’s a big piece of HDPE that’s been milled out for all of the buttons. Yes, that’s a lot of buttons! (There are 47 buttons because we used two for the spacebar.)

Wiring!

Here’s the back of the big piece of HDPE. That’s a lot of wires! We used slip-on connectors rather than soldering wires to the buttons (for ease of maintenance) and the other ends of the wires all go to screw terminals.

Teensy++ 2.0

All wires run to screw terminals on an Adafruit Perma-Proto board. It’s not the cleanest thing, but the deadline was tight on this, and the impending launch date meant we had to get it all done and working, even if it wasn’t the prettiest under the hood. (And yes, this is mid-wiring… not everything is connected yet!)

Wiring!

More wiring, more wiring, labels for everything… And testing as we go.

More Wires!

Here’s the piece of Alupanel attached to the top of the HDPE. It also serves to hold the wood keys in place. Each key has a lip at the bottom to hold it captive and is held up by the spring in the arcade button. (At some point I did weight tests to determine a safe weight for each key so that it wouldn’t press down on the button too much.)

Wood Keys

Since we went with a uniform size for the keys, we added some variety in the choice of woods used. You may notice there is no return key. We eventually replaced the exclamation point with a return key. (We honestly didn’t think we’d need one due to the way the application allowed the use of text, but like all exhibits you put on the museum floor, things change over time as you learn how they are used.)

Wood Keys

I think the nice, clean, readable type turned out great. I’d still like to see the really varied version that was the first concept some day, but this works for now!

Wood Keys

There’s about 650 lines of code running on the Teensy, including code for handling the shift key with every key, so even though you don’t see the exclamation point anymore, you can get one by holding down shift and typing the number “1” key. With the letters you get lower case and upper case, and with the numbers and other non-alpha keys you get whatever would normally show up with the shift key on a standard US keyboard.

In the end, this was an awesome project to be involved in. Thanks to Kathy, Mike, Sam, and Dom for contributing to the entire thing.

Categories
Uncategorized

Documentation Wiki

BBCM Wiki

I’ve mentioned before my love of wikis as a documentation platform, and I helped start the Milwaukee Makerspace wiki and grow and maintain it over the years…

Since I started working at the BBCM Exhibits Shop last year one of the biggest challenges has been locating needed documentation. Sometimes it existed, but was difficult to find. Other times knowledge existed only in someone’s head, which isn’t the best thing for an organization.

Even though I launched the wiki late last summer, things didn’t really start to get populated until December when I got a chance to pours lots of data into it, and then Sam joined us as the Exhibit Floor Coordinator and jumped completely on-board the wiki train. We’ve added over 150 pages in the last four months, and some of them are pretty extensive.

(We’re doing a small bit of integration with our ticketing system as well. Not as much as I’d like, but there’s a few weird issues with MantisBT that make things a little difficult.)

There are still more extensive pieces of documentation that exist in other formats, things that make sense as static documents, and those are often linked from the wiki so they are easy to locate as well.

In the building of this knowledge base, I like to think of it as an easily searchable manual that multiple people can update at any time. It’s not a bunch of Word documents or PDFs on a file server, it’s a living resource, meant to be used (and updated) constantly. It should serve as a useful tool not just to the people who have access to it now, but the people who join the organization in the future. A new team member should be able to sit down on the first day and dig through the wiki to get a good overview of what we deal with. (That’s my hope anyway!)

Categories
Uncategorized

Learning to Code

Copying and Pasting

I saw many friends share this amusing image of a fake O’Reilly book titled “Copying and Pasting from Stack Overflow”, and if you’re not in on the joke, Stack Overflow is a web site where you can post programming questions and get answers to those questions. It’s also a site (like many others) where people who are not sure what they are doing grab bits of code from when they are not 100% sure what they are doing. (And if you don’t know about O’Reilly, they publish technical books, many about programming.)

This is the first semester I’ve taught a class that includes programming. I was upfront with students about how I’ve learned to write code over the years, and that includes looking at examples, using existing code, and (eventually) reusing my own code. I didn’t force them to type out each line of an Arduino sketch because I didn’t think it was completely necessary. They already know how to type, and once I showed them how to hit the compile button, they learned about syntax errors. Occasionally in class I’d demo things by writing code on the fly and inviting them to type up what I just typed, and to play around with the values, add more lines, etc. (I showed them the “Examples” menu early on, which contains plenty of useful code to get started with.)

Here’s something that may be news to some readers – I’m not a great programmer. I’m a hacker, and I can write enough code to get by, but more importantly I can find enough sample code and examples and tutorials to write the code that I need to do what I want to do. I think that’s the key to things.

If you’ve ever heard the expression “To be a great writer, you need to be a great reader” then perhaps this also applies to programming, and reading code is an important part of writing code.

Now, with all that said, I still expect students to learn some of the basics of writing code and understanding it. If at the end of the semester all they’ve done is copied & pasted code that someone else wrote, and by some miracle it compiles and runs and works for their project, that’s still sort of good, but not quite as good as having a basic understanding of what exactly those lines of code are doing.

In the meantime, keep copying code, and pasting code, and while you’re at it, try to read it and understand it.

Categories
Uncategorized

The Screwdriver

Screwdriver vinyl

My pal John McGeen posted a challenge for February. The challenge was to design a screwdriver. He also said we should “Push the boundaries of what is possible”, and while I’m normally a hammer guy, I figured I’d try a screwdriver.

While John was busy making a real screwdriver I thought about the challenge, and at first I thought about designing a 3D model of a screwdriver, and then I thought about making a nice screwdriver shaped sign using a large piece of wood, and ultimately being overloaded with projects in February I ended up doing something different.

Craftsman Screwdrivers

I started this project by thinking about screwdrivers. The first screwdrivers I ever used when I was a kid belonged to my dad. He had nice Craftsman tools. I remember him telling me that Craftsman had a lifetime warranty on their tools, and if you ever broke one, they would replace it. I still have a few Craftsman screwdrivers, but over the years I seem to have collected many other brands. None of them are probably the same quality of the old Craftsman tools, and none of them hold a memory for me like the Craftsman do.

I found a photo of some Craftsman screwdrivers and used them as a basis for tracing the outline I wanted for my silhouette.

Screwdriver with text

Once I had my screwdriver shape drawn out in Inkscape I added the word CRAFT using the typeface Adobe Naskh Medium. I wanted a contrast from the original CRAFTSMAN type which was a simple sans-serif typeface. I also flipped the screwdriver horizontally so the handle was on the left.

CRAFT

Detail of the handle and the CRAFT text. I also colored my illustration green because I planned to use green vinyl, again as a contrast to the red and blue of the original Craftsman screwdrivers.

Screwdriver

After the text was added I changed it to outlines and then exported it as a DXF file to load into the Silhouette Studio software to be cut.

Screwdriver Silhouette

In Silhouette Studio I scaled it to an appropriate size for my laptop screen, which ended up being 242mm long (or 9.5″ for you non-Metric folks.)

Screwdriver vinyl

The vinyl was then cut and weeded. I also cut a small piece of transfer paper to attach to the vinyl to hold the islands from the text in place.

Screwdriver vinyl

Yes, it’s finally time to replace the Imperator Furiosa skeleton arm. It had a good run of more than six months before the change. (It took a Simple Green scrubbing to get the lid clean before I applied the screwdriver vinyl.)

Screwdriver vinyl

Here’s the 13″ MacBook Pro with the screwdriver vinyl applied. Overall I’m pleased with how it turned out and it feels good to have some new artwork on the old laptop.

I hope this is enough of a screwdriver for John’s new site GrindstoneMKE. I’m expecting that a bunch of different screwdrivers are going to show up there in the coming days. (I’m not sure if anyone besides me will have a vinyl screwdriver though!)

Screwdriver vinyl

Screwdriver vinyl

Categories
Uncategorized

The Lights are…

Annoying...

I love @internetofshit on Twitter (and reddit) and things like Stupid Shit No One Needs & Terrible Ideas Hackathon, not just because they are hilarious, but because they reveal some truths about technology some may ignore.

As much as I love technology, I hate technology. In many ways, it makes our lives better… but in plenty ways, it makes our lives worse.

The Internet of Shitty Things is here. Have all of your best home appliances ruined by putting the internet in them!

Back in 2011 (or maybe 2010?) I ventured into the “Internet of Things” world a bit, and I’ve played with ideas since then, and watched as companies imagined everything connected to the Internet, typically with no thought to security.

Whether or not Cate’s tweet is true, it points out the fact that as we add technology to things we risk making them overly complicated and prone to failure. Turning on a light shouldn’t require installing a damn app or syncing anything. We live in a tactile world, and in my work (designing and building educational museum exhibits) we don’t want to turn everything into a touchscreen interface, for good reason.

Light Switches

Check out a few of these light switch mods on Thingiverse, including Frankenstein Light Switch Plate, Arcade Button Light Switch, and LEGO Light Switch Cover. These concepts all demonstrate that the light switch can be re-imagined as a fun activity, and not relegated to some app running on a digital network.

In other news, I recently tried an Oculus Rift, and while watching a corporate video inside of a virtual world was <sarcasm>completely amazing</sarcasm> I was surprised how comfortable the goggles were, and the first idea I had for them was an application that would allow me to wear them while in lying in bed reading, which I do a lot of while suffering from insomnia. Either a great use case or a great idea for the Stupid Hackathon.

Well that’s enough incoherent rambling for one day, I need to go read the specs on a TTL laser…