The (Watching You) Standing Desk
Background
I use a standing desk every day at the office to alleviate lower back pain, so I also wanted to create a standing desk for my apartment on days when I work from home. Inspired by
- Taylorism(productivity optimization),
- ergonomics,
- surveillance capitalism,
- home automation,
- employee productivity monitoring software (bossware),
I wanted to subvert/play with ideas of personal productivity while making interactive and functional furniture. The main idea would be to integrate a camera with a computer vision system to detect posture and automatically adjust desk height or create a auditory tone/speech reminder to "sit up straighter" or "stop looking at your phone". Another idea for a feature is that the desk detects how long you have been sitting or standing and switches between to encourage changing positions more often, which I often forget to do when I am focused on a task for too long. For safety, there would be a large E-stop button. For sanity, there would be a disable button to switch off the "smart"/"productivity" features.
Week 1
This week I made simple CAD mock of the standing desk.

Week 2
This week I researched a bit what motors are typically used in standing desks. Most desks use brushed DC motors (rather than stepper motors) because they have higher torque for heavier loads. I found this actuator with hall effect sensor but it is very expensive. This is a much cheaper pair of linear actuators but they seem to lack the proximity sensors and do not seem directly programmable with other microcontrollers.
Week 3
I am thinking of using the Pi Pico for the control system since the GPIO pins could have better performance for synchronization of the two actuators that raise and lower the legs of the standing desk. The microcontroller should have the following functionality:
- Control the motor driver, tracking the current position
- Synchronize the two actuators using feedback control loop and hall effect sensors
- Button Input for controlling the height
- Output LCD disply
- Safety features such as stop limits and anti-collison interrupts by detecting current spikes
- Add emergency stop for safety
Week 4
This week I had a chat with Dan about my final project and he challenged me to think of more features for my standing desk. One idea I had is to make the desk more interactive and "smart". For instance, there could be a camera that captures information about the user's posture, which could be record for analytics or integrated into more complex desk functionality such as automatically changing desk positions to ensure that the user is not sitting or standing too long.
I'm trying to figure out the design of the lifting mechanism. I will investigate how lifting columns in standing desks work and how to design the gear box.
- Spiral 1: Build a single, working lifting column with gearbox to translate motor rotation into linear motion.
- Spiral 2: Build a second column and write the software to make the two columns move in perfect sync.
- Spiral 3: Machine the final frame, assemble everything, build the user interface, and refine the performance.
- Spiral 4: Add computer vision to detect posture and add automate lifting functionality.
Week 5
This week I spoke with Anthony about the mechanism and ACME lead screw design would work and what is used in most desks. However the parts would be a little expensive to purchase separately. I found this premade standing desk frame that was actually cheaper than the linear actuators. This would also derisk the lifting mechanism as I don't have any experience and wanted the desk to still be safe to use. Using premade lifting mechanism would also let me focus on the computer vision feature with the ESP32 Sense microcontroller. I will need to reverse engineer the motor driver system to control with the ESP32. If there is time, I can create a custom frame and rebuild the lifting column myself using parts from the standing desk frame.
Week 6
I didn't have much time to work on the final project as I was busy making the camera PCB this week. The standing desk frame I ordered arrived but I haven't opened it yet. I talk with Anthony and he seemed to think it would be straightforward to hack the existing electronics in the standing desk to be controlled by another PCB such as the XIAO ESP32. Hopefully, I can iterate and integrate the camera PCB I made to both detect posture and control the motor drivers and keep most of the existing safety funtionality from the standing desk frame collision detection. I also found this Edge Impulse machine learning (ML) platform for edge devices, which seems to make it easier to train and deploy ML models on the XIAO ESP32S3. Maybe, next week I can go through the image classification tutorial.