bitfocus / loupedeck-ct

Loupedeck CT Node.js module

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Question about outboundFirstPost()

latenitefilms opened this issue · comments

Howdy! Awesome work on this repository - very helpful!

I am really curious though... what does this section of code actually do?

/* move along, nothing to see here.. act as you didn't see anything */

Keep up the amazing work!

Hi! We’re a bit unsure, but some of it is parts of the initialization process to get the displays going. :) the original software sends it.

Good to know, thanks heaps!

Curious... what tools are you using to monitor what the original software sends, or are you just reviewing the debug logs from the original software?

We are using wireshark for looking at both usb, and in this case, network traffic

Legend, thanks heaps @haakonnessjoen !

Based on the log files generated by the original software, I'm GUESSING the initialisation code is related to enabling acceleration and direct draw?

2020-01-03T16-21-12-1964 |  29 |       | 1 adapters found
2020-01-03T16-21-12-1988 |  29 |       | Adding new device '100.127.24.1:80'
2020-01-03T16-21-12-2009 |  29 |       | Encoder acceleration: True
2020-01-03T16-21-12-2011 |  29 |       | Dial acceleration: True
2020-01-03T16-21-12-2012 |  29 |       | Wheel acceleration: True
2020-01-03T16-21-12-2013 |  29 |       | CT encoder acceleration: True
2020-01-03T16-21-12-2015 |  29 |       | CT wheel acceleration: True
2020-01-03T16-21-12-2023 |  29 |       | IsDirectDraw: True
2020-01-03T16-21-12-2047 |  29 |       | Opening 'ws://100.127.24.1:80'
2020-01-03T16-21-12-2241 |  29 |       | Connection open: WebSocket '100.127.24.1:80'
2020-01-03T16-21-12-2246 |  30 |       | Starting background loop (100.127.24.1:80)
2020-01-03T16-21-12-2259 |  29 |       | Sending message (19): (19) 13-0E-01-53-B7-00-6D-1C-3F-98-C1-D0-80-5C-50-B7 ...
2020-01-03T16-21-12-2273 |  29 |       | Message sent (19): (19) 13-0E-01-53-B7-00-6D-1C-3F-98-C1-D0-80-5C-50-B7-F2-0C-E7
2020-01-03T16-21-12-6886 |  28 |       | Message received (19): (19) 13-0E-01-53-B7-00-6D-1C-3F-98-C1-D0-80-5C-50-B7 ...
2020-01-03T16-21-12-6914 |  29 |       | Loopback True
2020-01-03T16-21-12-6918 |  29 |       | Sending message (19): (19) 13-1C-02-7E-1E-38-CF-55-8B-2C-13-AB-14-64-71-1C ...
2020-01-03T16-21-12-6919 |  29 |       | Message sent (19): (19) 13-1C-02-7E-1E-38-CF-55-8B-2C-13-AB-14-64-71-1C-ED-B0-8A
2020-01-03T16-21-12-6938 |  27 |       | Message received (19): (19) 13-1C-02-64-42-AA-22-DC-81-7A-80-DB-E9-E7-31-03 ...
2020-01-03T16-21-12-7024 |  29 |       | Get device information
2020-01-03T16-21-12-7027 |  29 |       | Sending message (3): (3) 03-07-03
2020-01-03T16-21-12-7028 |  29 |       | Message sent (3): (3) 03-07-03
2020-01-03T16-21-12-7034 |  26 |       | Message received (12): (12) 0C-07-03-00-00-08-00-09-00-01-00-0A
2020-01-03T16-21-12-7038 |  29 |       | Firmware version 'B': '0.0.8'
2020-01-03T16-21-12-7039 |  29 |       | Firmware version 'C': '0.9.0'
2020-01-03T16-21-12-7041 |  29 |       | Firmware version 'I': '1.0.10'
2020-01-03T16-21-12-7043 |  29 |       | Sending message (3): (3) 03-0D-04
2020-01-03T16-21-12-7044 |  29 |       | Message sent (3): (3) 03-0D-04
2020-01-03T16-21-12-7050 |  26 |       | Message received (15): (15) 0F-0D-04-05-00-0F-80-01-51-38-34-32-34-32-36
2020-01-03T16-21-12-7053 |  29 |       | MCU ID: 05000F800151383432343236
2020-01-03T16-21-12-7056 |  29 |       | Sending message (3): (3) 03-04-05
2020-01-03T16-21-12-7057 |  29 |       | Message sent (3): (3) 03-04-05
2020-01-03T16-21-12-7063 |  26 |       | Message received (7): (7) 07-04-05-BF-00-3F-00
2020-01-03T16-21-12-7065 |  29 |       | Self-tests: 0x003F00BF
2020-01-03T16-21-12-7067 |  29 |       | Sending message (3): (3) 03-03-06
2020-01-03T16-21-12-7068 |  29 |       | Message sent (3): (3) 03-03-06
2020-01-03T16-21-12-7074 |  21 |       | Message received (31): (31) 1F-03-06-4C-44-44-31-39-30-33-30-31-31-30-31-39 ...
2020-01-03T16-21-12-7076 |  29 |       | Serial number: 'LDD1903011019480700173B0001'
2020-01-03T16-21-12-7080 |  29 |       | Sending message (4): (4) 04-1A-07-00
2020-01-03T16-21-12-7081 |  29 |       | Message sent (4): (4) 04-1A-07-00
2020-01-03T16-21-12-7087 |  24 |       | Message received (8): (8) 08-1A-07-00-00-00-00-02
2020-01-03T16-21-12-7090 |  29 |       | Register 0: 0x00000002
2020-01-03T16-21-12-7091 |  29 |       | Sending message (4): (4) 04-1A-08-01
2020-01-03T16-21-12-7093 |  29 |       | Message sent (4): (4) 04-1A-08-01
2020-01-03T16-21-12-7098 |  26 |       | Message received (8): (8) 08-1A-08-01-00-01-00-00
2020-01-03T16-21-12-7100 |  29 |       | Register 1: 0x00010000
2020-01-03T16-21-12-7102 |  29 |       | Sending message (4): (4) 04-1A-09-02
2020-01-03T16-21-12-7103 |  29 |       | Message sent (4): (4) 04-1A-09-02
2020-01-03T16-21-12-7107 |  28 |       | Message received (8): (8) 08-1A-09-02-02-00-09-00
2020-01-03T16-21-12-7112 |  29 |       | Register 2: 0x02000900
2020-01-03T16-21-12-7114 |  29 |       | Vibra waveform index: 25
2020-01-03T16-21-12-7115 |  29 |       | Backlight level: 9
2020-01-03T16-21-12-7118 |  29 |       | Sending message (4): (4) 04-1E-0A-00
2020-01-03T16-21-12-7119 |  29 |       | Message sent (4): (4) 04-1E-0A-00
2020-01-03T16-21-12-7124 |  21 |       | Message received (4): (4) 04-1E-0A-04
2020-01-03T16-21-12-7126 |  29 |       | Wheel sensitivity: 4
2020-01-03T16-21-12-7128 |  29 |       | Loupedeck2 device opened: WebSocket '100.127.24.1:80'
2020-01-03T16-21-12-7131 |  29 |       | Device '100.127.24.1:80' added
2020-01-03T16-21-12-7139 |  29 |       | Resetting device
2020-01-03T16-21-12-7142 |  29 |       | Sending message (4): (4) 04-09-0B-09
2020-01-03T16-21-12-7144 |  29 |       | Message sent (4): (4) 04-09-0B-09
2020-01-03T16-21-12-7147 |  29 |       | Sending message (7): (7) 07-02-0C-07-00-00-00
2020-01-03T16-21-12-7149 |  21 |       | Message received (4): (4) 04-09-0B-01
2020-01-03T16-21-12-7149 |  29 |       | Message sent (7): (7) 07-02-0C-07-00-00-00
2020-01-03T16-21-12-7151 |  29 |       | Sending message (7): (7) 07-02-0D-08-00-00-00
2020-01-03T16-21-12-7153 |  24 |       | Message received (3): (3) 03-02-0C
2020-01-03T16-21-12-7153 |  29 |       | Message sent (7): (7) 07-02-0D-08-00-00-00
2020-01-03T16-21-12-7156 |  29 |       | Sending message (7): (7) 07-02-0E-09-00-00-00
2020-01-03T16-21-12-7157 |  26 |       | Message received (3): (3) 03-02-0D
2020-01-03T16-21-12-7159 |  29 |       | Message sent (7): (7) 07-02-0E-09-00-00-00
2020-01-03T16-21-12-7162 |  29 |       | Sending message (7): (7) 07-02-0F-0A-00-00-00
2020-01-03T16-21-12-7163 |  29 |       | Message sent (7): (7) 07-02-0F-0A-00-00-00
2020-01-03T16-21-12-7163 |  27 |       | Message received (3): (3) 03-02-0E
2020-01-03T16-21-12-7164 |  29 |       | Sending message (7): (7) 07-02-10-0B-00-00-00
2020-01-03T16-21-12-7167 |  29 |       | Message sent (7): (7) 07-02-10-0B-00-00-00
2020-01-03T16-21-12-7168 |  21 |       | Message received (3): (3) 03-02-0F
2020-01-03T16-21-12-7168 |  29 |       | Sending message (7): (7) 07-02-11-0C-00-00-00
2020-01-03T16-21-12-7171 |  29 |       | Message sent (7): (7) 07-02-11-0C-00-00-00
2020-01-03T16-21-12-7173 |  29 |       | Sending message (7): (7) 07-02-12-0D-00-00-00
2020-01-03T16-21-12-7172 |  26 |       | Message received (3): (3) 03-02-10
2020-01-03T16-21-12-7174 |  29 |       | Message sent (7): (7) 07-02-12-0D-00-00-00
2020-01-03T16-21-12-7176 |  29 |       | Sending message (7): (7) 07-02-13-0E-00-00-00
2020-01-03T16-21-12-7177 |  27 |       | Message received (3): (3) 03-02-11
2020-01-03T16-21-12-7178 |  29 |       | Message sent (7): (7) 07-02-13-0E-00-00-00
2020-01-03T16-21-12-7180 |  29 |       | Sending message (7): (7) 07-02-14-0F-00-00-00
2020-01-03T16-21-12-7181 |  29 |       | Message sent (7): (7) 07-02-14-0F-00-00-00
2020-01-03T16-21-12-7180 |  26 |       | Message received (3): (3) 03-02-12
2020-01-03T16-21-12-7182 |  29 |       | Sending message (7): (7) 07-02-15-10-00-00-00
2020-01-03T16-21-12-7184 |  28 |       | Message received (3): (3) 03-02-13
2020-01-03T16-21-12-7186 |  29 |       | Message sent (7): (7) 07-02-15-10-00-00-00
2020-01-03T16-21-12-7188 |  29 |       | Sending message (7): (7) 07-02-16-11-00-00-00
2020-01-03T16-21-12-7188 |  26 |       | Message received (3): (3) 03-02-14
2020-01-03T16-21-12-7189 |  29 |       | Message sent (7): (7) 07-02-16-11-00-00-00
2020-01-03T16-21-12-7191 |  26 |       | Message received (3): (3) 03-02-15
2020-01-03T16-21-12-7192 |  29 |       | Sending message (7): (7) 07-02-17-12-00-00-00
2020-01-03T16-21-12-7195 |  28 |       | Message received (3): (3) 03-02-16
2020-01-03T16-21-12-7195 |  29 |       | Message sent (7): (7) 07-02-17-12-00-00-00
2020-01-03T16-21-12-7197 |  29 |       | Sending message (7): (7) 07-02-18-13-00-00-00
2020-01-03T16-21-12-7199 |  29 |       | Message sent (7): (7) 07-02-18-13-00-00-00
2020-01-03T16-21-12-7199 |  21 |       | Message received (3): (3) 03-02-17
2020-01-03T16-21-12-7201 |  29 |       | Sending message (7): (7) 07-02-19-14-00-00-00
2020-01-03T16-21-12-7203 |  29 |       | Message sent (7): (7) 07-02-19-14-00-00-00
2020-01-03T16-21-12-7203 |  24 |       | Message received (3): (3) 03-02-18
2020-01-03T16-21-12-7204 |  29 |       | Sending message (7): (7) 07-02-1A-15-00-00-00
2020-01-03T16-21-12-7207 |  29 |       | Message sent (7): (7) 07-02-1A-15-00-00-00
2020-01-03T16-21-12-7208 |  27 |       | Message received (3): (3) 03-02-19
2020-01-03T16-21-12-7208 |  29 |       | Sending message (7): (7) 07-02-1B-16-00-00-00
2020-01-03T16-21-12-7211 |  29 |       | Message sent (7): (7) 07-02-1B-16-00-00-00
2020-01-03T16-21-12-7212 |  29 |       | Sending message (7): (7) 07-02-1C-17-00-00-00
2020-01-03T16-21-12-7213 |  27 |       | Message received (3): (3) 03-02-1A
2020-01-03T16-21-12-7214 |  29 |       | Message sent (7): (7) 07-02-1C-17-00-00-00
2020-01-03T16-21-12-7216 |  29 |       | Sending message (7): (7) 07-02-1D-18-00-00-00
2020-01-03T16-21-12-7217 |  26 |       | Message received (3): (3) 03-02-1B
2020-01-03T16-21-12-7218 |  29 |       | Message sent (7): (7) 07-02-1D-18-00-00-00
2020-01-03T16-21-12-7220 |  29 |       | Sending message (7): (7) 07-02-1E-19-00-00-00
2020-01-03T16-21-12-7221 |  21 |       | Message received (3): (3) 03-02-1C
2020-01-03T16-21-12-7221 |  29 |       | Message sent (7): (7) 07-02-1E-19-00-00-00
2020-01-03T16-21-12-7224 |  29 |       | Sending message (7): (7) 07-02-1F-1A-00-00-00
2020-01-03T16-21-12-7224 |  21 |       | Message received (3): (3) 03-02-1D
2020-01-03T16-21-12-7225 |  29 |       | Message sent (7): (7) 07-02-1F-1A-00-00-00
2020-01-03T16-21-12-7229 |  21 |       | Message received (3): (3) 03-02-1E
2020-01-03T16-21-12-7234 |  26 |       | Message received (3): (3) 03-02-1F

Also, upon looking at those logs, I just noticed that you can request the firmware version, which I don't believe you have in your current code, which might be handy?

2020-01-03T16-21-12-7028 |  29 |       | Message sent (3): (3) 03-07-03
2020-01-03T16-21-12-7034 |  26 |       | Message received (12): (12) 0C-07-03-00-00-08-00-09-00-01-00-0A
2020-01-03T16-21-12-7038 |  29 |       | Firmware version 'B': '0.0.8'
2020-01-03T16-21-12-7039 |  29 |       | Firmware version 'C': '0.9.0'
2020-01-03T16-21-12-7041 |  29 |       | Firmware version 'I': '1.0.10'

...which also solves one mystery, as this line is requesting the firmware version:

this.connection.send(Buffer.from("030703", "hex"));

Yeah, that sounds about right. :) We're not putting too much effort into this. The guys over at Loupedeck are planning on releasing an official SDK, so this implementation is just to have something to work with until they launch it.

Yeah, I'm also waiting for the official SDK to ship, however, I've had lots of bugs/issues with the official app with the Loupedeck CT & Loupedeck+, so I'm interested in coming up with something that doesn't require the official app to be installed and running.

FYI: I'm planning on adding Loupedeck CT support to Hammerspoon & CommandPost.

Thanks heaps for posting your experiments on GitHub - very, very helpful!

@willosof & @haakonnessjoen - We've been playing around with the Loupedeck CT, and have uncovered quite a few things that may be of interest. We've been working in Lua - however, the code should be easy enough to understand and translate back to NodeJS if you're still actively experimenting with this repo. Thanks again for all your help!

CommandPost/CommandPost#2247

During the last week, I spent some time brute-forcing the protocol of the Loupedeck CT. Command 041e (or rather, XX1e ) with byte 00 reads the wheel sensitivity. 041eXXYY sets the wheel sensitivity to YY. See also

Corion/HID-LoupedeckCT@dcc6626