I love the idea of old computers. I haven't gotten my hands on any to play around with so I can't say I really love them directly. However, all that beeping, whirring, dithering, chirpy music, tape, and paper really fires my imagination. That's why I have been trying to emulate the things that I love about them, for what seems to have been ages.
This particular project is a continuation of a long line of creations stemming from an idea I had when I was in 8th grade. I tried to create a little computer built entirely within a keyboard. It didn’t take long before I had an LCD, Vinculum USB interface, and keyboard hooked up to my trusty Arduino. Sadly either the keyboard, my Arduino, or my code died in some way and the project never really got off of the ground.
I kept trying, building several versions of the project keeping the same theme. There were two music players, one simple note-taker with LCD, and one portable PropComp. They were all almost complete failures, but huge learning experiences.
All that fail has landed me here, at a project that I think may have finally (hopefully just temporarily) satiated my lust for the aesthetics of old computers.
I started it as a simple synthesizer based on the Parallax Propeller microcontroller. I found some code on the parallax forums that created a working MIDI synthesizer on the propeller. It was a simple matter to download it, modify it a bit, and put it onto my nice little demo board to play around with. After a short while I realized how unbelievably awesome it would be to put the whole setup into a keyboard, add some LED’s, throw in a battery, maybe attach an LCD (recession permitting), and patch in the accelerometer from a Wii nunchuck.
The result is this device, which is an IBM keyboard with LED strip, audio jack, volume control, power switch, and of course, Guitar Hero guitar strap. I carried it around for an entire day at school, and although a bit heavy, I consider it stylish :D.
The capabilities for this thing are virtually endless. Right now it acts as a simple midi synth with POV display capabilities (an odd but satisfying mashup), but I am in the process of writing code to allow it to act as a music player, text to speech device, and music scratcher (8bit DJ!?).
To Do
Add volume control.
Obtain Wii Nunchuck accelerometer.
Add accelerometer to hardware.
Add accelerometer support to software.
Rewire power management circuit.
Add programming port.
Add video port.
Add amp with internal speaker and audio selection switch.
Write music looper code.
Write music player code.
Write music scratcher code.
Modify synth code to use accelerometer.
Add lcd to hardware.
Test lcd with hardware.
Add lcd support to software.
Build base station hardware.
Write base station software.
Write computer client software for base station.
Add transmitter/receiver to hardware.
Add transmitter/receiver support to software.
Timeline
10/28/09 (3:30 PM)-Finished writing project.
10/28/09 (3:35 PM)-Project uploaded.
10/29/09 (7:46 PM)-Accelerometer soldered to main board. Took plenty of (blurry) pictures. Decided not to risk screwing with EEPROM communication so instead I used pins 24 and 25 with pullup on the nunchuck data line.
10/31/09 (11:05 AM)-Got the accelerometer working in code. Mapped the x and y accel values to two frequencies. The result is a sound like a pod racer. Had fun shaking it :D
10/31/09 (10:15 PM)-Wav playback working off of microSD card. Next thing is figuring out how to scratch them using accel.
11/03/09 (6:12 PM)-Bought 16x2 character LCD from Sparkfun to add to project. Also got 2 transmitters and 2 receivers (modems, 315MHz, 2400bps) to play around with. Hopefully I can use them to create a base station so I don't have to take apart the synth every time I want to load new code onto it. From my calculations it seems like it will take a little more than a minute and a half at full speed to load the entire EEPROM of the synth (32K).
11/28/09 (7:46 PM)-Closed up one of the holes in the back of the keyboard and added an external port for programming in the new panel. It is good progress because now I don't have to take the synth apart and put it back together again just to go through one code programming and testing cycle. Might finally be able to get some nice sounds out of it with experimentation.
1/17/10 (9:24 AM)-I've just gotten a wonderful emulation of the SID chip from the Commodore64 (written by Ahle2 from the Propeller forums) running on my synthesizer. It sounds really great, so good in fact that I am thinking of replacing the MIDI synth code that I have been using with this new SID emulation. I have a simple keyboard program working now, but it isn't very useful for making music. The next thing I have to do is figure out a way to arrange the keys on the keyboard so you can play music instead of just blindly guessing notes based on the ASCII value of the key.
3/28/10 (7:45 PM)-Was going to make a video but made the MIDI
Materials
Obtained?
Item
Cost
Yes
IBM keyboard
Free
Yes
Propmod_US_PS_SD
Free
Yes
8 red LED's
$4.00
Yes
2 protoboards
$6.00
Yes
ribbon cable
Free
Yes
Wii Nunchuck
$17.49
Yes
Audio jack
$3.00
Yes
5 volt regulator
$1.25
Yes
9v battery connector
$0.50
Yes
Electrical tape
Free
Yes
Switch
$1.00
Yes
Potentiometer
$1.00
Media
Credits
-Owen Trueblood
Code-fu.
-InterwebsThe knowledge.
-My atticThe keyboard.
-SparkfunExcellent miscellaneous parts.
-Parallax propeller forumsVast troves of information.
-MctriviaThe propmod-us_ps_sd.
-AribaMidi synth code.
-Joao Geada, John Abshier, and DogPNunchuck I2C code.