Introduction: Sidstick: Pocket Chiptunes Player

100,000 SID songs in your pocket!

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.
Kits and PCB's are available on www.gadgetgangster.com.  Here's a demo:



And a few more Chiptunes favorites

Ocean Loader:


A few more good ones:


Step 1: FAQ

What are Chiptunes?
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
SIDcog runs on a Parallax Propeller, an 8-core, 80MHz microcontroller, and can be reprogrammed with a PropPlug, connectors are on the board.

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).

Tools

You'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 info@gadgetgangster.com;

Voltage Regulator
MCP1700 (3V, TO-92)
Mouser Part#: 579-MCP1700-3302E/TO
Qty: 1

Tactile Switch
Mouser Part#:
653-B3F-1000
Qty: 3

HC49/US Xtal
Value: 5Mhz
Mouser Part#:
ECS-50-20-4X
Qty: 1

40 Pin DIP socket (600 mil)
Mouser Part#: 517-4840-6004-CP
Qty: 1

8 Pin DIP socket (300 mil)
Mouser Part#:  517-4808-3004-CP
Qty: 1

3.5mm Stereo Headphone Jack
Mouser Part#: 806-STX-3100-5N
Qty: 1

47uF Radial Electrolytic Cap (micro-mini)
Mouser Part#: 140-L25V47-RC
Qty: 2

Propeller Microcontroller
Available at Parallax.com
Qty: 1

uSD Module
Available at Gadget Gangster
Qty: 1

10k ohm thumbwheel potentiometer
Mouser Part#:  3352T-1-103LF
Qty: 1

3xAA Battery Box
Mouser Part#: 12BH331/CS-GR
Qty: 1

SIDStick PCB
Available at Gadget Gangster
Qty: 1

32kB EEPROM
Mouser Part #:
24LC256-I/P
Qty: 1
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)
Qty: 4

.1uF Radial Ceramic Capacitor (104)
Qty: 5

Rectangular pin headers
Qty: 6

Machined pin headers
Qty: 2


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

Usage

Using 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!


Downloads

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