Skip to content

Latest commit

 

History

History
100 lines (73 loc) · 6.69 KB

README.md

File metadata and controls

100 lines (73 loc) · 6.69 KB

Firmware builds

megadesk

Do you wish your IKEA Bekant had memory buttons? I sure did. So I made megadesk. Design goals were to have it fit in the original housing and use as many stock parts as possible, be completely independant of the existing controller, as well as store any number of memory positions.

For sale on Tindie - Plug and Play!

I've setup a store on Tindie for those who wish to order a ready to go, plug and play version. It comes with a fully assembled PCB as well as the cable you will need to connect it. No soldering or assembly required! https://www.tindie.com/products/gcormier/megadesk/

Features

Recalibration

The factory recalibration routine has been implemented. The original BEKANT controller is no longer needed to recalibrate motors. This will cause the desk to move to the lowest possible extremity. Please exercise caution and be prepared to unplug the power if needed. Any interruption to this procedure requires a power-cycle.

Serial control

Disabled by default in codebase/firmwares.

Enables serial input/output for what the megadesk is doing and to send commands. Some people wanted to have a smart/connected megadesk, but due to the size limitations of the space inside the case, an external module is the best solution. A lot of discussion in PR #12 and PR #58.

More information in Serial.md. There's also specific details on esphome.

Custom MIN/MAX

Enabled by default, no limits.

This allows you to specify custom values for the minimum and maximum height of your desk. This is useful if you have things stored underneath, or maximum height limitations (shelf on the wall).

  • Memory 11 will use the current desk height to set the minimum limit. If already set, it will clear it.
  • Memory 12 will use the current desk height to set the maximum limit. If already set, it will clear it.

Audio Feedback

Disabled by default.

Adds extra audio feedback when pushing buttons or using functions.

Dual-button memory

Disabled by default.

This allows storing unique memory positions against each button. When enabled, you could save a double-click position for the up button as well a double-click position for the down button.

Disassembly of the existing control unit

I now have a video with a few tips on disassembling the IKEA Bekant controller and installing megadesk. Due to popular request, I now have a second video with live surgery of a brand new, unopened control unit.

NOTE: While the recalibration feature has been added to megadesk, it is recommended to keep your original board.

Video

Unfortunately the beeps aren't captured well in the video unless you turn up the volume.

Quick Commands

UP pushes Function Audio Feedback
2-10 Memory positions # of beeps + high tone (saving), # of beeps (recall), # of beeps + sad tone (recall, no memory saved at that location)
11 Set the lowest/minimum height to current position, or, reset back to default (toggles) 4 low beeps when setting a limit. Single low beep - disabled.
12 Set the highest/maximum height to current position, or, reset back to default (toggles) 4 high beeps when setting a limit. Single high beep - disabled.
14 Recalibration procedure, desk will lower down to the lowest limits (Will begin moving)
15 Reset Fanfare
16 Newer units, no operation. Units before Feb 2021 - toggle different variants.
17 Toggle audio-feedback mode double beep enabled. single beep disabled.
18 Toggle both-button mode double beep enabled. single beep disabled.

Setting and Recalling memory slots

Setting

To set assign a memory slot you press the up button two or more times. On the final button press you hold until you hear a tone that indicates what slot you have assigned (2 beeps, 3 beeps, etc).

Recalling

To recall a memory slot you push the up button the number of times for that memory slot (2 for first slot, 3 for second slot, etc). If you try to recall a memory slot that has not been saved you will hear an "error" chime indicating that no height information could be recalled.

Troubleshooting

  1. Have you tried turning it off again? :)
    • Seriously - from testing many of these units, about 1 out of 20 times the handshake seems to fail as it does contain some random elements. A simple power cycle will provide a new handshake and the unit will power up.
    • Try unplugging the desk from the wall and plugging it back in (With megadesk connected)
    • Alternatively, try powering on the desk with NO controller attached, and then plugging in the megadesk after the desk is powered on.
    • Note that the power supply that comes with the BEKANT can store a charge for quite some time. It might be necessary to leave it unplugged for 60-120 seconds for it to lose that charge.
  2. Is the safety key inserted? It is still required for the motors to engage. You will not hear any beeps when using buttons if it is removed.
  3. Try different variant modes described above by pushing UP 16 times. (Pre Feb-2021 units only)
  4. Test the up/down button connectivity
    • Holding DOWN while powering on will wipe the memory and enter a button test mode, where the up/down buttons can be held to test that they are working - a power cycle is required to exit this mode.
  5. Factory Reset
    • Holding DOWN while powering on will wipe the memory and enter a button test mode, where the up/down buttons can be held to test that they are working - a power cycle is required to exit this mode.
  6. Recalibrate/reset the motors
    1. factory controller
      • This step must be done with the ORIGINAL BEKANT controller.
      • Hold the UP and DOWN buttons for 8 seconds, after that let go of up while maintaining the pressure on the down button.
      • The desk will lower until it stops on its own.
      • Let go of all buttons, and test regular desk functionality with the original controller.
      • Once functionality is confirmed, replace with megadesk.
    2. Recalibrate/reset the motors, megadesk
      • Push the UP button 14 times.

Hacking, contributing and DIY

This has been moved to DIY.md

esphome configuration

esphome example configuration avalible at esphome.md