While the desk is moving, I see this every ~200 ms.
I’ve modified the decoding to not assume stop bits and now I’m getting 9 bytes per chunk, each look something like F2 F2 01 03 03 2E 0F 44 7E.
Which is the expected structure for height reports, I think.
This is good news. You have the expected protocol. Probably you just need to do a bit of debugging as to why your ESP isn’t recieving them properly and then you should be fully working.
I have the strong suspicion that RX may be defined to be another pin for board: esp32-c3-devkitm-1 / variant: esp32c3 in the BSP, though I haven’t tried to verify that.
Next think I’ll look into is how to send a hearbeat / wakeup command before triggering a move, because when the controller goes to sleep, I have to send two messages for it to do anything.
I’m not sure if it is the right way to do it but if you want to tinker you could try creating a local fork of the component and adding some kind of generic command before the main one.
You could send a hearbeat command via interval + uart.write or a uart switch but I’m not sure it is really a great idea to keep it awake? (if that is what it would do).
Currently reading through the commands in Desktopia Pro X Smart Control.
Looks like the “wakeup” mentioned there is the request settings command, which seems reasonable.
Yeah, I’d only want to send this command, if there wasn’t any received message from the desk for some time, e.g. 10 seconds.
Currently trying to figure out what other commands the desk supports, it has a reminder for standing time that you can set via software and similar things.
Though with the caveat that this did only work with the desk’s three “official” positions, 1 through 3.
I can set a fourth preset to the current height and later return to it, but don’t seem to be able to do so with this command.
I’ve successfully soldered a cable with rj11 to waveshare esp32-c3-zero and I can control my Ikea Uppspel desk with it.
The only change that I’ve made from the example script is to set the correct rx/tx_pin (GPIO20, GPIO21) in order to receive the initial information about the max/min/current height of the desk.