Instructables
This hack will allow user-written software to be run on a JuiceBox media player toy. It works by tricking the built-in picture viewer application to run code contained in a .JBP picture file that starts with a specific 8-byte sequence. Normal operation of the JuiceBox is not affected, other than the 1-out-of-18-quintillion chance of a real picture containing the trigger sequence.

You will need the following items and equipment:

  • A JuiceBox, either 2MB or 8MB. (To tell the difference: only 2MB units have a power-on LED, located above and to the right of the REWIND button.) Note that an 8MB unit does not necessarily allow larger programs to be run, the top 6MB normally just goes to waste.
  • A SD/MMC card adaptor for the JuiceBox, either the official one that came with the MP3 Starter Kit, or a homemade one as numerous people have built; a SD or MMC card of no more than 512MB capacity; and some way of copying files onto that card from a computer. Basically, you have to be able to use the built-in picture viewer application.
  • A soldering iron with a fine tip.
  • At least some knowledge of how to USE that soldering iron - I wouldn't recommend this as your first soldering project. You will need to be able to solder pins that are spaced 1/20" apart without bridging them.
  • Solder, preferrably of small diameter - I use 0.020" solder for fine work like this.
  • Tweezers and/or needle-nose pliers.
  • Wire cutters.
  • Small Phillips and flat-tip screwdrivers.
  • Electrical tape.
  • A magnifying glass would be very helpful.
  • Modding your JuiceBox to add a serial port is necessary for some Pixecutor programs (such as the one that gives you shell access), but there are still things you can do without a serial port.
  • A PIC microcontroller, specifically a PIC12F508-I/SN, programmed with the Pixecutor code found here: http://www.elinux.org/wiki/JuiceBoxPixecutor (try http://moin.elinux.org/wiki/JuiceBoxPixecutor if that site doesn't have the info). This is not something you're likely to be able to do yourself; even if you had a PIC programmer, you probably don't have the adapter needed to handle a SOIC-8 chip (and those aren't exactly cheap). I now sell programmed chips for those of you who aren't equipped to do it yourself. If anybody else out there wants to offer preprogrammed chips at a reasonable price, I'd be happy to link to you.

(So why didn't I use a DIP-8 chip that is compatible with readily-available PIC programmers? Two reasons: First, only a SOIC chip has the right pin spacing to sit directly on top of the pads it needs to connect to - a DIP chip would be a lot more work to install. Second, there simply isn't enough room available for a DIP - you'd have to cut a big hole into the battery compartment, forcing AC adaptor use only. If you weren't planning on ever using battery power anyway, and have a PIC programmer, feel free to use a DIP part (PIC12F508-I/P). The picture notes on step 2 should contain all the info you need for wiring it up.)
 
Remove these adsRemove these ads by Signing Up
G.A.Pster5 years ago
Would it be possible to do this with a Pixster?
jasonharper (author)  G.A.Pster5 years ago
As far as I know, there isn't any sort of accessory for the Pixter that lets it use external storage cards, which is a fundamental requirement for what Pixecutor does. The minimal amount of hardware that would let you run your own code on a Pixter would probably be an entire cartridge with ROM and a storage card interface, a much more complicated project than the Pixecutor.
andrew.mac6 years ago
can you run Mac OSX ????????
jasonharper (author)  andrew.mac6 years ago
If you're asking if the ARM toolchain can be run under Mac OS X, the answer is yes - in fact, all of the demo programs I supplied were compiled on a Mac. If you're asking if Mac OS X could be run on the JuiceBox, well... the concept is good for a laugh, at least.
mycroftxxx7 years ago
This is an excellent instructable. I vaguely followed the juicebox dev process on www.linux-hacker.net, and am very pleased to see this project and instructable in the light of day. Excellent work, especially in light on how much work it took to get to this point!
Odziz7 years ago
Went to your page JuiceBoxPixecutor but its blank, any probs with this ?
jasonharper (author)  Odziz7 years ago
Looks like that wiki got restored from an old backup. Hopefully they'll be able to restore everything eventually, but at the moment the best I can suggest is that you do a Google search for {{{pixecutor site:elinux.org}}} and click the "Cached" links for each page.
westfw7 years ago
Nice source code; well commented/etc. Sorta unusual for this sort of project. (Good Programmer!) I wonder if a lot more can be done with this sort of self-contained "jtag bug." Desperately in need of those demo programs, though. Should be compatible (except perhaps physically) with jtag debugging if you connect a spdt switch from the reset pin to GND/VCC. Connected to GND, the chip will stay reset, with all the pins tri-stated.
jasonharper (author)  westfw7 years ago
Sorry about the delay in getting the demo programs up - there was a random flakiness in some of them that I wanted to be absolutely sure was gone before making them public. Anyway, they're now available here.

Holding the PIC in reset would indeed allow it to stay out of the way of a JTAG debugger. However, there's no general way to get the JTAG debugger to tri-state its outputs, to get out of the PIC's way. You'd probably have to physically disconnect and reconnect the JTAG pod every time you ran the program.
LasVegas7 years ago
Your pictures are good. Not enough of them though. It would be nice to see the product you're working with; Without having to google for it. I would say maybe 2% of us know what the product is at all... (I'm not one of them.) It would also be nice to see your finished project in operation. That would give us the idea that it actually worked.