Skip to content

Latest commit

 

History

History
213 lines (184 loc) · 20.7 KB

README.md

File metadata and controls

213 lines (184 loc) · 20.7 KB

SKARSTA - motorized table

Introduction

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...

Features

  • display showing current position and feedback
  • 3 customizable height positions with auto home
  • calibration of MIN and MAX table position to avoid destroying mechanism and limiting travel range of table
Demo
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

How-to

Assembling

Wiring
RELAY VERSION

H-BRIDGE VERSION

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
    Arduino-Nano
  • Wire up power connector, power switch, buck converter and relays
  • Fix power connector with super/hot glue in case
    Power connector + switch
  • Add cables to buck converter output and mount it slowly to the case, it should be tight fit
    Buck-converter
  • Connect motor to relays and mount it to case, fix it with 6 screws
  • Cleanup wiring and secure relays to case with few screws
    Motor + relays
  • Add Rotary encoder next to motor and fix it with screws or nut
    Rotary encoder
  • 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
    Motor/Encoder pulleys
  • 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
    Finished motor case
  • 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
    Mounted motor case
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)
    Mounted case cover plate
  • 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
    Mounted case frame
  • 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
    Case top view
  • 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
    Case bottom view
  • 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
Display + Keypad case
  • Paint button caps with paint or nail polish
  • Insert button caps to tactile switches
    Tactile switches
  • Insert them to panel top case part and fix them with super/hot glue or with their pins
    Front case panel
  • Insert 7-segment display to panel top part
    Front case panel with display
  • 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
    Wired case panel
  • Fix top and bottom case parts with 6 screws
    Finished Display + Keypad case
  • Connect cables to motor case and mount it with 3 screws to table
  • Cleanup the cable management with few table-frame-ties
    Mounted Display + Keypad case

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 Description
    Err 1 Motor stuck and cannot rotate
    Err 2 Motor started unexpectedly

Library Credentials

ENCODER TM1637 InterruptLib

Thanks to

iLLiac4, See his mods on Thingiverse