IKEA Bekant Desk Automater

by hardwareunknown in Circuits > Arduino

1552 Views, 6 Favorites, 0 Comments

IKEA Bekant Desk Automater

IMG_0972_comp_crop.jpg

Who has time to wait for minutes per day to push a button? Let's automate the motion of an electric IKEA desk with an Arduino Nano!

Supplies

***All screws, washers, nuts, and standoffs are M2***
***All wire is 22awg solid-core***

1x IKEA BEKANT desk

1x Arduino Nano clones

1x Power jacks

2x MOSFETs

4x Buttons

4x Button caps

Protoboards

1x Female headers

Screws

4x Standoffs

Wire

6x 220 Ohm resistors

1x Power source with a 5.5mm x 2.1mm jack (Any 7-12V wall wart should do since Nanos can tolerate that range. You don't need much current as the circuit is only running logic. I used a 9V, 1A supply... way overkill on the amps, but it's what I had on hand.)

Watch the Video.

Get an overview of the project prior to starting, and have a few laughs with me along the way!

Print the Enclosure.

Print the enclosure parts, cleaning up the holes on the bottom surface of the body so that a washer and screw head sit below flush from the surface (the flat side will be placed flat against the underside of the desk).

Remove and Open the Control Panel.

Unscrew the control panel from your desk.

Open up the control panel case using a dremel, pliers, cutters, and/or a
screwdriver as needed and remove the flexible button PCB. BE CAREFUL NOT TO DAMAGE THE PCB! It is only slightly below the control panel case you'll be cutting. IKEA sent me a spare, but shipping takes a while.

Solder the Boards.

desk-automater-wiring_diagram.png

Solder the two boards shown (What I call the "main PCB" in the video is on top, and the "button PCB" is on the bottom; I realize they aren't technically PCBs, I just want to remain consistent with the video's phrasing). Be sure to add headers underneath the pins of the Nano; don't solder the Nano directly to the board (it makes replacement easier later, if necessary).

The main PCB has 24 columns, 18 rows. The button PCB has 28 columns, 6 rows. All resistors are 220 Ohm. You will have to drill out one of the holes to fit the negative lead of the power jack. After drilling, bend it over and solder it to a nearby hole for structural support.

Upload the Code.

Upload the code to the Nano and install it onto the main PCB.

Downloads

Add the Desk PCB Holddown.

Screenshot_20201212-163112_Gallery cropped.png

Super glue the desk PCB holder to the case body.

Install the Nuts.

Screenshot_20201212-162719_Gallery cropped.png
20201212_153347.jpg

Place nuts into the four slots of the case body (this may be difficult as sometimes they fall out, take your time). It helps to slip one nut in place, then hold it there loosely with a screw. Do so with all four nuts BEFORE attaching the button PCB. Then, tilt the case body to one side, remove the screws on the lower side, keeping the nuts in their slots. Loosely attach the button PCB to that side of the case body using 10mm or greater screws, just enough to hold the PCB and nuts. Then repeat for the other side with 6mm screws (the final screw size). Finally, replace the 10mm screws on the first side with 6mm screws and tighten them all.

Add Desk PCB Jumper Wires.

deskPCB_labeled-min.png
desk-automater-wiring_diagram.png

Attach three jumper wires into the header of the desk PCB, according to the wiring diagram and the photo below. The insulated portions of mine were about 75mm long (leave extra to plug into the headers). You'll want some length for maneuvering the main PCB into place later.

Install Desk PCB.

Screenshot_20201212-162940_Gallery cropped.png

Slip the desk PC under the desk PCB holder, then secure with a 6mm screw and washer through the bottom of the case body, and a nut on top.

Install Standoffs.

Screenshot_20201212-162840_Gallery cropped.jpg.png
20201212_154814.jpg

Install 20mm standoffs using washers and 8m screws. These will hold the four corners of the main PCB.

Add Button PCB Jumper Wires.

20201212_155454.jpg

Attach five jumper wires to the main PCB header facing the button PCB and bend them into a U. The insulated portions of mine were about 22mm long (again, leave extra to plug into the headers).

Finish Installing Desk PCB Jumper Wires.

20201212_155713.jpg
Screenshot_20201212-170327_Gallery cropped.png
desk-automater-wiring_diagram.png

Insert the jumpers from the desk PCB into the remaining main PCB header using the wiring diagram, then attach the main PCB upside down on the standoffs using nuts.

Finish Installing Button PCB Jumper Wires.

20201212_155949.jpg
20201212_160320.jpg

Using pliers, carefully insert the five jumpers from the main PCB into the header of the button PCB, referencing the wiring diagram as needed.

Add Enclosure Cover Nuts.

Screenshot_20201212-163023_Gallery cropped.png

Place nuts into the four slots of the case cover. Make sure to press them to the bottom of the slots, otherwise the screws won't thread into them properly.

Install the Cover.

20201212_160747.jpg

Place the case cover onto the case body, making sure to slide the grommet of the desk PCB properly into the cutout. Slide the case cover backward over the Nano USB port and the power port, then secure with washers and 16mm screws.

Mount the Desk Automater and Plug It In.

20201212_162448_crop.jpg

Mount the device underneath your desk using wood screws. I used 16mm. You can use other lengths, just MEASURE BEFOREHAND SO YOU DON'T BREAK THROUGH THE TOP SURFACE... keeping in mind 3D printed plastic will compress as you tighten the screws. I recommend hand-tightening these so you don't split the screw tabs.

Plug the desk PCB cable into the desk and attach the power source to the main PCB power port.

Test the Desk Automater.

Test the buttons again to make sure each one moves the desk as intended. There should be one button that automatically moves the desk up for an extended period once pressed and released (STAND), one that automatically moves the desk down for an extended period once pressed and released (SIT), one that moves it upward as long as you hold it (UP), and one that moves it down as long as you hold it (DOWN)

My chosen configuration from left to right is STAND, SIT, UP, DOWN.

Adjust the Code and Enjoy!

20201212_162602.jpg

Adjust the code and re-upload as needed to get the button configuration and automated movement length you want. Now go and enjoy your automated desk! Go on, move it up and down a few times... you know you want to.