Zandar's Revenge

Gutting an old 90's board game center piece for the meme

Similar projects worth following
'Ask Zandar' is a board game from the 90's with this dope wizard center piece. The whole game centers asking a yes or no question and then waving your hand above Zandar to get a response. It's kind of like one of those 80's/90's board games to see if Timmy from math class has a crush on you, but with a wizard spin and a little bit of side betting. Fword the game though, I just want the Wizard to say more funny haha's.

The whole project started after seeing a commercial for the toy on a Jaboody Dub's twitch stream. The meme potential was just off the charts.

Hardware wise, it's an ESP32 running Arduino which plays audio from a SD card via an i2s dac+amp. Also there's with a few transistors to drive the R/G led in the Zandar's orb. For inputs, there's a pushbutton in the back and a LDR to detect the a hand wave hidden in his hat. It's powered from the original x4 AA's (regulated via the dev board's LDO).

The code is based on Xtronical's awesome writeup on working with i2s ( in particular). 

The TL;DR on the code flow is: initialize hardware, scan the SD card for files, wait for input, play sfx sound, play answer sound, goto: wait for input. Also, on the second core, I'm controlling the LEDS by adjusting the color and brightness based on the current audio bank and current data being sent to the dac respectively. 

Currently, I have 4 folders in the SD card (yes/no/meme/sfx) where each folder is a audio bank of answers. There's some logic implemented in the code to prevent repeats as well.

Beyond just the initial struggle of finding and getting a audio library to play nice, the biggest headache was just getting a solid response from the LDR for the wave detection. Triggering from a straight threshold was a little janky, so I ended up passing the ADC through two low pass filters, one running 'fast' and the other 'slow'. Then I'd take the (fast - slow) value against a threshold value and that seemed to play nicer. 

The biggest thing I'm still battling with is if you're just waving Zandar around, sometimes it'll detect a trigger if it's pointed directly at a light source. Ideally I would have liked to used an IR emitter/detector pair instead, but since it's in a plastic globe so I didn't think that'd go too well...

Future ToDo's:

  • Text-To-Speech
  • Voice Recognition (either full or just enough to use as a trigger)
  • Smoke (hook up a vape to get some spooky effects)
  • Hidden Cap-Touch (used to 'force' answer banks)
  • Port to IDF v4.2 (In progress...)

ino - 26.06 kB - 04/16/2021 at 22:17


  • Basic Flow Completed

    McGruffff03/01/2021 at 19:08 0 comments

    Pretty much done with the basic scripting. I've been considering having a 'hold the button during boot up to do a intro sequence' for special occasions but we'll see.

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

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