Warning
Important: Working with electronic devices can be dangerous.
Follow this guide at your own risk.
This project enables control of a Flexispot standing desk using an M5Unified-compatible device (such as the Arduino Nesso N1) that emulates the original desk controller.
Most Flexispot desks—including the E7 Pro—use controller boards manufactured by LoctekMotion.
This project communicates with the desk’s control box through its RJ45 port via serial communication, allowing you to operate the desk from your M5Unified device.
Additionally, the desk’s height (7-segment display output) is decoded through the serial interface and displayed on:
- the M5Unified device’s built-in display
- a web UI accessible on the same local network
This project has been tested only on the Arduino Nesso N1.
- Full up/down motion control for Flexispot E7 Pro
- Wakeup, Memory, and Preset operations
- Button A: Wakeup (activates the desk controller)
- Button B: Preset 4 (commonly used as sitting height)
- Live height display on device screen
Accessible via http://<device-ip>/
- Wakeup (activate controller and read current height)
- Up / Down (moves only while pressed; commands sent every ~108 ms)
- Memory (cmd_mem)
- Presets 1 / 2 / 3 / 4
- Height auto-updates every 1 second
- Displays
Sleeping...when the desk is idle
- Flexispot E7 Pro
- Controller Model: HS13M-1C0
- Arduino Nesso N1 (tested & verified)
| RJ45 Pin | Cable Color (T-568B) | Description | Nesso N1 Pin |
|---|---|---|---|
| 1 | White Orange | - | - |
| 2 | Orange | - | - |
| 3 | White Green | - | - |
| 4 | Blue | Set HIGH for 1 second to wake controller | D3 |
| 5 | White Blue | RX (from remote) | D2 |
| 6 | Green | TX (to remote) | D1 |
| 7 | White Brown | GND | GND |
| 8 | Brown | VDD (5V) | VIN |
Flexispot / LoctekMotion controller uses:
- Baud rate: 9600 bps
- Data bits: 8
- Stop bits: 1
- Parity: none
Use the following configuration:
Serial1.begin(9600, SERIAL_8N1, D2, D1);Once the Wi-Fi SSID and password are configured in the code and the device is powered on,
the M5Unified device will connect to Wi-Fi and start an HTTP server on port 80.
The assigned IP address is shown on:
- the Serial Monitor
- the device's display
Access the controller from a browser: http://<device-ip>/
-
Wakeup
Activates the controller and enables height monitoring. -
Height Display
Updated once per second. -
Up / Down
Moves only while the button is held (press-and-hold behavior). -
Memory
Press once to enter memory-set mode.
Then press a preset button to store the current height. -
Preset 1–4
Moves desk to the stored height.
- Prepare and modify a standard RJ45 (Ethernet) cable.
- Connect the cable to the Flexispot controller box. (Some Flexispot models have two RJ45 ports, allowing coexistence with the original remote.)

- Open
flexispot_e7pro_nesson1.inoin Arduino IDE. - Update Wi-Fi credentials:
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";- Build and upload the firmware to the Arduino Nesso N1.
- Check the assigned IP address (Serial Monitor or device screen):
- Example:
WiFi connected.
IP address: 192.168.x.y
- Open the Web UI:
http://192.168.x.y/
- This is an unofficial, hobby-grade project, not affiliated with Flexispot or LoctekMotion.
- Be especially careful with wiring. Use a multimeter to verify correct voltage levels before connecting to the desk.
- Ensure no objects or people are under the desk while it is moving. Use entirely at your own risk.
This project is released under the MIT License.


