slapyak: tinkering and fidgeting
Just another weblog


I made some quick posters for the office…

This one’s over the coffee machine

Terrible Terry Tate says...

Best to do what the man says, dear.


And this one is on the door to the server room, which in our office has a seriously noisy in-rack cooling system.

War Operation Plan Response Computer - now with 9600 baud!


Well, Ikea proved fruitful.

The bargin bin area had pretty much everything I needed. I think i can scrounge up the rest of the parts from scraps laying in the garage.

I got the following on my trip:

  • 6’x2′ Desktop – $2.99
  • Keyboard tray piece – $0.99
  • shelves for a Billy – $5 each x 3
  • random shelf wood – $0.89 each x 4
  • shelf hangers – $0.50 x 10
  • Flexi lights – $15

I’ll get to putting it all together tonight and tomorrow and have some updates in the morning. Ikea FTW.


After trying various corner kludges (see the first pic. Yikes!) I decided I needed a real workbench to get to the projects I’ve been putting off since moving into the new house.

There was already a nice little nook in the basement. I think the previous owners must have had a TV set up in there. Since we dont really use the basement for anything other than laundry and treadmill storage (I really will use it soon, promise), it seemed like the perfect spot to build an electronics tinkering lab.

I’ve got some ideas for what needs to go in:

  • I’d like a desk at a good height to stand & work, which will give me plenty of space for storage underneath. I’ve also got a nice chair from my time at Tweeter that would work with a standing-height desk.
  • It needs to have some shelves / trays to store random parts obviously¬†
  • A way to integrate a power supply is ideal also…
  • Lighting, both ambient and bright task lighting for soldering the little bits together

How do all project’s start? With a trip to Ikea! Hopefully I can find some inspiration there, and hopefully it’ll be in the clearance area…


i just added some video of the guitar hero midi controller in action on YouTube: The video’s should be done processing shortly.

I’ll be debuting the guitar in public at my band’s next show –
Cerca Trova @ Jaxx in springfield, VA Saturday May 31 @ 9:00pm

The pages the whole project is spread out on –
GHMC – program and introduction page
GHMC – musician’s user’s guide
GHMC – youtube video1, video2, video3

Hope to see you at the show.


GHMC - alive

The quick explanation – Everything i hoped would work; works. there are still some little software things i’m tinkering around with, but it functions as a real live instrument now. if you happen to live in the DC area, come check it out. i’ll be debuting it in public at Jaxx in Springfield, VA on May 31 with my band Cerca Trova. You can leave a comment here and i’ll be touch or purchase tickets from CercaTrovaBand -atsign- Gmail -dotcom. for anything other than tickets, please leave a comment below.

now that that’s out of the way. i invite you to read through the midi library, guitar library and GHMC source code to figure out what’s really going on. i encourage you to build your own. and am more than willing to offer whatever assistance i am capable of. I’m currently making another of these for a friend, and may consider selling completed GHMCs if there is any demand for such a thing.

so check out the other pages here – notably the Guitar Hero Midi Controller pages and leave a comment below and let me know what you think or what you’d add/ more voided warranty


while assembling the hardware last night, i decided the lcd display really took away from the asthetics of the whole guitar hero controller and made it look too cyborgy. i’ll leave the code in and commented out, but dont anticipate using an lcd on my own anytime in the future. I’ve been toying with adding a small plexi/led keyboard design to illustrate which key the user is in, and possibly a similar display for the mode, but that sure seems like a lot of leds for functions that will most likely be set it and forget it. maybe a good solution would be to make the keys one color for major and another for minor, or just eliminate the funny modes and stick with simple major and minor.

i’ll tinker with it when i get in tonight and check it out. i’ve got the switching all worked out. there’s an over-ride switch located near the battery in the wii-mote compartment, and a slide switch that turns the unit on when the neck is in place. it makes it easier to turn off and on without opening the thing up every time.


what a show! last night my band played at Jammin Java in Vienna, VA to a nearly packed house. the crowd was amazing, and to be frank, we rocked out pretty hard. thanks to anyone who made it out. we really appreciate each one of you being at the shows and your enthusiasm. see you soon – saturday May 17 @ Marshall HS Relay for Life. full band schedule at our google calendar page

no new news on the project front, but everything is nearing completion.


as of this morning most of the hardware is mounted. i’ve just got to wire up the lcd and adjust the contrast voltage. i think for future revisions, i’d incorporate the 6-pin programming header into the midi plug. i’d also get a custom board made to simplify life with all the wiring. right now i have wire going to so many places and hooked up right to the pins. I think some smaller breakout boards would really make things easier. it goes main board(freeduino)-
shift register breakout board-
led board-
dipswitch wired to pins-
midi jack
proggramming jack
guitar hero wiring.

i’m also almost done with the step-by-step which will be up here on it’s own page shortly.


it works! it only took until 3 in the morning, but it works and works well, the refresh rate is way higher than i expected. I can play as fast as I want and not lose a single note. it turns out the major obstacles came down to a few little things that were really screwing up my logic and basic function.

first: the original windmeadow entry and especially the responses to it on the original page proved to be the most helpful for me. the biggest issue i was having was the two-wire library runs at 400k, this was locking up my program or giving me junk based on the guitars mood at the moment. I switched the one line in ..\arduino-0011\hardware\libraries\Wire\utility\twi.h from

#ifndef TWI_FREQ
#define TWI_FREQ 400000L


#ifndef TWI_FREQ
#define TWI_FREQ 100000L

as well as added
#define TWI_FREQ 100000L

to the beginning of ..\arduino-0011\hardware\libraries\Wire\wire.h

this allowed me to get meaningful data out of the guitar.

next step was figuring out what means what. the data that came out (in the guitar library i made a demo program that does nothing but take the raw data and spit it back out over serial in binary.) the guitar library is no more. I kept getting errors saying i have ‘undefined references” to one variable that seems to be very clearly defined to me. as a result, the guitar functions are now included as a separate include file, not a library. not as pretty, but it works.
Jleyrer had pointed out on his blog that he got the guitar to light up some leds on a protoboard. i was unable to handle the data his program was making, so just dropped his previous work from the project. I do still have the same variable names and the code he had in common with mindmeadow.

The guitar puts out a ‘1’ for a button at rest and a ‘0’ for a button in use. so i had to turn my logic upside down in order to get the format I had written the program around. what I ended up with is grossly reverse engineered to make the data that was coming from the function turn into the data i wanted to see.

also, inspired by the midi_touchpad by ludo i think i’m going to change the operation of the joystick to controlling a sound parameter of some kind. something cool…

left to do today:
-add shiftIn() and shiftOut() to get the dipswitches and leds operational
-reprogram the joystick to operate a continuous controller type parameter.
-make the voltage divider for the intended 9v supply and to allow neg voltage for the lcd contrast
-see if those tiny surface mounted resistors i have will work.
-find a nice way to bundle it all up inside the guitar
-make the notes hold until the button is released.



Originally uploaded by TheSlapyak

I made a nice midi pin diagram for anyone who like me couldnt find a good one out there. there wont be any progress to speak of on the guitar until the weekend –

one other note: it seems the guitarduino programming has some issues. i was hoping to just throw in jleyrer’s code and be on my way, but no such luck. so it looks like i need to take the guitar programming back to square one and figure out what went wrong in either the original from jleyrer or in my implementation of that code. if nothing else, he seems to have figured out the bitstream, which is a huge headache lifted.

oh, and i discovered the midi touchpad on tuesday – this may be something i need to look into incorporating into my design. a small ps2 pad or even an optical ps2 mouse sensor may be a cool addition. you could even put the optical sensor out the back and have it see the movement of the guitar on your body. just to give the sound some color and life. or maybe the touchpad could fit where the wii-mote would go during normal operation. – first i need to get the basics working, then the really crazy stuff can find its way in…