Introduction: SKARSTA - Motorized Table

Quite some time ago, I have bought one of Skarsta tables. As its electric alternative Bekant seemed to me overpriced and it doesn't have many preset_values for custom positions. Design of the case and its mechanical parts (mainly motor and encoder) was updated multiple times during this time. First version was powered by FIXA Screwdriver. This was great, as I was reusing all of its electronics. However, it has drawbacks, as it could not handle heavier loads of stuff on the table and PSU that was supplied, could be used only for recharging, which resulted to dead batteries sooner than expected. After testing quite a few DC motors from Ebay, Aliexpress and Banggood, I stuck with DC-12V-180RPM Motor, that satisfies my needs at the moment. But basically, you can use any motor that you have... All you have to do is update case sizing for that motor. Other electronics can remain the same...

Step 1: Introduction

Features

  • display showing current position and feedbac
  • 3 customizable height positions with auto hom
  • calibration of MIN and MAX table position to avoid destroying mechanism and limiting travel range of table

Calibration/Usage

  • While display is flashing with dashes, set table to lowest position
  • Press "tilde" button for 3s or until message '-rst' shows to confirm lowest position and afterwards set table to highest position
  • Press "tilde" button for 3s or until message '-rst' shows once more to confirm max position
  • Afterwards you can use table with min/max soft. limits and custom positions
  • To set new position just press one of 1, 2, 3 buttons until display shows "set" message
  • To "goto" preset position just press 1, 2, 3 buttons
  • To reset min/max bounds and custom positions, press "tilde" once more as previously it was calibrated

Step 2: How-to

NOTE your table needs to be leveled and manual adjustment shouldn't feel jerky, as it may influence on modfunctionality

  • Build & Flash Arduino-Nano via platformio
  • Cut off 100mm from the end of Skarsta handle or use Hex-Key 6mm which will be used to connect motor to table

Step 3: Wiring - RELAY VERSION

Step 4: Wiring - H-BRIDGE VERSION

Step 5: RELAY VERSION Motor Case

  • Add Arduino-Nano to case, insert it into notches a slowly push usb connector down. It should be quite tight fit
  • Wire up power connector, power switch, buck converter and relays
  • Fix power connector with super/hot glue in case
  • Add cables to buck converter output and mount it slowly to the case, it should be tight fit
  • Connect motor to relays and mount it to case, fix it with 6 screws
  • Cleanup wiring and secure relays to case with few screws
  • Add Rotary encoder next to motor and fix it with screws or nut
  • Insert nut & screw into motor pulley and secure it on motor shaft
  • Add timing belt with encoder pulley onto encoder, readjust encoder position if belt is loosen or too tight
  • Wire up rest of the electronics as shown in the wiring diagram
  • Fix dupont cables for display + keypad with super/hot glue into cable connector part and afterwards fix it with super/hot glue to case if needed
  • Add hexagonal rod and slowly insert it into table, if needed adjust hole for rod hole with original lever
  • Fix mounted motor case with 7 screws to table

Step 6: H-BRIDGE VERSION Motor Case

  • Add Arduino-Nano, buck converter and h-bridge to case cover plate and fix them with screws, if needed use screw-spacer.stl for buck converter
  • Wire all components on case cover plate together based on wiring diagram (optionally 2 Female 8-pin sockets can be inserted cover plate slot for GND and V5)
  • Add motor, PSU switch, PSU and keypad connector to case frame
  • Add Rotary encoder next to motor and fix it with screws or nut
  • Insert nut & screw into motor pulley and secure it on motor shaft
  • Add timing belt with encoder pulley onto encoder, readjust encoder position if belt is loosen or too tight
  • Wire up rest of the electronics as shown in the wiring diagram
  • Fix dupont cables for display + keypad with super/hot glue into cable connector part and afterwards fix it with super/hot glue to case if needed
  • Insert 3 screws to case where cover plate overlaps frame and afterwards secure cover plate with screw-hollow.stl these will hold case parts together and prevent screws from falling out while you can still tight them through inner hole
  • Add hexagonal rod and slowly insert it into table, if needed adjust hole for rod hole with original lever
  • Fix mounted motor case with 7 screws to table

Step 7: Display + Keypad Case

  • Paint button caps with paint or nail polish
  • Insert button caps to tactile switches
  • Insert them to panel top case part and fix them with super/hot glue or with their pins
  • Insert 7-segment display to panel top part
  • Pass wires through panel bottom case part and secure them few centimeters below the end with zip tie
  • Wire up all the buttons and display with cables
  • Fix top and bottom case parts with 6 screws
  • Connect cables to motor case and mount it with 3 screws to table
  • Cleanup the cable management with few table-frame-ties

Step 8: Error Codes && Handling

  • if any Error message bellow is showed on display it is needed to manually power down/up table to be able to operate once again, after any of error pops out it is advised to closely inspect table if the problem reoccurs if so open an issue

Error code and description

  • Err 1 -> Motor stuck and cannot rotate
  • Err 2 -> Motor started unexpectedly
Arduino Contest 2019

Participated in the
Arduino Contest 2019