Magic 8-Ball Gets A Modern Makeover

Back in 2012, [sjm4306] was surprised when his breadboard rendition of the classic “Magic 8-Ball” popped up on Hackaday. If he had known the project was going to be enshrined on these hallowed pages, he might have tidied things up a bit. Now with nearly a decade of additional electronics experience, he’s back and ready to show off a new and improved version of the project.

The 3D printed case helps sell the look.

Conceptually, not much has changed from the original version. Press a button, get a random response. But on the whole the project is more refined, and not just because it’s moved over to a custom PCB.

The original version used a PIC16F886 with a charge controller and experimental RTC, but this time around [sjm4306] has consolidated all the functionality into the ATmega328P and is powering the whole thing with a simple CR2032 coin cell. As you can see in the video after the break, assembly is about as quick and straight-forward as it gets.

As with the original, there’s no accelerometer onboard. If you want to see a new message from your mystic companion, you’ve got to hold the button to “shake” the ball. A timer counts how long the button is held down, which in turn seeds the pseudorandom number generator that picks the response. Since each person will naturally hold the button for a slightly different amount of time, this keeps things from getting repetitive.

We don’t often see creators revisit their projects from the olden days, but we’d certainly like to. Consider this an open invitation to any hacker who wants to show off how much they’ve refined their skills; do-overs are always welcome here at Hackaday.

13 thoughts on “Magic 8-Ball Gets A Modern Makeover

  1. I would suggest replacing the button with capacitive touch sensor, and maybe add an accelerometer, so when ball is picked, the accelerometer is turned on (maybe by adding a BJT in series with power input, controlled by uC).

  2. Electromechanical magic 8 ball….

    Think of an arrangement a bit like a bell, rigid-ish clapper, free pivoting, that when the bell is upturned can fall in any direction… but our bell is just this pendulum thing and 8 contacts around the edge… push button to turn on the current, lights the pea bulb under the message corresponding to the contact the pendulum fell on. Reset by turning upside down and right way up again. Need to balance pendulum and achieve evenness of construction such that it doesn’t favor any particular direction.

    Guess you could also do it as a steel ball held off center of a cupped ring of contacts by a pin or lump. IDK why I’m thinking up electromechanical m8ball crap, guess it’s just the solve the problem 10 ways mental exercise LOL

  3. I remember the original version, I had big plans to learn microchip C, change the code to leverage a rolling ball switch and eventually a gryoscopic sensor to rotate the display as needed.
    I’ve got a pile of displays and coin cell battery holders I hope to be more successful with this iteration.


  4. I’m not sure I’d be satisfied with this if it didn’t at least attempt to mimic the physical one and bring a triangle shape (one surface of a D20) out of a dark mirky void with your ‘prediction’ on it – was kind’ve the point of the toy, as if it had magicked up your prediction.

    I guess it could be done with a low res OLED display like this but the pixel count is probably a bit low – perhaps blank everything, then animate the triangle so it looks like the triangle is being cropped by the rectangular edges of the display as it comes into view, that way the text is still legible at full size.

    Or just forego the triangle completely and make the text ‘mysteriously’ appear with some bitmap manipulation. And a wavey effect might be cool too!

    1. I have an idea on the mysterifying… have a ball unit, no display, but inside some micro, and a modulator/low power transmitter for TV, and the RF amp gain should be controlled with a capacitor, with a 2 or 3 second rise time to “full power” which is only enough to put the message on a TV screen at a few feet. So you use it with an old black and white tube TV and flip the ball and the message slowly appears out of the static, messages rising out of the noise of the cosmos, mysterious enough?

      Maybe you can do it all on one AVR/duino, was it CNLohr did NTSC bitbanging? Just need a tilt switch and the cap controlled amp. It’s on here somewhere.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.