upsy-desky icon indicating copy to clipboard operation
upsy-desky copied to clipboard

IKEA UPPSPEL support

Open murraythegoz opened this issue 2 years ago • 4 comments

Hi,

asking for support for the IKEA's UPPSEL controller seems to be a rebranded JCB36N2 (https://www.jiecang.com/JCB36N2-pd45762211.html)

Works partially.

I set both uplift and jarvis template. All 4 desk preset works (both from web page and via MQTT) Current height is not handled.

How can I help debugging?

thank you

m.

murraythegoz avatar Oct 15 '22 11:10 murraythegoz

A small update. desk height is handled, but there is an offset.

Lowest height: 72 cm

height #1: 108 cm reported height #1: 26 cm

height #2: 72 cm reported height #2: 25.9 cm

height #3: 120 cm reported height #3: 26 cm

murraythegoz avatar Oct 15 '22 11:10 murraythegoz

upsy-desky-page2

murraythegoz avatar Oct 15 '22 11:10 murraythegoz

Thanks for the detailed report! I can make a separate decoder which offsets the height by -72 cm and send that to you for testing. I'll let you know when that is available.

tjhorner avatar Oct 16 '22 20:10 tjhorner

Thank you,

please let me know if in the meanwhile can help somehow (e.g. how to check whether the problem is due not only to offset or also different way of handling/decoding actual height)

murraythegoz avatar Oct 17 '22 09:10 murraythegoz

Hi any update? May I help somehow?

thanks

murraythegoz avatar Nov 04 '22 14:11 murraythegoz

Hi @murraythegoz, sorry for the delay. A lot on my plate right now! I should have a firmware for you to test this weekend.

tjhorner avatar Nov 05 '22 01:11 tjhorner

I had the same issue with my Omnidesk Pro. I found that the file uplift_decoder.cpp on line 27, was only looking for a value of 0 or 1. The desk was returning values up to 4. I think it is due to mm vs inches. I changed this one line to if (b == 0x00 || b == 0x01 || b == 0x02 || b == 0x03 || b == 0x04) { and it started returning the correct height values.

I am not a C++ programmer, so there probably is a better way to write this. Hope this helps.

nicholasgk avatar Dec 16 '22 11:12 nicholasgk

I had the same issue with my Omnidesk Pro. I found that the file uplift_decoder.cpp on line 27, was only looking for a value of 0 or 1. The desk was returning values up to 4. I think it is due to mm vs inches. I changed this one line to if (b == 0x00 || b == 0x01 || b == 0x02 || b == 0x03 || b == 0x04) { and it started returning the correct height values.

I am not a C++ programmer, so there probably is a better way to write this. Hope this helps.

Yup. this made the trick!

I'd instantiate a new variant with the suggested change, to avoid scramble working variants.

There is some inconsistency in the least significant bits (the position is off by a variable of 0.2-2 cms), but you caught the main issue.

Thank you!

murraythegoz avatar Dec 16 '22 13:12 murraythegoz

Tested this and confirming it resolves the issue reported here - https://github.com/tjhorner/wifi-desk-controller/discussions/18

Thank you so much for this!!! The desk is working perfectly now :)

pedrams1 avatar Feb 05 '23 07:02 pedrams1

@pedrams1 could you provide the model number for your desk's control box? I'd like to add it to the list of supported desks in the documentation. Thanks!

tjhorner avatar Feb 06 '23 06:02 tjhorner