2.26.2007

hardware almost finished, software in beta

Ok just to forewarn you, this post is a biggie. If you don't read the whole thing at least skip to the end, there's some audio & video clips!

A few weeks ago I bought a Mac Cube G4 on ebay. It's guts are perfect for fitting inside of the enclosure of the old beige mac. It's pretty compact and modular. A Mac Mini would have been a sure fit and with more computing power, but I'm trying to do this on the cheap.


Thanks steve, I'll take it from here.

I should say right off the bat that this project would not be as far along as it is without the expert help of my friend Isaac. He knows way more about computers than I do and his skill has been a great asset.

Removing the computer from the clear plastic shell is a simple task. If you turn the Cube upside down you'll see a handle. If you push it in it pops out so that you can get a grip on it. Pull on the handle while holding down the clear plastic exterior and the computer will slide right out. Pretty neat design..



This is where you need to proceed with caution as the computer is now completely exposed. When you pull the computer out it looks like this.



I was kind of bad about taking pictures at every step this time, but it's pretty straight forward. The next step is to remove the structural elements so we are simply left with the mother board, the video card, the processor, and this huge heat sink. These components are all attached to one another. So basically start removing any screws you can find and it will start to make sense. Also, unplug the antenna for the wireless card and unplug the power cables and IDE cables from the optical drive and the hard drive.

Once you have all of the excess metal removed, you'll find this little guy attached to the side opposite the handle

it's the touch sensitive power button. We'll be mounting this in the front of the beige case where the keyboard port used to be. In order for this to fit correctly I had to chop about 1/2" off one end of the board. I only did this of course after realizing that there were not any components or circuit paths on this portion of the board. Then I simply hot glued the button and it's light diffuser into place.



This places the button significantly further from the computer than it's original position, which calls for an extension of the cable connecting it to the computer. The connection had four wires, so a phone cable worked perfectly for the job.



Here's the finished extension using the connectors that fit the switch and the port for it on the mother board:


By the time I had finished the extension cable Isaac had extracted the video card, mother board, processor and heat sink from the original enclosure and put them all back together. Note, that it actually has a video card as opposed to "on board" graphics which are more common these days in Macs (having a separate video card means it can be upgraded... I think the Mac Pro is the only one without on board graphics now). Also note the three slots for RAM. This baby can fit 500MB sticks of RAM which means I'll be able to get about 1.5GB of RAM, which is a very very good thing.

Next we had to start mounting the hardware inside the beige Mac. I had saved the original metal infrastructure, and inside of where the floppy drive used to be we mounted the hard drive and the slot loading cd/dvd drive (yep, you know what that means... CDs will be loaded into the floppy disk slot!). Here's a picture of Isaac cutting a huge chunk out of the floppy drive mounting hardware in order to fit the cd/dvd drive.


Here's the finished product (note: the hard drive is mounted upside down in order to assure proper air flow between the two drives)


And here it is mounted on the larger metal infrastructure


And from behind


At this point we decided to hook everything up to make sure it all still worked, and that we hadn't broken anything. (note the touch sensitive power button installed in the beige case)


This is where we hit our first major speed bump. When I brushed the power button with my finger it powered up, and then powered down a few seconds later. It continued doing this in an infinite loop. Crap. Isaac and I were both stumped. Then I thought, maybe the hole which the power button was sticking out of was too small, and it was tripping the switch. So I pulled the switch out of the beige case and powered it up with the switch just sitting on the work bench. This did not fix the problem. Then I thought maybe my wiring was faulty, and that there could be a short circuit in the extension cable for the switch. I unplugged the switch from the mother board, and the computer powered up no problem. We tested the extension cable and there wasn't a short. Deciding to set this aside for a moment, we began installing Tiger.


Installation went well, here's the computer's first successful boot of OS X


Later that night after we had called it quits I was doing some googling about the touch sensitive circuit and found out that the problem was that it needed to be grounded! Easy cheezy.

After grounding the switch the computer powered up effortlessly. Awesome.

The next time Isaac and I got together it was time to mount the computer. Since the heat sink already had holes drilled in it we decided to attach that side of the computer to the infrastructure. Here we have measured the holes to be drilled (this is the top of the casing in which the hard drive and cd/dvd drive are mounted.


Isaac had the genius idea to use these little spacers so that there would be space between the heat sink and the metal housing the drives. This will allow for more air flow and will prevent the heat from the CPU from being transfered to the drives. I fashioned the chunk of metal on the left from scrap left over from the Cube. It will support the left side of the computer.


And here it is! It's one big pile of computer.


This is what it looks like inside the beige case


So that's as far as we've gotten on the hardware end of things. The next steps are finding a 9.5" LCD display and hacking it to fit the VGA output of the computer, extending the USB, firewire, ethernet and power ports to the back of the case, and buying lots and lots of RAM.

In the meantime I've sat down with my friend Aaron and built a pretty sweet little piece of software for turning the big blue keyboard into a synthesizer.


Although I did want to use a free open source programing environment, we built it in Max/MSP/Jitter simply because Aaron is a wizard when it comes to this stuff and I don't have enough time right now to self-teach myself Processing or PD. But maybe in the future once school is over I'll have the time to focus on this and make some nifty stuff.

I'll do my best to dissect the software here, but I am no expert in Max/MSP/Jitter so if I'm totally wrong on something please say so.

Firstly we picked a bank of 12 keys ( a standard chromatic scale) on the keyboard and told the computer to produce specific MIDI notes when these keys are pressed.


These MIDI notes are sent to an audio synthesizer. Also being fed into the synthesizer is a patch that lets me use the + and - keys to jump between octaves (we gave it a 10 octave range).


The synthesizer is a combination of a sin wave a saw wave and a square wave. It also has a delay effect built into it. The vertical position of the mouse controls the amount of delay and the horizontal position of the mouse controls how long the note is sustained.

For now the synth is monophonic (meaning I can only play one note at a time), which was a bummer at first, but it's actually really great for double handed tapping and It sounds pretty rad.

Next audio signal is interpreted into a video signal or "visualization". The background color and the color of the wave form are both fully adjustable.


Here's some audio & video clips




I'm working on making a stand-alone version of the software so I can post it here for download but it's a bit unstable right now so that's forthcoming.

Also, I'm going to do a little demonstration for my mid semester critique on wednesday, I'll post some video of that later this week.

Labels:

2.01.2007

keyboard finished!

I finished "restoring" the keyboard yesterday:

here's how i did it:
1. I took apart a crappy PC keyboard that had a PS/2 connection



2. I discarded all but the circuit board the PS/2 cable was connected to


3. Soldered 12" lengths of wire to each contact on the edge of the PS/2 circuit board



4.arranged these wires on an X and Y axis (i grouped the two small groups of wires together) and labled each wire on the Y axis with a letter, and each wire on the X axis with a number.



5. I tested all possible connections between the wires and recorded my findings (different connections cause different "keys" to be pressed" for example, when wire "C" and wire "16" are connected it produces the letter "e", of course I had to have the PS/2 connected to a computer to see these results. I used a USB adaptor and hooked it up to a mac, so i could use this nifty little tool that shows you what keys are being pressed. This is useful for determining keys that don't produce characters (i.e. delete, return, caps lock, command, alt, control). here's how to find this tool:


in system preferences, click on "international"



click the "input menu" tab, and check off "keyboard viewier". also make sure to check off "show input menu in menu bar", it should check itself automatically though.



click on the flag up near the clock, and click "show keyboar viewer"



it may take a second or two to show up, but this cute little keyboard will show up, and as you can see in my screenshot the shift and command keys are depressed because i was pressing them to take a screenshot.



here's my notes from testing the connections



6. Next I had to remove all of the printed circuit paths on the board of the big blue keyboard, because these were totally irelevant to the circuit i was making and would interfere with my wiring. To do this i turned my soldering iron up to 32V and kinda just scratched at the paths untill they peeled off. totally professional.



7. For quick reference I mapped out all of the connections I needed for each key

8. Each key on the blue keyboard is quite literally a switch, soldered directly to the board. Using my map as a reference I made extensions on the wire matrix and soldered all of the necesary connections



that's it! I used this tutorial as a guide.

I'm in the process of buying a G4 Mac Cube to put inside the old beige enclosure. I'm also in the early stages of research & development for the software. I'll be using Pure Data for the audio synthesis (open source!) and possibly Jitter for the video synthesis... unless I can figure out a way to do it with GEM, which is the open source version of Jitter and part of the Pure Data family.

Labels: