Introduction: Sidstick: Pocket Chiptunes Player
The SIDstick is a pocket-sized chiptunes player featuring:
- removable storage supporting microSD cards
- 20+ hour battery life
- Super Hi-Quality hardware-based playback at 31kHz sample rate, >16 bit resolution
- Completely Open, hardware design and sourcecode are available under the MIT license
- Upgradable with connections on the board.
And a few more Chiptunes favorites
A few more good ones:
Step 1: FAQ
To quote wikipedia, "music written in sound formats where all the sounds are synthesized in real time by a computer or video game console sound chip, instead of using sample-based synthesis."
A lot of chiptunes are ripped from classic videogames, and some are new works. The SIDstick plays the most common variety of chiptunes, music written for playback on a SID chip. Probably the biggest collection of SID music is the High Voltage SID Collection, which has 36,000 SID tunes, free to download.
How long do the batteries last?
Depending on the type of batteries you use, you'll get about 20 hours of playback. I suggest you use rechargeable batteries, but alkalines will work, too.
How many songs can I store?
All of them. A 2gb microSD card will store 20,000 - 30,000 songs, depending on filesize. That's about 60 days of unique tunes.
Is it hard to put together?
No, it's pretty easy - there aren't a lot of components on the SIDstick, most of the magic happens within the microcontroller. The microSD card slot comes pre-assembled, so you don't need to do any surface mount soldering.
I want technical details!
That's not actually a question, but here are the details of SIDcog, the core audio processor;
- 31kHz sample rate
- >16bit resolution
- Full filter support - any combination of Lowpass, Bandpass and Highpass filter
- Full envelope support with a logarithmic release/decay curve. ( uses the same logarithmic approximation as a real SID)
- Supports all 4 waveform types
- 16 steps main volume
- Waveform reset bit works. (many Rob Hubbard tunes relies on this exact behaviour)
- Ring modulation
- Oscillator synchronization
The SIDstick is the product of a group effort - Johannes Ahlebrand did the SIDcog core & desktop app, Jeff Ledger did the SD card interface and track / volume control. I did the circuit board layout. Thanks also to James Long from Lil' Brother SMT Assembly for the microSD board design and assembly services.
Step 2: Preparation: Tools
The SIDstick takes about 40 minutes to put together. Soldering is straightforward, and it's a fine project if you're just starting out. There are a ton of great instructables on how to solder (one here).
ToolsYou'll need a few tools to assemble the project;
1 - Soldering Iron and solder. Leaded solder is easier to work with, and a 15-40 watt iron is just fine. I sell a little elenco combo pack (here) that works pretty well.
2 - Dikes. Diagonal cutters are used to trim the excess leads from components after soldering them down. They don't have to be fancy, I use a pair I got from Ikea for a buck or two.
Step 3: Preparation: Parts List
Here are the parts you'll need. If you've ordered a kit, double check to make sure your package has all the parts listed. If there's anything missing, just email us at email@example.com;
MCP1700 (3V, TO-92)
Mouser Part#: 579-MCP1700-3302E/TO
Mouser Part#: 653-B3F-1000
Mouser Part#: ECS-50-20-4X
40 Pin DIP socket (600 mil)
Mouser Part#: 517-4840-6004-CP
8 Pin DIP socket (300 mil)
Mouser Part#: 517-4808-3004-CP
3.5mm Stereo Headphone Jack
Mouser Part#: 806-STX-3100-5N
47uF Radial Electrolytic Cap (micro-mini)
Mouser Part#: 140-L25V47-RC
Available at Parallax.com
Available at Gadget Gangster
10k ohm thumbwheel potentiometer
Mouser Part#: 3352T-1-103LF
3xAA Battery Box
Mouser Part#: 12BH331/CS-GR
Available at Gadget Gangster
Mouser Part #: 24LC256-I/P
If you get this with the kit, it will be pre-programmed. Otherwise, you'll need an EEPROM programmer like a PropPlug.
10k ohm resistor (1/4 Watt) - (Brown - Black - Orange)
.1uF Radial Ceramic Capacitor (104)
Rectangular pin headers
Machined pin headers
Step 4: Make: Step 1
Take 3 of the resistors (they're all the same, 10k ohms, Brown - Black - Orange), fold the leads at a 90 degree angle, and insert them into the PCB at R1, R2, and R3.
Flip the board over and splay the leads out. Solder the resistors to the board and trim off the excess wire.
Step 5: Make: Step 2
Take the .1uF Ceramic Capacitors, and insert them into C1, C2, and C3. They aren't polarized so it doesn't matter which way they go in. Splay the leads apart, flip over the board, solder it down and trim off the excess leads. Take the remaining Ceramic Caps and add them to C4 and C5.
Step 6: Make: Step 3
Add the 2 Electrolytic Caps at C6 and C7. These caps are polarized, the longer leads go through the square holes (next to the + marked on the circuit board). The caps have stripes on their bodies, the stripes go on the left (pointing towards the center of the board).
Add the voltage regulator at 'VR'. It's a little black can with a notch cut out and has three legs coming out the bottom. The notch should point towards the edge of the board, as indicated on the marking on the board.
Add the 4th 10k ohm resistor (Brown - Black - Orange) at R4.
Step 7: Make: Step 4
There are 3 buttons on the SIDstick to go to the next track, go back, and Play / Pause. Add the buttons at S1, S2, and S3. These guys snap right in - flip over the board and solder them down.
The volume is controlled using the thumbwheel potentiometer, add it on the top corner of the board, as indicated on the pcb.
Step 8: Make: Step 5
Take the 2 machined pins, split them apart with your dikes, and scrape off the plastic. You'll have 2 little pins. Drop the pins in the 2 holes on the PCB marked 'Xtal'.
Use a sticky bit of post-it note to hold them on the board, flip the board over, and solder them to the board. The post-it note will keep them from falling out before they're soldered in.
Once they're soldered in, just trim off the thin metal tips. This will be your crystal socket.
Step 9: Make: Step 6
Snap in the sockets. The 40 pin socket goes at U1, right in the middle of the board, the notch is closer to the 2 electrolytic caps.
add the headphone jack next to the buttons
The 8 pin socket goes at U2, the notch is closer to the edge of the board.
Now, push the Propeller into the socket - the notch on the chip pointing the same was as the socket. Same for the EEPROM.
Step 10: Make: Step 7
Add the pin headers to the uSD board on the outside row of holes. Now, rest the uSD card slot on the prop, as show in the photo, so it rests directly on the IC. Flip the board over and solder the pins directly to the PCB.
You can drop your crystal in the socket now - just trim all but 3-4mm from the leads on the crystal and insert them into the pcb at 'XTAL'.
Step 11: Make: Step 8
To connect the battery pack, there's a hole next to the battery connection on the board. String one wire from the battery pack through the hole, and tie the other wire to it - this will provide for some stress relief.
The red wire will go through the hole marked '+', the black wire goes through the hole marked '-'.
Step 12: Usage & Downloads
UsageUsing the SIDstick is simple. Flip on the power switch (located on the battery box), and it will start playing the first song (alphabetically by filename) on the memory card. Pushing the 'play/pause' button will stop / start the music, and previous / next will let you skip tracks.
When loading up your memory card with tunes, keep in mind two things;
1 - The SIDstick will only recognize filenames in an '8.3' format. This means you need to keep filenames to 8 characters with a 3 character extension. 'song.dmp' is okay, but 'thisisasong.dmp' is too many characters. The SIDstick will skip over any tracks that have too many characters in the filename.
2 - .sid files need to be converted to .dmp files before they'll play. This is a really brief process and Johannes has built a cross-platform converter with a nice little UI. The Windows version is right here, and Mac and Linux version should be ready in just a few days.
That's it! Enjoy your SIDstick!
Everything is available under the MIT License, which is basically public domain:
SIDstick firmware: Initial version. Check the project page for updated versions.
Schematic - pdf, .dch
PCB layout - pdf, .dip
Hi-res photos for this howto are on flickr.
The SIDstick is available as a kit from Gadget Gangster