The Sorcerer Mickey's Magic Wand was released in October of 2014, along with two other new Made With Magic products. It was a good day for Made With Magic. And the hacking community.
It's release dispelled the reservations some hackers felt about sharing some of their observations concerning details of how the technology works. There was the thought that obnoxious individuals might use the operational details to cause havoc with other guest's devices in the parks. Little did they know that the folks at Disney would take care of that, themselves.
The Magic Wand, and it's cousin the Paintbrush, are unlike the other Made With Magic products. They're designed from the start to be MWM controllers. Sure. If you take them to a show, like World of Color, they'll happily respond to the broadcast show codes like the other MWM products. But both devices come equipped with an additional two buttons that allow selecting and transmitting MWM lighting effects to other MWM devices.
The packaging doesn't really explain how to get the most out of this gizmo. I first learned how to use this from a post in the DoItYourselfChristmas.com forum. Jon Fether wrote:
"The palette button has two select nodes, short push to select pattern and long push to change color palette in the same pattern. The LEDs in the wand show the chosen palette option and pushing the wand button transmits it to other Made With Magic/Glow With The Show devices. "
That's pretty much it. I'll say more about the actual codes sent a little later.
This report covers the teardown of v1.2. You can compare this teardown with a teardown of v1.1, by following this link. Hard to tell any significant difference, really.
Among the departures from the other MWM items, is the use of 2 AA batteries instead of the usual 2 AAA batteries. Actually, it's the only MWM product to use AA batteries.
And then there's that water-clear, 5mm Infrared LED on the end of those wires that extend all the way out to the opening at the end of that white plastic "wand". That's what sends out the codes. With fresh batteries, the signal was good out to a little over 20 ft, using a Headband as the target. The view angle of the signal is really tight. If I had to guess, I'd say it's on the order of 20 degrees or less. To get the desired response, the Wand needs to be aimed right at the target.
The close-up of the PCB reveals a couple more differences from the other products. Click the photo for a larger image. The pads for the buttons are evident. The processor is a TI MSP430G2755 instead of the TI MSP430G2553 found in most of the other MWM products. That affords the Wand 8X the RAM, more GPIO pins, an additional 16 bit timer and 4 more ADC channels to work with than most of the other MWM items.
There's also a Q1 component located near the IR LED's connection that's not seen on the PCBs of most other products (excluding the Paintbrush). The chip is labeled 1F, suggesting it's a NPN transistor. Most likely, it's used to boost the output to the IR LED.
The RGB LEDs are through-hole, water-clear 5mm LEDs. That's different from the surface mounted LEDs used in most of the MWM products. The only other MWM product that uses this type of RGB LED is the Glove and, with the Glove, the fabric covering the LEDs does a reasonably good job of diffusing the colors. The Wand's design doesn't work out as well. That lack of diffusion of the individual component LEDs accounts for the rainbow-like effects in the barrel of the Wand that aren't seen from the other products. Combine that property with the close proximity of the two LEDs and it can be hard to tell what the intended colors are and which side is contributing at any given time. Not the best product to chose if the intent is to unravel what the MWM codes do.
Not much on the backside of the PCB. Power connections, serial number and the mounting points for the right side LED.
This is where things get interesting. All MWM products have certain codes internally stored that they draw from and display when there aren't any show commands being received. Most of them will randomly rotate through their internal codes every 8-12 sec. They also emit IR signals during this time which aids in syncing their displays with each other.
The wand doesn't do that. When powered up, it picks an effect and will stick with that same effect until the pattern button is pressed or the device is shut down. It doesn't emit any IR signals unless the send button is pressed. It won't sync with other MWM devices. Not a team player.
3 for 1
To get a peek at the stored codes, we have to give a quick push on the pattern button and then push the send button to see what we got. If you're using a suitable recorder, what you'll see will be three phrases that look something like (hexidecimal notation):
96 19 02 96 10 19 32 0F 26
9D 26 48 82 D0 0E 96 59 04 08 48 0F D0 3A 40 E4
96 19 02 96 10 19 32 0F 26
The first and third phrases are always identical and always begin with the 96 19 codes. If the 96 19 ... codes are fed into a suitable transmitter and sent to a MWM device, the device doesn't respond. It's the middle phrase that codes for the desired response. So why is it that the 96 19 .. codes are sent twice and not the middle phrase? Dunno. It's a mystery. As we'll soon see, all three phrases are intimately related though the requirement for all three remains unresolved.
A quick press of the pattern button causes the Wand to move on to the next stored pattern in the sequence. The sequence "number" is given as the third code in the 96 19 XX ... phrase and iterates through the following templates:
96 19 01 ...
9A 26 0C ## 48 83 D0 45 (??) D0 42 (TT)
96 19 07 ...
9B 26 0C ## (CC CC) 58 EE 48 04 D0 3D (TT) 34
96 19 08 ...
9C 26 0C ## (CC CC) D0 32 F0 D2 41 04 (TT) 20 AF
96 19 0B ...
99 24 58 (TT) 48 0D D0 3E 32 (CC CC) 83
96 19 0D ...
9B 24 (CC CC) D0 32 DF 5A 0A 08 (TT) 48 91 2C
96 19 0E ...
9C 26 0C ## (CC CC) 58 EE 48 03 D1 3C 07 (TT) 43
96 19 10 ...
99 26 (CC CC) D1 42 (TT) 20 D0 32 F0 11
96 19 01 ...
9A 26 0C ## 48 83 D0 45 (??) D0 42 (TT) 8A
and then back through 07, 08, 0B, 0D, 0E, 10, 01, etc
The "sequence" seems to have a lot of holes in it. Why not just 01h-07h? Sending the code sequence 92 40 A0 82 09 to the Wand produces much the same effect as pushing the pattern button and then the send button. Using that method, templates with indexes of 01,02,03,04,06,07,08,09,0B,0D,0E,0F,10,11,12 may be observed. Only the 05,0A,0C indexes are missing and haven't been observed. Why aren't these additional templates accessed when the pattern button is pushed? Dunno. As an aside, the 92 40 A0 82 09 trick doesn't work with the Paintbrush. It only returns the same 01,07,08,0B,0D,0E,10 templates that are observed from pushing the Wand's pattern button.
3 more substitutions to note
Byte 4 of the 96 19 .. phrase indictes a color selection (CC). If the value is 80h or above, it serves as a literal argument for the D0 0E (CC) sequence. Otherwise, if it's a number between 09h-40h, it selects a right-left color pair from the primary color palette, ie 09 => 61 69, 0A => 62 69, 0B => 63 69, etc.
Byte 5 indicates a timing selection (TT). For some reason, the substituted value is always half the value given by the 96 19.. phrase, ie 04 => 02, etc.
Byte 6 relates to the 0C counter value (##). The 0C counter appears to be an internal counter that simply increments every 100 msec.
The final byte is a Maxim 1-Wire checksum.
If we ignore the first template and don't consider the timing changes, each template has the capacity to code for 49 different color combinations, yielding at least 294 different effects. Much more when template 01 is added back and the timing differences considered.
- In the Parks! - This is the most fun option. If you have an Annual Pass, try to buy one inside a store instead of the kiosk to get a Passholder's discount.
- From the Disney Store - You don't really need to be in a park to get one of these if you want one.
- Shop Parks App - You may find more products offered through the app than are advertised in the Store