I’m building a height-adjustable sewing table and want to use Arduino-based controls.
The ask is for a high level review of the proposal and specific recommendations for parts.
Like a kid in a candy store I’m overwhelmed by the variety of choices in boards, sensors and drivers. I’m long retired and currently a wood worker with rusty C and an even more rusty degree in industrial engineering. To begin addressing these deficiencies I have a new kit and the “Dummies …” book.
There are two areas where I need basic guidance. On the electrical side I need to make good (perfect is the enemy of progress) choices on the specific board, shield, and sensor array. I’m making progress there because of the incredible amount of information in the community and it’s fun. The mechanical engineering area, including what type of lifter (direct, scissors, something more complex) and which actuator(s) is more difficult without some direction.
This very long thread defines where I’m at in the process and where I think I’m going. Currently I’m reading the forum papers on motors. The measurements below are all approximate. I’m trying to give a good working idea of intent rather than a build document. Values will be rounded to the nearest convenient value.
The attachment is a PDF with drawings to illustrate the text. There are some links to illustrate and define terms used.
GOAL:
Stable, solid height-adjustable table with the ability to define several working heights.
REQUIREMENTS:
Table cannot vibrate, shake, bend or otherwise react to the vibrating sewing machine.
Table height can only change using the actuator. The top cannot “sag” even when power is off.
DESIGN CHOICES
Table
The top and legs have to be rigid and not bend or vibrate in use. The entire top raises and lowers in a straight vertical motion which should be smooth, quiet (in a sewing room), and reasonably fast (10 inches or 25 cm in 15 seconds which is roughly .75 inch or 1.9 cm / second). Simple UI with one switch for fast/slow and another for up/down. This configuration should allow precise positioning without needing cat-like reflexes.
The load is asymmetric. The sewing machine is located within 2inches (5 cm) of the front edge of the table and between 20 and 30 inches from the left end. The heaviest machine is roughly 50 lbs. (23 kg). The tabletop is 48 x 26 inches (cm). The top’s height ranges between 30 and 40 inches (76 to 102 cm) to allow for variation in machine size, operator height, and working sitting or standing.
The operator’s legs occupy the space from 14 to 30 inches from the left table end with a depth of 16 inches to allow for legs and safety. Any moving parts must be shielded to prevent injury.
Currently the table is constructed from ¾ inch MDF. This makes for a heavy unit and requires substantial bracing below. The proposed table will use MDF for the sides, but the top will likely be a torsion box (A Look at Torsion Boxes - Core77) to reduce the moving weight and provide additional strength.
Table Design:
Keeping the edges within 1/4 inch of level (level +/- 1/8 inch) during movement is probably good enough to prevent flexing the top and keeping round items from rolling off the table during movement. I hope that 1/8 inch tolerance (level +/- 1/16) will be achievable with some work.
The tricky question is preventing side-to-side movement of the tabletop while sewing. The machine itself is heavy and vibrating rhythmically at a variety of amplitudes and frequencies. The current top is rigidly joined to the legs and the entire assembly weighs about 200 lbs. Its rock steady performance is the benchmark for the new table.
My current approach is to use lead screw linear actuators with a combined lift of 250 lbs. (100 lbs. for top and equipment, 2.5x safety factor). A lead screw cannot be driven by the load so the top should not move from its position over time with no power applied. My concern is the ability of the actuators to resist side-to-side movement either right-to-left or front-to-back during operation. Slack in the mount points may allow some up-and-down motion as well.
A potential solution is to use 6 actuators, 3 per side. All move in concert during a lift or lower operation. When the height is achieved the center two actuators retract slightly to provide tension and effectively lock the tabletop to the sides. Reinforcement of the tabletop at the ends may be required and a strain gauge would permit precise tensioning of the joint. It may be necessary to mount the outside 4 actuators at a slight inward angle to increase the locking effect. Angling the actuators forces them to run at a slightly different speed than the inner two which are vertical. A consequence of this design is that the table can be set to any yaw, roll, pitch combination through subsequent software releases.
Related solutions are two- and four-actuator designs, but I’m concerned about the top’s stability. Currently the 6 actuator design is favored but I’m beyond my competence and open to alternatives.
Electronics
There are too many different boards and shields for me to competently evaluate all of the choices. From the discussion above I expect to control 6 actuators, a leveling sensor, two DTSP center-off switches, a rotary switch to select which preset position to save/seek and a DTSP center-off switch to select save or seek.
The actuators are planned as off-the-shelf 12 V DC lead screw units with a travel of 10 to 12 inches. The units include limit switches at each end of the stroke to prevent damage. Depending on the unit chosen, the Arduino could control them directly or control a relay capable of managing the required power. Power supplies are included.
Table height is measured using a LIDOR unit at the back of the tabletop. If a later iteration includes the ability to angle the table two additional LIDOR units will be added.
Given those parameters I’d like recommendations on a good board and shield combination. Currently, as a result of a recommendation from @GroundFungus, I’m planning to use the UNO R3 with a CNC V3 shield as the starting point.
User Interface
The UI needs to be clean, simple and keep the operator from doing things too badly.
The current proposed UI hardware is:
Single Pole Double Throw Center Off – either a toggle or rocker switch powering one of two pins depending on which way it’s pressed. Either maintains its position or returns to the off (center) state when released.
Rotary Encoder – used to select one of several options.
7 segment display – coupled to the rotary encoder so you know where you are at.
Push Button
One or two tilt switches
In operation:
Click the speed switch from Off to Fast or Slow. Switch maintains position.
To manually set the height click the direction switch to up or down. Top moves. Switch returns to center when released. Everything stops if a limit switch is activated.
To store a position set the Speed switch to OFF, use the rotary encoder to select the position number (8 supported), click the push button.
To seek a stored position set the Speed switch to either Fast or Slow (does not matter which), use the rotary encoder to select the position number (8 supported), click the push button. If there is no location associated with a specific number the display flashes. Otherwise the table seeks the selected position. The software stores the same position information for three actuators. If the design expands then different positions are stored for each of three actuators.
