
Motorized Legs in Action
Description
Electric motorized legs are widely used in standing desks to adjust the height as per user needs.
The system is divided into three main parts:
-
Motorized Legs
- Each leg includes a DC geared motor with encoder for precise motion.
- Each leg includes a DC geared motor with encoder for precise motion.
-
Leg Controller
- Drives the motors inside the legs.
- Synchronizes the movement of multiple legs.
- Provides protection circuits such as overload detection.
-
Leg Controller Remote (Control Panel)
- Controls up/down motion of the legs.
- Displays the current position of the desk.
Objective
The objective of this project was to design a custom leg remote controller that communicates with the existing leg controller.
The system was designed to be flexible and integrate with other products that use motorized legs. For example:
- Integration with touchscreen displays for modern control panels.
- Software-based control from a PC interface.
System
No documentation was provided by the leg vendor, and no technical information was available online about the communication protocol.
To overcome this, we reverse-engineered the original remote controller circuit and decoded the communication protocol using a protocol analyzer.
Key Findings
- The remote communicates with the leg controller via UART protocol.
- Data packets include current leg position and error messages (overload, motor fault, cable fault).
Hardware Components
- Atmega328P Microcontroller
- 16x2 LCD Display
- CP2102 USB-to-TTL Converter
The firmware was written in embedded C language, and the system successfully mimics all the original remote controller functions.
Remote Functions
The custom remote replicates and extends the original functionality:
- Up/Down Control – Move legs upward or downward.
- Memory Function – Store the current desk height in memory.
- Memory Slots – Three programmable memory locations for preset positions.
- Calibration/Reset – Reset or recalibrate legs for synchronized operation.
- Display Output – Shows current desk position and error messages in real time.