Desky Standing Desk (ESPHome) [Works with Desky, Uplift, Jiecang, Assmann & others]

Thanks for an awesome project! Confirmed working on a desk bought from Hexaplan. The desk is using a JCB35NS2-230 controller.

Is it a known issue that using ssieb’s example does not actually load the current height on boot? Or have I screwed up the soldering so GPIO14 doesn’t actually work? If I press a button the desk’s own control panel to wake it up the current height shows up on the D1 Mini too.

  uart_id: desk_uart
  id: standing_desk
    name: Height
    number: GPIO4
    inverted: true
    number: GPIO5
    inverted: true
    number: GPIO14
    inverted: true
1 Like

It should work. It may be your soldering etc.

Great to hear it’s (almost) working. I’ve added your desk brand to the works with list.

What you could do to test/debug is remove these lines

And add a switch like this and then hit it after boot and see if it triggers height messages.

Also trace through the “wake wire” to make sure that is wired and soldered correctly.

It was embarrasingly easy to fix :see_no_evil: The all-blue cable coming from the controller had come a little bit lose from the RJ45 breakout. Now it works like a charm.

1 Like

Glad to hear it was an easy fix and it’s working;)

1 Like

Hi there, first, thanks for this Thread an all work you put in it. My question is about compatibility of an older BOHO OFFICE Basic Line (2021). This one has a RJ50 Conector (LAN with 10 strands) runed with 5 strands in it. Sadly I don’t have an oscilloscope to exactly read what’s going on on each lane. The following pictures are from the remote (housed an the circuit board itself, and the type label of on the main unit:

Can I do this project with this threat, or does my desk use another type of communication. As I can see the other desk are driven by 6 lanes conected to the esp, in my case there are only 5 at all.

Thank you for taking your time.

Welcome @dunkelheim, please post in English per forum rules and we’ll see what we can do to help.


1 Like

Hello @Mahko_Mahko, I am really sorry for typing in german and don’t know today why I did that after reading the most of this thread. Maybe a bit to tired yesterday as I have written it. Thanks for your kind answer to this, I appreciate it a lot.

1 Like

No worries.

I think it’s unlikely this solution will work for you.

The other Boho desk on this thread clearly had a Jiecang controller while yours appears to be Kaidi, who appear to be a different manufacturer.

You may need to start from scratch and be willing to decode the protocol, like this guy did…



I have the same desk and took the time this evening to sort out the protocol – planning to integrate this here, but there are some further hardware adaptions required due to a 5V logic level instead of 3v3

Here’s the protocol: GitHub - xvzf/kaidi-desk-controller-protocol: Kaidi standing desk controller protocol analysis for homeassistant integration

1 Like

This component is actually 5V logic too!

You’ll find various discussions online about whether ESPs are 5V tolerant.

I concluded that they are and use no extra level shifting. Everything has been fine so far.

Uh, interesting! I killed an ESP32 with it :rofl:

1 Like

Where did I go wrong?!

I’m wondering if anyone here can spot the mistake I’ve made in my setup, as I’ve deviated a bit from what folks have posted in the thread.

Desk: Fully Jarvis (JCB35N-110)
Controller: Seeed Studio XIAO ESP32C3
Ethernet Jacks: Teansic 2PCS RJ45 Ethernet Dual Female Terminal Breakout Board

What works:

  • Desk controller works as normal
  • ESP32 boots and connects over wifi off of the 5v line

Esphome Config:

  - id: desk_uart
    baud_rate: 9600
    tx_pin: 21

  id: my_desky
    name: Desk Height
    accuracy_decimals: 1
    unit_of_measurement: cm
    number: 8
    inverted: true
    number: 9
    inverted: true
    number: 10
    inverted: true
  stopping_distance: 15
  timeout: 15s

  - platform: template
    name: Desky moving
    lambda: return id(my_desky).current_operation != desky::DESKY_OPERATION_IDLE;

Wiring (Seeed Studio XIAO pins → Ethernet board line):
D6: 2
D8: 7
D9: 8
D10: 4
Ground: 3

Wiring (Seeed Studio XIAO pins → Pin Name → ESP32 SoC pin from pinout):
D6: U0TXD (Uart TX) GPIO21 - 28
D8: GPIO8 - 14
D9: GPIO9 - 15
D10: GPIO10/FSPICS0 - 16

I may be misinterpreting this diagram?

Or perhaps I’m using a pin that can’t be used for what I think it can be used for?

What’s not working? Like more or less everything?

Posting some logs will prob help a bit.

Probably post your whole config too.


Hello Mahko Mahko, would like to know if you have this controller, I am needing it!! Please txt me, Ph. <redacted>
Juan Pablo G

Posting personal contact information on public forums is not a smart thing to do. Please do some reading about why here:

We are a friendly bunch of regulars here but anyone can see that information

I have edited your post to remove the phone number and hidden the revision.

Mahko_Mahko will likely respond to you here and invite you to contact them privately if they feel so inclined.

1 Like

Welcome @gonperjp.

If we could start again and you could elaborate a little more on what your issues/needs are we can see what we can do to help.

In the first instance I’d rather do it here rather than PM so that others can learn from it too.

Good morning Mahko, my neighbors desk stopped working, the controller is broken, and I am lookind for its replacement. Attached the picture. Txs, JP

Google Photos

Do you know what make and model the desk is? I can’t identify the controller from that photo. Does the control box have a label with details (like some of the other photos of controllers in this thread?)

Thanks for responding, these are the pictures of it:


It looks like you have a JCB35N2 (Same as me).

From what I can tell these are now an older model and are discontinued (see Jiecang site). Likely there is a newer backwards compatible model.

? JCB36N2 - Buy JCB36N2 Product on JIECANG

You could reach out to BDI (who appear to be the retailer based on the control panel badging) and ask them about a suitable replacement?

You could also reach out to Jiecang and confirm which newer models are compatible.

Be aware that it could be another component rather that the control box that may be faulty (control panel, connections, linear actuators etc). Definitely double check all connections are solid (just check none are lose ). You could probably dianose what the faulty component is at home with a multimeter, but that would require some electrical knowledge (beware of high voltages etc). BDI also may be able to help fault-find.

If you are confident it is the controller you may be able to find old stock online (perhaps this is already what you are doing;).