salian / ootbait

Open Source Arduino Standing Desk with scheduled sit-stand periods.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OotBait

Open Source Arduino Standing Desk

Introduction

Standing desks are a good starting point to introduce some physical motion into a programmer's sedentary work hours. However the controls on the motorized desks available on the market are not very customizable.

The objective of this project is to build a smart, hackable and budget-friendly standing desk that works with you to change your posture on schedule.

Features

Basic features

  • Motorized Sit/stand motion
  • Single-click preset heights
  • Display with GUI

Advanced features (Todo)

  • Automatic sit/stand scheduling
  • LAN/browser based control
  • Laser and Ultrasonic Collision detection
  • Google Assistant/Alexa integration

Hardware choices

Under-desk Frame

This project is built around the Ikea Skarsta table, as this is an easily available and basic adjustable sit/stand desk. The Skarsta comes with a hand crank for manually raising or lowering the tabletop. It has all the mechanical parts we need, and we can add the motor, controller, sensors and display to it. These upgrades will convert it from a manual crank to a fully automable sit/stand desk, and should not cost more than US $50.

Other desks can also be used.

Motor

We can use any DC geared motor. The 12V 180RPM motor from Aliexpress is a decent choice at around 3 revolutions of the crank per second. At 12V it draws around 0.2A and if jammed, it has peak current draw of ~3A.

Motor Driver

We can use any DC Motor Driver that has a 3-wire interface for a microcontroller. The MD10C from Cytron is a decent choice - it can drive a single DC motor up to 13A and also has two small SMD buttons to drive the motor in both directions. This means that if you don't want the smart electronics, arduino and the display, getting just this board and the motor is an economical way to motorize the Skarsta which costs only around $25.

Microcontroller

We use the Arduino Uno + ESP8266 combination board. This provides a way to get Wifi, enabling you to add any functionality you can imagine.

Circuit

Fritzing

ootbait_v01b

Obtaining the Hardware

Electronic components

The components can be purchased individually from:

Component Links Notes
Basic Motorized Desk
Cytron Enhanced 13Amp DC Motor Driver 30A peak (10 seconds) MD10C Google
37GB555 DC 12V 180RPM Geared Motor High Torque Gear Reducer Motor Banggood
37 DC Motor Bracket Metal Gear Motor Fixing Bracket for Robot Smart Car Banggood (Optional)
6mm x 7mm Aluminum Flexible Shaft Coupling OD19mm x L25mm CNC Stepper Motor Coupler Connector Banggood The motor has a 6mm shaft. On the other side, the Skarsta's crank is a 6mm hex key (allen key). The way allen keys are measured is the distance between opposite flat surfaces, so this key would need a 7mm inner dia connector.
6mm Hex key (at least 10 cm long) Alternatively you can cut a piece off the Skarsta's hand crank.
12v 5A Power Adapter
Automation
Arduino UNO + WiFi R3 ATmega328P + ESP8266 Module 32Mb Memory USB-TTL CH340G Banggood
External Wifi antenna Optional, if you have a low wifi signal
0.96 Inch OLED I2C IIC 128 x 64 Module Banggood Any 4-pin IIC Display should work but a 128 x 64 is preferable.
JoyStick Module Shield 2.54mm 5 pin Biaxial Buttons Rocker Banggood
3.5-5.5V Standard Passive Buzzer Module Banggood You can use a basic buzzer instead of a module.
500 Ohm multiturn variable Trimmer Potentiometer (Trimpot) Optional, if you want to control (reduce) the buzzer volume.
VL53L0X TOF Based LIDAR Laser Distance Sensor Banggood Optional
Ultrasonic IIC Distance Sensor Banggood Optional
Miscellany
M3 Bolts To connect the motor
M4 Bolts To connect cases to the desk
M4 Threaded Inserts To create strong threads in the desk
10 AWG wire for motor power
22 AWG hookup wire or Dupont connectors
10A Fuse Optional

3D Print Files

The cases can be downloaded and printed:

Component Links Notes
Case for motor and driver TODO
Case for Arduino TODO
Case for Joystick and Screen TODO
Case for Ultrasonic Sensor TODO
Case for Laser Sensor TODO Optional, if you use the sensor and your sensor does not have the case

Pre-assembled Kits

Currently no kits are available to buy.

Credits & Contributing

Todo

  • Add circuit diagram (fritzing) to readme
  • Ultrasound and Laser sensor support for motion limits
  • WiFi and Web/LAN interface
  • Run motor at variable speed (start slow and accelerate if joystick is kept pushed)

Why is it called OotBait?

OotBait is a stylized variant of उठ बैठ (Uth-Baith), the Hindi term for Sit-Stand.

Built on top of

About

Open Source Arduino Standing Desk with scheduled sit-stand periods.

License:GNU General Public License v3.0


Languages

Language:C++ 100.0%