Kids Kitchen That Says BEEP





Introduction: Kids Kitchen That Says BEEP

Design For Kids Challenge

Grand Prize in the
Design For Kids Challenge

My two year old daughter had a 'small' request for her third birthday. She wanted a little kitchen that says Beep. 'You want a what?' was my response. 'A kitchen that says beep, just like mommies kitchen!', she said...

So, that was the inspiration (I mean 'request') that got me started on this project!

Building a small kitchen to play with can be very time consuming as I'm not a experienced woodworker, so I started with a 'ready built' wooden kitchen: the Ikea Duktig. I'm quite confident, that I can't build a better kitchen for that price.

Talking about price, some might wonder what the total price for this project is. Well, an Ikea Duktig kitchen costs around 80 Euros where I live. The other parts will cost roughly 25 to 30 Euros, when you order the components from China.

Step 1: The Short Manual!

The video shows how it all works. When the kitchen is switched on, the current time is shown. Now you can set the timer using the blue button and yellow button. The blue button increases the timer and the yellow button decreases the timer. The increments are the same as the oven of 'mommie', so the buttons will let you switch between 0:05, 0:10, 0:15, 0:20, 0:25, 0:30, 0:40, 0:50, 1:00, 1:15, 1:30, 1:45, 2:00, 2:15, 2:30, 2:45, 3:00, 3:30, 4:00, 4:30, 5:00, 5:30, 6:00, 7:00, 8:00, 9:00 or 10:00 minutes:seconds. If you like even longer (or other) periods, no problem, simply add timer preset times in the code. The reason that I stopped at 10 minutes, is that I didn't want to wake up in the middle of night wondering what just beeped. :-)

Ok, now that the timer is set, a simple push on the green button starts the timer and the red button stops the timer. You can also use the red button to stop setting the timer and make the display show the current time again. During the counting down of the timer, the oven is well lid by a strip of LEDs.

When the timer reaches 0:00 the display shows BEEP (or in Dutch PIEP) and then you can hear 2 short and 1 longer beep. Then, the current time will be shown in the display again.

Step 2: What You'll Need

These were the materials that I used for this project:

  • An IKEA Duktig kitchen
  • An Arduino (I used an Arduino Nano)
  • 12V DC power supply, with DC jack
  • DC/DC buck converter
  • A 12V LED strip
  • Panel mount DC jack
  • A DS3231 clock module
  • 4 buttons (non latching) and, as I love LED's, I chose buttons with an LED in them
  • A (latching) power button, with again an LED in it (that is only lid when the power is on)
  • A TM1637 7 segment display with 4 digits
  • Wire
  • Heat-shrink tubing
  • MDF plate, 5 mm thick, about 35x35cm
  • 1kΩ resistor
  • 2N3904 transistor
  • Small PCB prototyping board

And the most important part: a buzzer (a TMB12A05)!

Tools I used:

  • Router with a small router bit
  • Drill press
  • Knife, file, sandpaper
  • Soldering station
  • Glue gun
  • Small butane torch (for the heat-shrink tubing)
  • Laptop with Arduino IDE

Step 3: Changes to the Kitchen

Some modifications are required to the wooden parts of the kitchen for the added features:

  • Changes to front: holes for 4 LED-buttons and display
  • Changes to left side: hole for power button
  • Changes to bottom plate: hole for DC jack

Changes to front

Please download the PDF-file below (note that you might have different size buttons and/or display, but you can simply create a similar template using a drawing tool). It contains a template that I have used to make the holes in the front. I simply taped the template to the wood and first drilled a small hole in the center of each button.Note that the template has a front and a back version. The arrow always points at the top left corner. After the small drill bit, I switched to a larger drill bit, a 16 mm drill bit to be more precise (as this is the diameter of the LED buttons I've selected for this project).

For the display hole, I first drilled multiple holes in the dark area of the template. The dark area in the template has the exact dimensions of the display itself. To finish the display hole, I used a small rotary tool, a file and a sharp knife. The somewhat lighter area has the rough dimensions of the PCB that is connected to the display. If you would mount the display in this hole, you'll notice that the wood is very thick. When I inserted the display, I didn't like the look of this and used a router to make the wood less thick. You'll have to measure the height of the display yourself, as you might not have the same display.

Changes to the left panel

The power button is located in the wooden panel on the left side of the kitchen. For this, a hole was drilled in the top left corner of the panel. Note that the best location for this button is at the top, as will become obvious when reading the assembling step. Inside the cabinet a new top panel will be added (to glue the LED strip to and to protect the electronics), so it's better to have the button above this panel.

On the inside of the left panel, I used a small router bit to create a slot for the power cable to run through.

Changes to the bottom plate

For the DC jack, I chose the bottom to mount it to. As the bottom panel is quite thick, first drill a hole that is just large enough for the actual connector (the metal part of the connector). Then drill -from the bottom side up- a larger hole (of course not completely through the bottom panel!), as the connector has a plastic casing that will be in the way otherwise. The DC-panel mount can be glued in place.

Step 4: Electronics

The electronics for this project are actually quite simple. The whole project runs on a small 12V power supply. A latching button, let's you switch the power on and off. The Arduino Nano and other parts actually run on 5V, so the voltage is converted using a DC-DC buck converter. Note that the LED-strip I used, requires 12V.

The Arduino Nano is at the middle and is connected to:

  • 5V power from DC-DC buck
  • 4 buttons (Start, Stop, Plus and Minus)
  • DS3231
  • TM1637-display
  • Buzzer
  • LED-strip

The four buttons are simply connected to a digital input and to GND. In the code, the internal pull up is set. The DS3231 is connected via I2C. For an Arduino Nano, SDA is connected to A4 and SCL is connected to A5. The display requires next to 5V and GND, two digital ports.

For the buzzer and LED-strip, I used a small perfboard. Both parts are connected to a digital output of the Arduino. The LED strip is connected via a 1 kOhm resistor and a transistor. For convenience during assembly, I connected the LED-strip with a connector. When I finished all soldering, I wished I used more connectors. With connectors, you can simply try all parts separately and if a part fails for whatever reason, it is easier to replace.

To prevent any short circuits, I extensively used shrink tubes. And before shrinking the tubes, check whether every works! :-)

Step 5: Assembling

Now it's time to assemble the kitchen. First, insert all buttons in the designated holes. As I used LED buttons, each with a different color, I chose the following order (from left to right): blue, yellow, green, and red

The functionality of the buttons will be (same order): increase timer, decrease timer, start oven timer, and stop.

Then, add the power button, DC jack and display. Note that my TM1637 display had a connector on the front. This connector has been removed (desoldering). I inserted the components I mentioned above and then simply followed the Ikea manual and until the counter top is to be mounted on the kitchen. Note that soldering the components when the kitchen is already somewhat built, makes it easier, as you don't have to hold the components.

As this will be a project kids will play with, it is a really good idea to shield off all electronics. It's not to protect the kids, it's to protect the electronics from those little exploring hands... :-) The LED strip can also be simply glued to it as well. A small hole is enough to put the wires through. Simply cut out a rectangular part from 5 mm MDF dimensions x mm. Pieces of scrap wood can be used to hold the plate in place. Don't block any pre-drilled holes in the side panels, as those holes are required for assembling the kitchen.

When the kitchen was finished, I created a nice logo in black vinyl and cut some red transparent plastic (from an old alarm clock) in the correct dimensions for the display.

Step 6: Programming the Arduino

For programming the Arduino, I used the Arduino IDE. The program requires 4 modules to be installed. These are:

The code contains many inline comments for extra clarification, as I don't think the code itself would be self-explaining to everyone (including myself after a couple of months). What the comments do lack is an overview of how it all works. So here I'll provide a quick overview of the program.

After the setup procedure, the program can be one of four states, as the Arduino is either:

  • Showing the time on the display (default state)
  • Setting the timer
  • Showing the timer that counts down to 00:00
  • Beeping

In the standard loop procedure, the following things will happen each loop:

  • Check the buttons whether one has been pressed and act accordingly
    • For example, increase the timer with a step, stop the timer and switch state to show time, etc.
  • Check whether something needs to be done based on the current state
    • For example, decrease the time as a second has passed, or show the new time, since the time has changed

Step 7: Have Fun!!!

Both my daughters like playing with the kitchen. They make all kinds of stuff in it, pancakes, cakes, coffee, hot chocolate, soup, etc.

Normally they're not allowed to push any buttons in our kitchen, but on theirs the can simply hold a button, push a button as hard as they like, hit the button with another object. :-)

Be aware that the buzzer is actually quite loud. Mounting a small piece of tape over it will easily fix that for you!

3 People Made This Project!


  • Spotless Contest

    Spotless Contest
  • Microcontroller Contest

    Microcontroller Contest
  • Trash to Treasure

    Trash to Treasure

We have a be nice policy.
Please be positive and constructive.


2 Questions

What a brilliant idea!!!

I am no electrician, so my question may sound stupid.

I live in Lanzarote, Canary Islands where parts like this are very hard to buy. Can I buy the parts off Amazon or equivalent?

Could I also do something similar for the Microwave???

Many thanks,



I think I bought all parts at Regarding the microwave, of course you can also do something similar for the microwave. There's room next to it, you could use that space (you'll loose some storage of course). A real bell sound would be super cool, oh, and a rotating dial or something like that (with a rotary encoder).

A soft buzzing sound, would be also very cool, so you can hear it's operating.

Hi! It is amazing! I was rebuilt it. One small thing missing for me: The time set-up possibilitiy with the buttons. When I upload the program the time is correct but few years later when the battery will die I can’t set-up the time again without computer. What do you think?


Hi AdamS542, that's a good and fair question! The current program does not have the possibility to set the time. This is not without reason... I was thinking on how to implement this, hold a button for a longer period, or two or three buttons at a time. The thing is, when I saw my kids playing with it, they try everything.
But the backup battery lasts for a couple of years and the DS3231 is quite good actually (be aware of daylight saving, during winter the clock is not correct).

Do note that opening the kitchen is quite simple, using the correct hex key. The countertop comes off and you can connect your computer. Another solution is to add a USB connector on the back of the kitchen.
But you're probably right, a secret button combination (or two buttons during setup for example) would be better.

For this I would add a new state:
#define SetClock 5

And create a new procedure to change the current time.
For example: void ChangeRTC(int intHourChange, intMinuteChange)
(note that these integers can be positive or negative!)

You can get the current time using:
// Get current time;

The current hours/minutes:
intHour = RTC_time.Hour + intHourChange;
intMin = RTC_time.Minute + intMinuteChange;

Then set the current time:
// Set seconds to 0, to prevent that the time is changed at 59 sec and within a second the time changes again
RTC_time.Second = 0;
// Write time to DS3231

You'll have to add some if-statements in case the minutes pass 59 (or pass 0 going negative) and the for the hours when passing 23 (or pass 0 going negative).

Now, in the Arduino 'loop', in case the state is SetClock (decide yourself how to enter this state) increase or decrease the current time, by calling the new procedure.

Perhaps a new void ShowTimeOnDisplay(void)
will be a good idea. When editing the hours, only show the hours, when editing the minutes only show the minutes? Or if you really like to program, you could make either the hours or the minutes blink.

Hmm, it might be easier to only change the minutes? As you've noticed with setting the timer, you can simply hold a button. The same can be used for setting the time.


Hi Adam

nice work! Would do the same for my 4yo son. But something goes wrong. The Display never light up :-( If i push the +-Button and the "Start"-Button it beeps after some seconds. But i can't see anything on the Display. If i test the Display with the TM1637Test-Sketch from the library it works as expectet.

Thank you, for your help.


Upppps, sorry, all stop :-) Have found the error. Wrong Pin for Data!

Thanks for the amazing project.I am also trying to make this same. I bought the LED buttons same as yours but can you guide me as to how to wire them (NO,NC,C,+,-) to the arduino.Your help will be appreciated.

​Hi Roaldh,

I start to make this project my doughter. I find a solution my idea (same as when you describe).
The long press time is 3 second I hope it will enogh the random time set-up but I make a desk lighting which I could control with long press stop button. I use an LDR for a display brigthness set-up. If the anbience light is low the display light is low too. The button LED light controlled.
One more thing. My display show "Zoé" (My doughter name) :)
I made some bugs (I am beginer for programming). The TimeSet is work but the numbers jumps sometimes and when I upload the program the time not upgraded in the RTC.

I ordered the buttons. The demo boards is ready.


"The reason that I stopped at 10 minutes, is that I didn't want to wake up in the middle of night wondering what just beeped. :-)"

ahahahah! yesss. :-D

Nice job, nice idea. Well made.

Really nice job, I like very much the use of LED buttons, each with its own color! Well done!

This is an amazing project and I loved the story on how it came about. I'm totally with you in that it was much easier to adapt a Ikea product instead of building from scratch. That decision makes it very easy for others to build one. Well done!

These kitchens are great, and last. Ours is about 5 years old. Your Instructable is great and if I let my other half see it, I may just have to do it :/