Homebrew HitClips

A high-capacity, high(ish)-quality audio cartridge for use with the popular toy music players from Tiger Electronics.

Similar projects worth following
HitClips were a series of music playing cartridges (and accompanying players) made by Tiger Electronics in the early 2000’s. They were very small, very cheap, and very popular for a short period of time (before mp3 players became ubiquitous). It seems the children they were marketed towards did not care that they sounded terrible and only contained ~60 seconds of a song on each.

I figure it’s time for redemption! So here are my modernized HitClips. As far as I can tell, they are compatible with all of the ridiculous players that were produced 20 years.

- 8 Bit, ~16khz mono audio (trust me, still much better than the originals)
- Cartridge audio can be updated easily (spoilers: it’s just a microSD card)
- Each cartridge can hold hours (days?) of audio (limited by the size of your FAT32-formatted SD card)
- 3D-printable cartridge case

It seems that many of my projects these days are jump-started by ancient blog posts. Shoutout to Michael Ciuffo (aka ch00f) for figuring out the cartridge pinout and general usage way back in 2013.

How does it work?

  • HitClips reproduce audio via two PWM outputs, each representing ½ of the original signal. When the signal goes “positive” (if we’re thinking in AC terms, voltage > 0), the magnitude is approximated via PWM on one pin, and when the signal goes “negative”, the first pin goes silent and the other pin spits out the PWM. The pin that is not actively PWM’ing should be pulled high (ch00f theorizes that it was set up this way “to directly drive the push and pull FETs of a class D amplifier“ in the player).
  • My cartridge holds a SAM D09 microcontroller, which reads chunks of a PCM/WAV audio file from an onboard SD card and iteratively outputs each sample via the dual-pin PWM method described above (at a predefined interval, roughly 16khz).
  • The player instructs the cartridge to stop/start playback by pulling pin [x] low via an external button. My firmware just naively monitors the state of this pin and restarts it’s main loop when it detects a transition from high to low.

Implementation notes:

  • The players operate at ~4.5 volts DC, generally provided by (3) 1.5v batteries. This power is forwarded via spring fingers, which make contact with exposed pads on the cartridge. I am using a small linear regulator on my cartridge to knock this down to 3.3v for the microcontroller and SD card.
  • I’m using the petitfs library for reading from the SD card. It uses bit-banged SPI, so all you have to do is drop a few C files into your project and provide macros for reading/setting the SPI pins high or low. Wonderfully portable! I should know, because the SAM D09 board was not the first one I chose…
  • … I initially had this project running on an ATTINY84. However, with the slower internal clock (8Mhz vs 48Mhz) and smaller RAM (0.5kb vs 4kb), I couldn’t buffer enough audio during read cycles to keep up with the play “head” - at least not at an acceptable fidelity. Thankfully Timon pointed me towards the SAMD09 chips, which have the same footprint/external component requirements.
  • I honestly could not figure out how to rapidly switch the PWM signal between two microcontroller pins (I am new to the SAMD world and I find the mux stuff very confusing). Instead, I am using a single pin for PWM and another GPIO pin to flag whether or not the signal should be “positive” or “negative” at any given moment. I then use an external “decoder” IC to route the PWM based on the state of the GPIO flag. As a bonus, the decoder chip is more flexible in terms of power input, so I am also using it to bump the PWM voltage back up to match the player’s. Is it still called “logic-level conversion” if it’s PWM? :shrug: 
  • I created a small “daughterboard” to stack on top of my main PCB, which makes the pads easier to reach by the player’s internal spring fingers and protects the surface mount components from potential snags. I initially planned to use small brass pins to connect the two boards, but eventually realized it was easier to just cover the pads on the original PCB with some big ol’ solder blobs, lay the daughterboard on top, and hit each external pad with a little heat/extra solder. This solution feels a little clunky, but ultimately paid off because I was able to quickly iterate on some alignment issues.
  • You’ll notice my cartridges only have 6 pads, while the originals tend to have 8. I have no idea what the others are for! They aren’t connected on any of my cartridges, as far as I can tell. There are some fancy cartridges with extended functionality (like FM radio!), so maybe there’s something there.

  • 1 × Microchip ATSAMD09C13A-SSUT Microcontroller
  • 1 × TI SN74LVC1G139DCUR Decoder IC (for routing PWM)
  • 1 × Hirose DM3D-SF MicroSD card holder
  • 2 × 1uf capacitor 0805
  • 3 × 0.1uf capacitor 0805

View all 6 components

  • Summer 2022 update (new revision)

    Guy Dupont08/20/2022 at 20:42 0 comments

    I have been working on hardware revision for the past few months and am almost ready to share it / hopefully make available! The new cartridge will be RP2040 based and will run CircuitPython, which is making development / customization much, much easier. If you want updates, I have added a mailing list signup link to (it's slow, I know).  I might create a second page once I am done, but I will be sure to link the new one here.

  • v1 Hardware

    Guy Dupont01/09/2022 at 13:53 0 comments

    Here is the current schematic/layout. I am relatively new at PCB design, so please let me know if you see anything that can be improved. (Please be kind)

View all 2 project logs

Enjoy this project?



Starhawk wrote 08/20/2022 at 14:04 point

I advised ch00f for an update to that article that he promised and then failed to deliver. I actually deconstructed the player properly. There's no amplifier, it's direct-driving the lone earbud from the cartridge.

I'm pretty sure I even still have the photos to prove it, from way back then, lol.

  Are you sure? yes | no

Guy Dupont wrote 08/20/2022 at 20:31 point

ha nice! That's hilarious. At some point I want to do a player as well. If you want to add any info to this page, let me know! I did a large revision of the cartridges and I'm hopefully gonna post an update soon.

  Are you sure? yes | no

Starhawk wrote 08/20/2022 at 20:43 point

Honestly it kind of ticked me off towards him.

Hey, if I send you the old pics via the Chat thing, would you post them here? IIRC, they've never seen the light of day.

  Are you sure? yes | no

Joshua R. Taylor wrote 08/17/2022 at 16:07 point

Are you selling these? Would love to buy one pre-made :)

  Are you sure? yes | no

Guy Dupont wrote 08/20/2022 at 20:35 point

Hey! I think I did a big hardware revision and I think I am alllmost ready. I have a form to sign up for email updates at

  Are you sure? yes | no

Benedikt Müssig wrote 07/27/2022 at 16:32 point

The socket in the hit clips player looks a lot like the sockets used for SIM/smartcard readers and so does the arrangement on the cards.

  Are you sure? yes | no

Ken Yap wrote 01/08/2022 at 23:22 point

Fascinating. ch00f's blog was a good read and the final result mp3 sounded fairly decent. Have a great time with your revival project, you now have an interesting gadget to show off. 👍

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates