The ArCake

This cake is not a lie - edible interactive RGB matrix cake

Similar projects worth following
Based on the rather excellent project described at HaD back in 2011 and my own ventures into minimalist gaming on an 8x8 RGB matrix I wondered if both could be combined into an Arcade Cake or ArCake. As my wife's birthday is approaching fast it gave me a perfect justification to dust off my soldering and arduino skills.

Thanks to a tip from [Patrick] from the Mainframe Hackspace ( I ordered a strip of WS2801 LEDs. So I ended up with 32 individually addressable LEDs and decided to arrange them into a 5x6 matrix (leaving two LEDs unused). I prefered this layout to to obvious 4x8 choice since a screen width of 5 makes if much more feasible to use a font you could actually read to display a happy birthday message.

This cake tells you "Happy Birthday", lets you play a Jump'n'Run game and displays a colorful animation once you complete the game.

This Cake is not a lie ;-)

Wow! Featured on the HaD Front Page, Inhabitat, a whole bunch of blogs I never heared of and finally the German edition of Make:

Way more than I expected! And my wife liked it, too :)

  • 1 × Arduino Leonardo
  • 30 × WS2801 Addressable RGB LED
  • 1 × WiiChuck Adapter
  • 1 × Wii Nunchuck Controller

  • Cheating to the End

    treibair12/29/2014 at 14:04 0 comments

    So, after everybody beeing sick an moving my office to another room of my home the project pretty much stopped. With my wife's birthday being today I rushed through the code yesterday, added a very, very basic LED marquee "Happy Birthday" message at the beginning and a color cycling animation upon beating the game. I used this 5x5 pixel font.

    The game (unfortunately only one game) lacks some features and most importantly some polishing (tweaking the controls and the physics model for jumping), but the result is still impressive, given the fact that you are actually playing a video game on a CAKE.

    The cake itself turned out good. The chocolate brownie mixture I used came with a pan that just hat the perfect size for my matrix and punching in the holes worked quite good, I just was a little afraid that the bridges between the holes might break but everything was stable. I attached a drinking straw to my Dyson DC45 vaccum to suck remaining crumbs out of the holes which worked like a charm.

    The only thing left to do was to fill in the jello diffusor/waveguide.

    I used clear spiced chai tea for my jello on my prototype, which worked ok. But this time I added just a few drops of milk to the liquid as a diffusor, yielding a much nicer look. I total, I poured over 300 ml of liquid into the holes.

    Late last night the cake was finished, put into the fridge to let the jello settle and this morning it was showtime.

    Here's an in game shot of the Jump'n'Run (the player (white)just approached the cave with a crate (yello) and the powerup (pink)):

    And after the game is finished you are awarded with an ever cycling rainbow-animation:

    I like how it matches the dots of the wrapping-paper :)

    To see everything in action I've made this short video:

    I really enjoyed making this cake. If anyone's interested I can put the code here, but at the moment it's just a mess of badly made-up variable names, junk that never turned into anything and very ununderstandable loops within ifs within loops...

  • Fun and Games Part 2

    treibair11/21/2014 at 22:20 0 comments

    So, the Jump'n'run is coming along quite well. I have changed the level layout just a little bit, removed two of the collectible "coins" but the basic game works, even though I only have 30 pixels available.

    I have two vertically moving platforms, a collectible powerup that enables my character to shoot the enemy pixels which at the moment do nothing but block the way.

    Just at the moment my character does not die if it falls off the screen. I will post a video lateron to show that the concept works. A picture just won't do it justice.

  • Level Design

    treibair11/18/2014 at 16:29 0 comments

    So...the most ambitious game I'd like to implement is some kind of Jump'n'run.

    The image above is my proposed level design. It is 88 pixels wide, so I assume the level should fit into a 5x3 array of long varibles. The positions of the crates, the powerup and the enemies are goin to be stored separately. The first thing I'd like to do is to draw the level in itself (the green dots) followed by the character (white dot) to try out the basic mechanics (scrolling, jumping, falling [including falling to one's death]).

  • Take Control

    treibair11/17/2014 at 19:12 0 comments

    So, with the matrix running I started to go beyond the demo sketch of the WS2801 library and try to make one individual pixel light up at the movement of the nunchuck controller.

    Thanks to the WiiChuck Demo from the Nunchuck was hooked up in no time. I control the position of the lit pixel with then Nunchuck's accelerometer. It looks as this might be a nice method to control the paddle in a game like Pong or Breakout or the tank in Space Invaders or just to position the cursor in Concentration (a.k.a. "Memory" ).

    Note to self: the input would ideally need some kind of LPF but reducing the sampling rate of the input might suffice for what I am up to.

  • Fun and Games Part 1

    treibair11/16/2014 at 22:18 0 comments

    With the matrix working properly the question of the appropriate games arises. My previous experiments in matrix gaming took place on a 8x8 matrix and I've programmed some kind of a racing game, Space Invaders and the obvious Pong. Furthermore Convay's Game of Life but I want something interactive.

    Some more games that come to mind are:

    Tetris (or variations of the theme like Dr. Mario)

    Some kind of Jump'n'run


    Somethin like a shooting gallery


    One thing which was clear is that I want to use the Nunchuk controller of a Nintendo Wii since it works rather well and effortlessly on an Arduino and I don't have to put somethin prototype-looking together myself and hand it to my wife.

    The idea is that my wife will have to beat the game(s) running on the cake and if she does it, a Servo hidden in the base of the cake will open move out her present (or a hint where I've hidden the present since it most likely won't fit into the base).

    I will post more as soon as I try out some of the game ideas...that should happen this month.

  • Enter the matrix

    treibair11/16/2014 at 22:07 0 comments

    With the basic princible of the cake confirmed I set to work to put the matrix together. Since the spacing of the LEDs was defined by the stripe I placed five rows of six LEDs on a cardboard box I had lying around. The box provides more than enough space to hide the Arduino and a few other accessories.

    A short while later everything was hooked up and looked like this:

    So the "screen" is working. Which leads me to the question what kind of gaming could be done on a screen that bad.

  • edible Waveguide and Diffusor

    treibair11/16/2014 at 21:59 0 comments

    I was not sure about the use of Angel Food Cake as a translucend material in the cake that inspired me to do that. Jello seemed the obvious choice for me. The problem with readily abailable Jello is that it's mainly either red or green which would render the the two letters of RGB pointless.

    That's why I tried to make "neutral" jello. Ideally it should taste well in combination with a choclate cake. Any juice based jello was ruled out because of lacking color-neutralness. So I came up with the idea to use tea. I found some choclate/cinamon flavoured spiced chai (which seems a good choice regarding taste) and a lemon/ginger tea which I tried because of the color (lack of color, that is).

    The left is the spiced chai jello, on the right is the lemon/ginger jello. I used 4,5 gams of ground gelatin, 250 ml of tea and 10 grams of sugar for each of the two samples.

    Next I needed a test object to fill the jello in. I had a piece of leftofer pastry in which I punched three 19 mm holes:

    I have to admit that using a line-laser was not really needed. But would't it be foolish NOT to use a laser in the kitchen when you get the chance? The holes are spaced at 31 mm since this happens to be the spacing of the individual LEDs of the stripe...for my own convenience I did not want tu cut up the stripe into individual LEDs . After I dediced to go for the chai jello I filled the holes. But I had to wait roughly 90 minutes to give the jello time to get a thicker consistency otherwise it flows straight through.

    I went for the chai jello because it turned out clearer than I've hoped and was far superior in term of taste.

    After my test object spent the rest of the night in the fridge I placed it on plastic foil the next morning and placed it on my LED stripe:

    The results were quite pleasing. I plan to top the cake with a little powdered sugar which sould diffuse the light nicely. But I was pleased with the color reproduction and the brightness. The pixels were clearly visible in a daylit room.

View all 7 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

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