Shop OBEX P1 Docs P2 Docs Learn Events
Controlling Disney Magic Ears with the Parallax Badge — Parallax Forums

Controlling Disney Magic Ears with the Parallax Badge



This is a project that I put off for 2 years. Last month, I was able to spend some time to get it rolling.

Comments

  • Awesome Terry!
  • What an idea! Very smart.

    Now I'm wondering what else can be controlled by a wondering badge.... Ha! Lot's of evil ideas !!!!!

    Wall of TV's at the local department store! Nudge all the channels as you wonder past.......

    Please please make a video as you wander the Magic Kingdom!
  • So, my 1 watt 940nm LEDs arrived. I setup a test harness on my quickstart board. With a single LED, results were pretty darn good. I could easily control the magic ears from 25ft. I ran out of room to test distance indoors. Next step is rig it up for the badge. At this point I am thinking of using 3 or 4 of these 1 watt LEDs :)
    5312 x 2988 - 2M
    1494 x 2656 - 1M
  • JonnyMacJonnyMac Posts: 9,104
    edited 2017-02-25 15:33
    I have a set of those, too, and previously used the QS-HID to control them. I work with one of the FX departments at Disneyland and we have talked about adding GWTS ears control to a prop on the Disney side when it comes up for refurbishing. There are lots of small props & specialty displays at Disneyland that use the Propeller, and the group I work with makes items for other Disney entities; I really enjoy working with them when opportunities pop up. The last project was an Aladdin's Lamp design this is on Disney cruise ships.

    GWTS Protocol (2400 baud over IR) Information

    http://doityourselfchristmas.com/forums/showthread.php?25142-Glow-with-*OUR*-Show-and-MSP430G2553-discussion&p=257733#post257733
    http://doityourselfchristmas.com/forums/showthread.php?25142-Glow-with-*OUR*-Show-and-MSP430G2553-discussion&p=259733#post259733
    http://doityourselfchristmas.com/forums/showthread.php?25142-Glow-with-*OUR*-Show-and-MSP430G2553-discussion&p=259750#post259750
    http://doityourselfchristmas.com/forums/showthread.php?25142-Glow-with-*OUR*-Show-and-MSP430G2553-discussion&p=259782#post259782
    http://doityourselfchristmas.com/forums/showthread.php?25142-Glow-with-*OUR*-Show-and-MSP430G2553-discussion&p=259872#post259872

    I haven't worked with this in a long time, and as my GWTS ears are on a shelf just a few feet from my desk, I may have to put a fresh set of batteries in and start playing again

  • Jon, Did you get to work on the new Avatar exibit?

    https://disneyworld.disney.go.com/destinations/animal-kingdom/pandora-world-of-avatar/

    I know it's East Coast, but they like your work.

  • No, I didn't have anything to do with that. I work with one of the shops in the Anaheim park.
  • VonSzarvas wrote: »
    What an idea! Very smart.

    Now I'm wondering what else can be controlled by a wondering badge.... Ha! Lot's of evil ideas !!!!!

    Wall of TV's at the local department store! Nudge all the channels as you wonder past.......

    Please please make a video as you wander the Magic Kingdom!

    Don't! I used to have a TV-b-gone and would switch off all of the TVs in the local shop. I forgot that IR shows up really well on CCTV! :blush:
  • ke4pjwke4pjw Posts: 1,155
    edited 2017-04-26 02:03
    In the Magic Kingdom with a pair of 1 watt 940nm LEDS:)
    529 x 833 - 60K
  • Nice!
    ke4pjw wrote: »
    In the Magic Kingdom with a pair of 1 watt 920nm LEDS:)

  • RaymanRayman Posts: 14,646
    Wonder if could turn magic ears into laser tag game with this...
  • Terry, How are you driving those 1Watt LED's? How do they work in the park?
  • Well, it almost ended as a massive fail. I had updated the code to flash a couple of different sequences by pressing different buttons. I went to Mickey's PhilharMagic and the badge had water squirted on it, rendering the buttons unusable. I found this out as I walked out of the show, at dusk, to a cart loaded with "Made with Magic" products. Couldn't get it to work at all. After a few minutes of wiping it down and fiddling with it, it came alive. The crowd proved to be the limiting factor. Too many bodies between the badge and the ears. There was a large display of magic ears in the giftshop nearby. As soon as I walked in, I could control the ears with the badge pointed almost any direction. Later on in the evening, I was able to find a platform to stand on at "Frontier Mercantile". I could control mickey ears over 50ft away! Was kind of neat hitting the "strobe" and watching a whole cart of these things flash. Confused the heck out of the girl that was selling them. There is a bug however. Something in my code will cause a large percentage of the pink "Minnie Ears" to lock up when the reset and both ears red packets are sent in rapid succession. Not sure what that is all about. It never happened with my older 1st gen ears.

    I was happy with the results, not as impressive as I imagined, but there is time to create a better rig. I must say that the badge platform is pretty darn awesome to develop on.

    I think my wife may have taken some video (my phone had died). If it is good, I will post it.

  • Rayman wrote: »
    Wonder if could turn magic ears into laser tag game with this...

    That would be awesome! Could totally work too! After a minute or so, the ears go back to random light sequences. Just add a lens to focus the beam. Easy!
  • Publison wrote: »
    Terry, How are you driving those 1Watt LED's? How do they work in the park?

    I directly drove them off of the battery and switched them with a generic NPN transistor I got from Radio Shack. IC was rated at 800ma IIRC. Worked pretty good! I found that I could overdrive the LEDs when they are modulated, so 3.7V wasn't a problem :)
  • Do the Ears work at 36 or 38Khz?
  • Publison wrote: »
    Do the Ears work at 36 or 38Khz?

    I do recall changing that. I believe I changed it to 38Khz.

    I thought I posted source code here. I will post it this evening.
  • Attached is code for this project.
    P17 sends a reset packet.
    P26 sends a reset packet then walks through a sequence of primary colors in a loop.
    P27 strobes.

    Hold down P17 before changing between P27 and P26 modes.

    Please pardon the code. I butchered Jon's awesome code.
    The modules that I had to modify are marked tt_ instead of jm_. I had to set 2 stop bits in the TX portion.
  • My ears should arrive tomorrow. Can't wait to try them out!

  • Ears arrived today.

    Very cool Terry, and kudos to Jon for the heavy lifting.
  • There's a whole gaggle of people in SoCal who head out to the park with recording devices to record the shows for reverse engineering. I took their information and deployed it on the Propeller.
  • ke4pjwke4pjw Posts: 1,155
    edited 2017-04-29 23:12
    Here is some consolidated info you can use Publison for more colors and effects.

    https://sites.google.com/site/listentoourlights//home/how-to/glowwiththeshow/hacking-gw

    I am looking at this lookup table to create DMX to GWTS mappings.

    https://github.com/Materdaddy/GwtS-Arduino/blob/master/GwtS.cpp

    I have had a lot of fun with this project.
  • Cool Beans!

    Thanks Terry.
  • I'm in TX without my ears but knocked together some no-cog (does use one counter) code to play with.
    var
    
      byte  txpin
      long  bittix
    
    
    pub setup_ir_serial(pin, baud, modfreq)
    
      txpin := pin
      bittix := clkfreq / baud
      outa[txpin] := 0
      dira[txpin] := 0                                              ' no modulation until ready
    
      ctra := (%00100 << 26) | txpin  
      frqa := ($8000_0000 / (clkfreq / modfreq)) << 1                   
    
    
    pub irtx(c) | t
    
      c := ((c | $F00) << 2) ^ $FFF                                 ' add start and stop bits
    
      t := cnt                                                      ' sync to system clock
      repeat 10                                                     ' start + 8x data + stop
        waitcnt(t += bittix)                                        ' wait bit time
        dira[txpin] := c >>= 1                                      ' output next bit (LSB)
    
    
    pub irtx_buf(p_buf, len)
    
      repeat len
        irtx(byte[p_buf++])
    
    
    var
    
      byte  gwtsbuf[18]
    
    
    pub tx_gwts9x_command(p_cmd, len)
    
    '' Format and transmit GwtS 9x command
    '' -- p_cmd is pointer to command bytes (sans 9x header and checksum)
    '' -- len is bytes in command, 1..16
    
      gwtsbuf[0] := $90 | (len-1)                                   ' set header with length
      bytemove(@gwtsbuf[1], p_cmd, len)                             ' copy packet to tx buffer
      gwtsbuf[len+1] := crc8x(@gwtsbuf, len+1)                      ' add checksum
      irtx_buf(@gwtsbuf, len+2)                                     ' send it
    
    
    pub crc8x(p_src, n) : crc | b                                     
                                                                      
    '' Returns CRC8 of n bytes at p_src                                
    '' -- implementation by Micah Dowty                               
                                                           
      repeat n                                                        
        b := byte[p_src++]                                            
        repeat 8                                                      
          if (crc ^ b) & 1                                            
            crc := (crc >> 1) ^ $8C                                   
          else                                                        
            crc >>= 1
          b >>= 1
    
Sign In or Register to comment.