Raspberry Pi Marshmallow Smores

Introduction: Raspberry Pi Marshmallow Smores

About: Every Christmas for more than 30 years The Mad Wrapper brings an "escape room" style experience to our house. Opening a gift is beyond fun.

A roaring fire makes for a great excuse to toast a marshmallow on Christmas Day. I built a tiny fireplace complete with fire that is controlled by a Raspberry Pi computer.

At first a video of a fire plays continuously inside the box. But when a guest roasts a marshmallow, the scene changes to a ghostly head floating in the void. The disembodied head begins dim and faded. Then, in a short time, the figure grows into focus. The result: sudden hallelujah laugher-filled cheers erupt from onlookers peering into this strange diorama: "Hey. Whoa! Cool! That's Diane!", or "Woohoo!, It's me!" The person who grew from the flames during this round becomes the next recipient of a gift from The Mad Wrapper!

This Instructable contains details on how to build one of these.

Marshmallows, Boxes, Smoke and Mirrors (well...maybe no smoke)

Marshmallows that are attached to packages under the Christmas tree are made of Sculpey polymer clay. Baked into each clay marshmallow is a pair of RFID tags very similar to what one might find on the high-end merchandise in a store -- you know: those those culprit stick-ons guilty of setting off alarms at the exit door when the cashier has forgotten to demagnetize your stuff. But there is a difference. When this RFID reader recognizes a tag, it does not set off an alarm. Instead, it prompts a computer to gently update the scene -- phasing out the fire, and phasing in a person's face.

A Raspberry Pi computer is connected to a small monitor mounted at the top of the miniature custom fireplace. The computer screen faces straight down. A piece of plexiglass set at a 45 degree angle reflects the image outward for viewing. The invisible glass and dark background give the illusion of a head hovering in thin air.

In the idle state, when a marshmallow has not been inserted for roasting, a video of a campfire plays continuously in the background. This fire comes from video footage of a family camping trip last July in Lake Durant, NY. Based on the message written onto the RFID tag inside the marshmallow, a photoshopped picture of a family member is phased in as the campfire image fades out.

Having experienced many TMW Christmases of the past, everyone in the group understands that the person's face from the flames is the recipient of the package that this marshmallow arrived with. That person opens the gift and takes it away to enjoy.

Magic Eight Ball

And, this year, there is a bonus gift: one box contains a customized "Magic Eight Ball". Great for the task of decision making. Ask a yes/no question then hold the eight-ball in the fireplace. Instead of a drifting head, a blue triangle appears with an answer to that question. There are quite a few possible answers that fad-history buffs will be familiar with: "It is decidedly so." "Reply hazy, try again." are a couple.)

Supplies:

  • Raspberry Pi 3 (Note: many items in this kit -- such as the case -- are not required for this project)
  • USB Charger (included in above kit)
  • Raspberry Pi cooling fan
  • Raspberry Pi 7" monitor
  • HDMI cable
  • wire wrap wire
  • Circuit board (this kit also contains LEDs that can be substituted)
  • 8 - LEDs (Any style LED is probably ok. I had leftover wearable LEDs listed below)
  • 8 - 100 ohm resistors
  • RFID reader
  • RFID stickers
  • 8x10 non-glare Acrylic Sheet
    • thin
    • important: non-glare (matt finish on one side)
    • important: shiny on other side
  • Size 40 cardboard box (10x6.25x7.25 inches)
  • 5x5 foot sheet 1/4 inch Baltic Birch plywood
  • Wood glue
  • Black spray paint (flat finish)
  • 4 - 0.75" 4-40 machine screws (7/64" diameter)
  • 2 - 1.5" 4-40 longer machine screws
  • 2 - 1" nylon spacers (standoffs)
  • 6 - 4-40 nuts
  • 6 - #4 washers
  • 8 - rubber grommets (inside diameter roughly 1/8")
  • 1.75 lb (794 g) White Sculpey oven-bake clay
  • 100-pack bamboo skewers from Good Cook

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Electronics

Raspberry Pi

Core to this project is a Raspberry Pi computer which either plays a video of a campfire or shows an image of a person's face on a small 7" display. The Raspberry Pi polls an RFID reader that is connected using a SPI bus. For added effect, red and yellow LEDs glow randomly to give the effect of a flickering fire in the background. A dim blue LED flickers as well for a slightly more realistic effect. A second blue LED flashes brightly every time the RFID reader reads a marshmallow to provide feedback to the user to let them know of a successful read.

Red, Yellow, Blue LEDs

All LEDs are connected to GPIO pins through 100 ohm resistors. LEDs and resistors are soldered to a small circuit board that is hidden from view inside the box. Wire wrap wire connects pins on the circuit board to GPIO pins on the Raspberry Pi.

RFID

The RFID reader is connected to designated SPI pins on the Raspberry Pi through a fairly short set of wire wrap wires.

Warning: you must keep the cables as short as possible. SPI is designed for communication between devices that are very close to each other and technically should be soldered onto the same circuit board. My design violates SPI criteria so is a bit unstable. The software compensates for limitations in the hardware by resetting the SPI bus occasionally. For a real production system, when using SPI over a cable it is best to use twisted-pair wiring combined a set of matched op amps at both ends of the cable. My cables are short enough and the application does not require critical rock-solid communication. Good enough, but not great.

7" Computer Display

The small display I used is designed specifically for the Raspberry Pi. The computer mounts to the back of the display and connects through a short HDMI cable. Although my display supports touch screen, I did not need that and left it disconnected.

Fans, WiFi and RFID

During testing I discovered that the Raspberry Pi can tend to overheat while reading RFID especially if there is a lot of activity over the WiFi such as uploading/downloading files via FTP. Because of this, I decided to replace the heat sinks with cooling fans. This improved stability significantly. (Fan noise was greatly reduced after I mounted the unit on small rubber grommets for sound isolation.) Adding the fan allowed the temperature to drop from 75C to 55C when video and RFID were going. That's significant.

If you do not want to install the fans, I highly recommend disabling WiFi and do all your work with the Pi connected with an Ethernet cable. You should be fine with that configuration.

RFID SPI connections

The following table shows the RFID SPI connections:

RFID ---- Raspberry Pi pin

SDA ---- 24

SCK ---- 23

MOSI ---- 19

MISO ---- 21

IRQ (not connected)

GND ---- 25

RST ---- 22

3.3V ---- 17

LED GPIO connections

The positive end of LEDs are wired to the following GPIO pins (through a 100 ohm resistor to ground):

Pin___(GPIO)___LED color

Pin 11 (GPIO 17) red

Pin 13 (GPIO 27) yellow

Pin 15 (GPIO 22) yellow

Pin 29 (GPIO 5) red

Pin 31 (GPIO 6) yellow

Pin 33 (GPIO 13) yellow

Pin 32 (GPIO 12) blue

Pin 36 (GPIO 16) blue

Step 2: Warning! No Desktop! How Do I Become Normal?

WARNING WARNING WARNING

This project completely takes over the Raspberry Pi primary screen. After installing the attached software, the Pi will boot directly into a video of a campfire. Access to the Raspberry Pi desktop menus, etc. becomes difficult without VNC.

While the campfire burns, the Raspberry pi is working quite normally as a Linux computer. The problem is that the video from this project is placed full-screen in front of the desktop. Nice thing though: you can always access the desktop from a VNC client running on your PC.

So make sure to enable VNC and take note of your IP address.

And SSH works great as well for accessing the Raspberry Pi.

So make sure to enable SSH and take note of your IP address.

If you need to stop the video so you can have a normal Raspberry Pi experience, run the following command after logging in through VNC or SSH:

/home/pi/bin/marshmallow.sh stop

(If the above does not work, maybe your user name is not "pi". So "ls /home" to find out the appropriate user where the application is installed.)

To restart the video and RFID polling, you can reboot.

To disable the campfire completely you can remove the related services that are running. The following removes the symbolic links into /service:

cd /etc/service
ls -l
sudo rm info-beamer led-fire poll-rfid

Step 3: Setting Up the Raspberry Pi

If you are booting your Raspberry Pi for the first time it is best to initialize it with the standard defaults which give you the Raspbian Debian Linux configuration. There are some great tutorials at raspberrypi.org.

Enable WiFi because you will need to access the Raspberry Pi remotely using VNC.

Set the user name to "pi". The attached script scripts assume everything exists under /home/pi so if you choose to have a different user then adjust the scripts accordingly.

Once the computer is up and running you will want to adjust some settings from the menu "preferences / Raspberry Pi Configuration". Set it to this:

  • Boot: desktop
  • Auto login: check
  • Splash Screen: Disable
  • Resolution: CEA mode 16 1920x1080 60Hz 16:9
  • Overscan: Enable
  • Pixel Doubling: Disable

In the interfaces tab enable these:

  • SSH
  • VNC
  • SPI

Now, from the shell prompt grab the IP address and write it down. Use the command "ip addr" or "ifconfig". Look for "inet" under the section eth0 or wlan0 depending on whether you are connected using an Ethernet cable or over WiFi:

$ ip addr
...
eth0:
   inet 10.0.0.66
   ...
wlan0: ...
   inet 10.0.0.150

Another way to discover the Raspberry Pi IP address is to log into your home router and look for the hostname of your raspberry pi. (My Pi's all have MAC addresses that start with "B8:27:". Maybe yours will too.)

IMPORTANT. Verify now that you can connect to your Pi from your computer using VNC or ssh. After we are done setting up, the Raspberry Pi will automatically boot directly into the video showing a campfire. The desktop is hidden behind the video and very difficult to access from the primary monitor attached to the Pi. VNC gives you full access from a window on your host. I use the VNC viewer from RealVNC on my MacBook.

Step 4: Software Overview

Three primary applications run as services automatically started when the Raspberry Pi starts up.

  • An info-beamer Lau application shows the video or shows a floating head depending on it's state.
  • A python script polls the RFID reader and updates image files for the info-beamer application
  • A python script creates a background fire effect to control LEDs through GPIO PWM.

Also the following are available:

  • A cron job restarts the RFID python script every minute because the script seems to occasionally (rarely) hang. I suspect this is because my wires running out to the RFID reader are a bit too long. Or maybe there is a problem with the SPI driver on the Raspberry Pi.
  • There is also a python script for writing data onto RFID stickers before embedding them in marshmallows. I also created a few shell scripts as simple convenience wrappers for the above mentioned applications and scripts.

Step 5: Software Installation

Do all of the following from a VNC client connected to your Raspberry Pi:

  1. Download the file marshmallow.tar.gz onto your Raspberry Pi
  2. Run these commands to install the scripts and start the services:
cd /home/pi
tar xf marshmallow.tar.gz
./bin/installsystem.sh

The campfire should start automatically on the primary display (the 7" display). If not, you might need to reboot.

If you've wired the LEDs, they should start glowing like a fire.

If you've wired up the RFID, you can try a preprogrammed sticker if you have one. (See below on how to program an RFID sticker.)

Feel free to stop all the new services as follows:

/home/pi/bin/marshmallow.sh stop

Step 6: RFID Scripts

I've attached a zip file that contains all necessary scripts. You are not required to download from the links provided below.

My scripts are based on RFID scripts and drivers found here (there is no need to execute this command):

git clone https://github.com/pimylifeup/MFRC522-python.git

And this very helpful Instructable:

https://www.instructables.com/id/RFID-RC522-Raspbe...

Set Up the cron job

Because my RFID python script would hang every once in a while I added a cron job to restart that service every minute. If you have the same issues do this to add the periodic cleanup task:

crontab -e

Add the following to the end of the file. If every column contains a "*" then it runs once a minute:

# SPI bus hangs sometimes so restart RFID once every minute
# m h  dom mon dow   command
  * *  *   *   *     /bin/bash /home/pi/bin/rfidservice.sh restartifrunning

rfid.py

The script /home/pi/TMW/rfid.py is responsible for listening for a new tag on the RFID reader. If one is found it chooses which floating-head image is to be displayed.

Edit this file.

Search for the variable "people" which is a key/value lookup table of names. If the string programmed on the RFID tag matches a name in this table, the associated image file (in the second column of this table) is copied and overwrites the file /home/pi/TMW/fire/image.png.

In the next section we will talk about how the info-beamer application watches the file image.png and updates when that file changes.

To add more people you will need to update the array "people" and install the associated .png file into /home/pi/TMW/fire

people = {
    "Chris"   : "chris.png",
    "Don"     : "don.png",
    "Linnea"  : "linnea.png",
...

Basically the program is simply an endless loop waiting for the next marshmallow RFID to be inserted. When detected, it copies the appropriate file into place.

But I've added some extras:

  • If the tag has the string "8ball" a magic-8-ball blue triangle is selected at random to replace image.png.
  • If the tag is programmed with the string "debug", some debug information is displayed. This shows VNC connection information including the IP address.
    • You might consider modifying the script to stop all services with the command "/home/pi/bin/marshmallow.sh stop". That will stop the fire video and allow access to the Raspberry Pi desktop.

Step 7: Writing an RFID Sticker (writeRFID.py)

Before writing data to a new RFID sticker you will need to stop the rfid service because there will be a conflict. Do this:

/home/pi/bin/marshmallow.sh stop

Now you will be able to write data onto any RFID sticker using the utility script writeRFID.sh. Like this:

cd /home/pi/TMW
./writeRFID.sh

and enter a name (such as "Mike"):

Enter text to write to the RFID card:Mike
Now place your tag near RFID sensor to write
Data was written successfully

If you have not modified the file rfid.py then you can select any name from the array "people". Possibly one of these:

Mike
Kristin
David

To test restart the marshmallow services like this:

/home/pi/bin/marshmallow.sh start

If the tag was programmed correctly a face will appear from the fire.

Step 8: Info-beamer Videos and Pictures (node.lua)

Info-beamer is an awesome framework for displaying videos and images. It works well on the Raspberry Pi. There is a ton of information on their website: https://info-beamer.com/doc/info-beamer.

The main file that controls the scene changes is /home/pi/TMW/fire/node.lua. This script, written in Lua language, uses a state machine to transition from one mode to another.

Viewing node.lua, the first thing you will probably notice is the gl.setup() command at the beginning of the script. I had a lot of trouble getting this to be sized correctly for my 7" monitor and a left a trail from my experiments. You will notice that many of the initial lines are commented out with "--". You may need to adjust this if you use a different monitor than I do, or if you set your monitor to a different resolution than I did. If the fire video does not fit properly on the monitor adjust as needed:

--gl.setup(NATIVE_WIDTH, NATIVE_HEIGHT)
--gl.setup(1500, 768)
gl.setup(1600,880)
--gl.setup(1920, 1080)
--gl.setup(1024, 768)

There are a various steps involved to slowly phase out the fire and phase in the floating head. These are the states:

  • init
    • runs whenever info-beamer starts
  • start_switch
    • called any time the file image.png is modified
    • This resets a timer which causes the floating head to begin appearing and the fire to begin disappearing.
    • the next state is "switchtoimage"
  • switchtoimage
    • The program is in this state the entire time during transition from fire to image
    • It constantly updates the alpha of the video and the image
    • Once complete, it goes to the state "fullimage"
  • removingimage
    • by manipulating the alpha this causes the floating head to disappear and the fire to appear.
    • when complete state switches to "fullfire"
  • fullfire
    • Showing only the campfire video
    • The application is basically stuck here until interrupted when the file image.png is modified
  • fullimage
    • redraws the floating head according to current position (which changes over time)
    • after a timer expires the state goes to "removingimage"

The function drift() is responsible for moving the head around for an eerie effect. The direction and speed are calculated to randomly accelerate or decelerate in all directions. Drift is limited to within a 100x100 box.

You will also find some code for debugging that will display the IP address in the scene under certain conditions. This simply shows the contents of info.txt whenever it changes -- which happens from ~/bin/ipaddr.sh called by the RFID python script.

info-beamer System Service

Let's take a look at how info-beamer starts when the computer boots. Let's take a look at the file /service/info-beamer/run.

When the Raspberry Pi boots it automatically executes all the files called "run" found in the subdirectories under /etc/service. Notice that all these subdirectories are actually symbolic links to where the actual files exist in /service. So we look at /service/info-beamer/run.

The following environment variables cause info-beamer to completely take over the primary monitor thus hiding the desktop:

# hide the raspberry pi UI
# You can access pi from ssh or VNC
export INFOBEAMER_BLANK_MODE=console
export INFOBEAMER_FULLSCREEN=1

This is a creates a watchdog timer. If something goes terribly wrong, the Raspberry Pi will reboot after 15 minutes of crisis:

#reboot raspberry pi if info-beamer is hung for 15 minutes
modprobe bcm2708_wdog
export INFOBEAMER_WATCHDOG=15

Here we display a startup message (magic 8-ball: "TMW outlook likely"). Without this line in the file, the floating head from the last time info-beamer was running would be displayed:

# reset image so previous floating head is not displayed
cp /home/pi/TMW/fire/TMW.png /home/pi/TMW/fire/image.png

Finally, info-beamer (found in the bin directory of the user pi) runs the script node.lau in the subdirectory TWM/fire:

exec nice -n -5 ionice -c 1 -n 0 \
     /home/pi/bin/info-beamer /home/pi/TMW/fire 2>&1

Step 9: Fire Simulation With LEDs (ledFire.py)

ledFire.py is a simple python script that generates the LED fake fire in the background.

It contains an endless loop that randomly changes the brightness of 7 LEDs wired to GPIO ports.

The GPIO pins are configured for Pulse Width Modulation (PWM) allowing the brightness to vary from 0 to 100% (instead of simple ON/OFF commonly used in GPIO applications).

Controlling the red and yellow LEDs looks like this code that runs on every pass through the loop. Their glow ranges randomly from 60% to 100%:

	redPWM1a.ChangeDutyCycle(random.randrange(minBrightness,100))
        yellowPWM1a.ChangeDutyCycle(random.randrange(minBrightness,100))
        yellowPWM2a.ChangeDutyCycle(random.randrange(minBrightness,100))

I'm not sure that the single blue LED has much effect at all but my goal in the following code is to cause a quick occasional flash of blue to simulate extra random energy from the flames. You can eliminate the blue in your application if you want. Here is the code:

	# randomly, briefly, not very often, flash a small blue flame

        if random.randrange(0,100) > 90 :
            bluePWM.ChangeDutyCycle(random.randrange(0,40))
            sleep(random.uniform(0.0,0.01))
            bluePWM.ChangeDutyCycle(0)
        else :
            bluePWM.ChangeDutyCycle(0)

At the end of the loop the code randomly sleeps for up to 0.25 seconds.

  1. This nicely enhances the randomness of the flame
  2. It is always good practice to sleep some amount of time inside any while loop to give other system processes an opportunity to run
sleep(random.uniform(0.0,0.25))

Step 10: Cardboard Box Prototype (optional)

For prototyping proof-of-concept, I created a simple housing made from a small box I found in my growing pile of empty Amazon shipping boxes. My box is labeled size "40". The inside measures 10 x 6.5 x 7.5. Because I am using a 10 inch piece of plexiglass, the 10-inch dimension is perfect! The glass wedges in nicely. The other dimensions are conveniently well sized but are not critical.

For me, this cardboard box served its purpose as a prototype while I developed the application and waited for my wooden box to be completed. If I had been short on time I might have called this "good enough" and simply decorated the cardboard. Quick and dirty. Done.

These steps took me maybe a total of 15-30 minutes to complete although I kept tinkering with it later:

  1. Cut the top off the box and save the excess cardboard.
  2. Turn it on its side.
  3. Using the 7" display as a template, mark out a 6.5x4.25 inch rectangle that is roughly centered on the top of the box.
  4. Use a knife to cut out the hole for the monitor.
  5. Place the display face down on top of the hole with the display top facing the front (open end) of the box.
  6. You may need to use clear shipping tape to keep it in place.
  7. Use black electrical tape to hide the edges of the monitor so status lights and other bright artifacts don't pollute the video.
  8. Tape the RFID sensor inside the top-front of the box.
  9. Cut a thin slot at the back-top of the box to allow the LEDs to pass through.
  10. Place the LEDs in the bottom-back of the box.
  11. Fold a piece of black paper and place it 3/4 of the way back on the bottom of the box making a wall so LEDs are hidden. Leave a gap above the LEDs so they can project their light upward.
  12. If needed, tape down the LEDs after positioning for a nice glow.
  13. Place an 8x10 inch piece of acrylic into the bottom of the box at a 45 degree angle.
    • Make sure the shiny side is up
    • and the matt side is down.
    • The shiny side reflects the video forward.
    • The matt side prevents a double image from forming.
  14. You may need to strategically tape a couple of pieces of cardboard to the sides to help hold the plastic sheet at the correct angle.

Step 11: Wooden Box (optional)

I built a wooden box from a sheet of 1/4 inch Baltic Birch plywood.

For many, the cardboard box discussed in the previous step will be perfectly fine, so no need to build a nice box like the one I'm about to describe. You may also find a well proportioned box in a craft store that can be converted into a model fireplace. Or maybe you will want to build a simple platform inside your real fireplace at home. Use your imagination. The possibilities are endless.

I've always wanted to try building a wooden box using box-joints (finger-joints). This seemed like the perfect project to give it a try so I did. I'm happy with my first-ever box. Yes, it is very sturdy and looks pretty good. But I've got a long way to go before anyone is going to call me a "craftsman" or "woodworker". Good enough for a checkmark on my bucket list.

I also needed something sturdy for shipping across the country to a remote Christmas party.

I found the following youtube video from William Ng absolutely invaluable:

https://www.youtube.com/watch?v=NutwD7B6tmE

Baltic Birch plywood is a higher quality plywood than the normal 1/4 inch "finish-grade" plywood found most anywhere. Experiments proved the normal "finish" plywood unworthy: the layers peeled unglued as I ran the saw through the miter joints. The guys at the local lumber yard recommended the Baltic Birch. Great advice. I like it!

Here are the piece sizes to make the box:

  • 4 - [10 1/2 x 8 1/2] (left, right, top, bottom). Finger joints are cut with a 1/4" dado blade along all sides that are 8 1/2 inches long.
  • 1 - [10 5/16 x 4 1/4] (front piece hides the electronics)
  • 1 - [10 5/16 x 8 1/2] (back with gap at the top for ventilation and access)
  • 1 - [10 5/16 x 6] (inner back hides wires with gaps at top and bottom).
  • 1 - [10 5/16 x 2 1/4] (short wall hides LEDs) Note: a taller piece like 3 or 4 inches might be a better choice. I increased the height with black construction paper after the fact.
  • 1 - [10 5/16 x 6] (shelf holds computer). Cut a hole 6 1/2 x 4 3/16 to lay monitor into.

Do not glue the small front piece nor the computer shelf. These need to slide up/down or in/out for maintenance. Everything else is glued in place.

Paint black: left side, right side, ledge wall, and the bottom (in front of the little wall). It is easiest to spray-paint these sections before assembly but they can also be painted after the fact. (Note: I forgot to paint the bottom piece before assembly so I did that later.) It is best to keep the entire back section light-colored (aka natural wood) so the LEDs can reflect strongly off the back wall.

Using a 1/4 inch dado blade with a 0.008 inch shim I cut a bunch of 1/8 inch deep grooves half-way through the outer pieces (left, right, top, bottom). These grooves hold the inner pieces in place. Some are glued, some are not. Take a look at the pictures to visualize the rough locations.

Below is a list of groove locations cut into the four outer pieces. Most grooves run parallel to the smooth edges of each piece but one groove (for the computer shelf) runs parallel to the finger joint edges:

  • 1/4 inch from the back of all four pieces.
  • 1/4 inch from the front of all four pieces.
  • 1 inch from back of [left piece and right piece]. Do not cut this groove on top or bottom pieces.
  • 2 1/2 inch from back of [left, right, bottom]. Do not cut this groove in the top piece.
  • Turning the left and right pieces 90 degrees, cut a groove for the computer shelf 3 inches from the top of each side piece. Do not cut this groove on the top or bottom pieces.

Before painting and glueing, make sure everything fits together. Make sure the front and shelf are free to slide in their tracks with a little bit of effort.

Mask and spray-paint the lower front sections inside the box:

  • bottom-front of the left and right sides
  • front section of the bottom piece. (Note, I forgot to paint this initially. No problem -- I simply painted it after the box was assembled.)
  • Only one side of the short wall that hides the LEDs.
  • Note: do not paint the back wall nor the back 1/3 of the bottom piece. We want this to be light-colored to reflect out LED fire.

Glue and clamp all pieces except the font and the computer shelf -- which need to slide freely. Use lots of clamps.

The more clamps the better!

Step 12: Decorating the Box

I found some Christmas-related stickers at my local craft store and decorated the box with stockings hanging just like on a real fireplace. I stuck a couple of "gift" stickers directly over the RFID reader hidden inside. And placed a Santa Claus Sleigh deep inside as if flying over the glow.

On top are some fun words to read:

Stockings were hung with care
Because The Mad Wrapper was here.
Under the gifts shall roast marshmallows there
For you and you and you
With visions of smore or more

Shall get what you get, and no more.

Step 13: Making Marshmallows

Each marshmallow is made from:

  • 1 inch long section of a 3/4 inch diameter dowel.
  • 12 inch long skewer
  • wood glue
  • 2 RFID stickers
  • White Sculpey polymer clay.

Cut Dowel

  1. Using a miter saw, cut a 3/4 inch dowel into 1 inch sections. You will need one for each marshmallow you are making.
  2. Drill a 3/16 inch hole through the center of each dowel. You may need to adjust the hole size based on the diameter of your skewers. I needed to re-drill some holes to 1/8 inch to accommodate some of my thicker skewers found in the package.

Attach Skewers

  1. Dip the tip of your skewer into wood glue
  2. Insert it through the hole in the dowel.
  3. Let dry at least an hour according the directions for your glue.

Attach Stickers

  1. Peel off a RFID sticker (preferably pre-programmed with a name).
  2. Attach to the side of the dowel.
  3. Peel off a matching pre-programmed sticker.
  4. Attach to the opposite side of the dowel.

Wrap with Clay

  1. Clean your hands.
  2. Find a clean work surface.
  3. Kneed and flatten enough Sculpey clay to surround the dowel on all sides with 1/4 inch of dough.
  4. Wrap it around the dowel.
  5. Work it and roll it around in your hands until it is shaped like a marshmallow.
  6. Bake in the oven at 275 degrees Fahrenheit (130C) for 15 minutes according to the instructions on the package.
  7. Cool before testing.

Step 14: Magic 8-Ball

For a bit of fun I created a Magic 8-Ball wrapped in Sculpey clay. This is modeled after the famous Magic 8-ball invented in the 1950s and continues to be popular to this day. You ask a yes/no question then tap the magic 8 ball on the RFID reader. Your answer appears in a blue triangle floating in the fire.

Here is a link to the popular Magic 8-Ball Wikipedia page: https://en.wikipedia.org/wiki/Magic_8-Ball

If the RFID reader sees a sticker with the data "8ball" it randomly selects one of the blue-triangle .png files to be displayed. True to the original Magic 8-Ball, these are the possible answers:

  • IT IS CERTAIN
  • IT IS DECIDEDLY SO
  • WITHOUT A DOUBT
  • YES DEFINITELY
  • YOU MAY RELY ON IT
  • AS I SEE IT YES
  • MOST LIKELY
  • OUTLOOK GOOD
  • YES
  • SIGNS POINT TO YES
  • REPLY HAZY
  • TRY AGAIN
  • ASK AGAIN LATER
  • BETTER NOT TELL YOU NOW
  • CANNOT PREDICT NOW
  • CONCENTRATE AND ASK AGAIN
  • DONT COUNT ON IT
  • MY REPLY IS NO
  • MY SOURCES SAY NO
  • OUTLOOK NOT SO GOOD
  • VERY DOUBTFUL

I wrapped a 1.5x1.5x1.5 cube in Sculpey clay and rolled it around in my hands to form a ball. Six RFID stickers pre-programmed with the string "8ball" are placed on each side of the cube inside the ball. After baking and cooling, I painted most of the ball black with a fresh new Sharpie. The "8" in the white circle is also written with black Sharpie ink.

Step 15: Magic 8-Ball Predicts the Future

Many great 8-ball questions were asked at the various Christmas and New Year's parties where this fireplace has traveled. Although a bit inconsistent, the Magic 8-Ball answered most questions with pretty good accuracy.

Number one favorite question comes from my good friend Chris:

Will The Mad Wrapper make something again next year?

The answer:

SIGNS POINT TO YES

I guess we will have to wait a little while before we know for sure.

Meanwhile:

Enjoy!

Make it Glow Contest

This is an entry in the
Make it Glow Contest

Be the First to Share

    Recommendations

    • Magnets Challenge

      Magnets Challenge
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    Discussions