Julusian / node-elgato-stream-deck

A Node.js library for interfacing with the Elgato Stream Deck. https://julusian.github.io/node-elgato-stream-deck/
https://www.npmjs.com/org/elgato-stream-deck
MIT License
159 stars 22 forks source link

StreamDeck Mini is not recognized #53

Closed hrueger closed 1 year ago

hrueger commented 1 year ago

Hi @Julusian, thanks for this really great library. It has been working great with my StreamDeck XL, but I've recently bought a StreamDeck Mini on Amazon and it is not recognized.

const sd = require("@elgato-stream-deck/node");
sd.listStreamDecks()

just returns []

It is working with the official StreamDeck software, though.

I'm using the latest version of @elgato-stream-deck/node: v5.4.0.

The usb-detection library reports the following when I plug it in:

{
  locationId: 0,
  vendorId: 4057,
  productId: 144,
  deviceName: 'USB-Eingabegerät',
  manufacturer: '(Standardsystemgeräte)',
  serialNumber: 'BL22L2B09174',
  deviceAddress: 8
}

Therefore it has USB VID 0x0FD9 and PID 0x0090

Does that help?

hrueger commented 1 year ago

The StreamDeck Mini also has the latest firmware (according to the official StreamDeck Software), which is 2.01.002.

Companion does not detect the StreamDeck Mini either.

Julusian commented 1 year ago

Could you try with v5.5.0-alpha.0? That should at least detect it, I don't know if it is able to open and use it properly.

It appears that elgato released a new revision of the mini recently, I am hoping they have done this to make the usb protocol be the same as the other models. They did this with the 15 key back before the xl was released (or it might have been shortly after)

hrueger commented 1 year ago

Yes, thanks for the hint 👍👍 It is indeed detected as a miniv2:

[
  {
    model: 'miniv2',
    path: '\\\\?\\hid#vid_0fd9&pid_0090#7&2de73741&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}',
    serialNumber: 'BL22L2B09174'
  }
]

Hm, It does not seem to work out of the box, though. It wants a key index between 0 and 3? I'll do some more debugging later.

hrueger commented 1 year ago

OK, I did some more testing.

The keydown and keyup events work partially: the buttons in the upper row do nothing at all and the buttons in the bottom row are reported with the indices 0 - 2.

The fillKeyColor function does not show anything on the keys wieh I try indices 0 - 3. For higher indices it complains with the following message:

TypeError: Expected a valid keyIndex 0 - 3
    at StreamDeckMiniV2.checkValidKeyIndex (A:\_Source\GLUE\node_modules\@elgato-stream-deck\core\src\models\base.ts:95:10)
    at StreamDeckMiniV2.fillKeyColor (A:\_Source\GLUE\node_modules\@elgato-stream-deck\core\src\models\base.ts:124:8)
    at StreamDeckNode.fillKeyColor (A:\_Source\GLUE\node_modules\@elgato-stream-deck\core\src\proxy.ts:50:22)
    at A:\_Source\GLUE\packages\makehaus-lib\src\examples\diagnostics.ts:27:24
    at Object.<anonymous> (A:\_Source\GLUE\packages\makehaus-lib\src\examples\diagnostics.ts:29:3)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module._compile (C:\Users\Admin\AppData\Roaming\nvm\v16.13.2\node_modules\ts-node-dev\node_modules\source-map-support\source-map-support.js:568:25)
    at Module.m._compile (C:\Users\Hannes\AppData\Local\Temp\ts-node-dev-hook-7328918113525853.js:69:33)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at require.extensions.<computed> (C:\Users\Hannes\AppData\Local\Temp\ts-node-dev-hook-7328918113525853.js:71:20)
[ERROR] 12:40:00 TypeError: Expected a valid keyIndex 0 - 3

clearPanel() does nothing either, I still see the default Elgato Screensaver Image.

Is there anything else I can test to help you?

Julusian commented 1 year ago

@hrueger hmm interesting.. The drawing is the more problematic bit to figure out. The keyIndex looks to be a typo I made, and the keydown/keyup indices is a simple fix.

Could you try changing the line class: models_1.StreamDeckMiniV2, to class: models_1.StreamDeckMini, in node_modules\@elgato-stream-deck\core\dist\index.js? I am wondering if they changed just the id and nothing else..

hrueger commented 1 year ago

Sure. Now almost everything is working 👍 I can use fillKeyColor as well as setBrightness and the clear functions. The button indices are correct now, too.

getFirmwareVersion() also works, but getSerialNumber() throws an error:

TypeError: could not get feature report from device
    at NodeHIDDevice.getFeatureReport (A:\_Source\GLUE\node_modules\@elgato-stream-deck\node\src\device.ts:48:34)
    at StreamDeckMini.getSerialNumber (A:\_Source\GLUE\node_modules\@elgato-stream-deck\core\src\models\base-gen1.ts:48:33)
    at StreamDeckNode.getSerialNumber (A:\_Source\GLUE\node_modules\@elgato-stream-deck\core\src\proxy.ts:74:22)
    at A:\_Source\GLUE\packages\makehaus-lib\src\examples\diagnostics.ts:32:36
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[ERROR] 12:58:23 TypeError: could not get feature report from device

Should I try the fillKeyBuffer function, too? I just don't have an image buffer at hand. Or is it used by fillKeyColor internally?

Julusian commented 1 year ago

Yes it would be a good idea to try fillKeyBuffer too, as different models require the library to rotate/flip the bitmap differently.

Could you run this and send the output, hopefully that will give me what is needed to make getSerialNumber work

const hid = require('node-hid')

const dev = new hid.HID(0x0fd9, 0x0090)

for (let i=1; i<50; i++) {
    console.log(`try: ${i}`)

    try {
        const v = Buffer.from(dev.getFeatureReport(i, 32))
        console.log(`got: ${v.toString('base64')} (${v.toString()})`)
    } catch (e) {
        console.log('failed', e)
    }
    console.log('')
}

Additionally, could you check if resetToLogo works too?

hrueger commented 1 year ago

Sure, there you go:

try: 1
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 2
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 3
got: AwySBoBCTDIyTDJCMDkxNzQAAAAAAAAAAAAAAAAAAAAo (♥♀�♠�BL22L2B09174()

try: 4
got: BAySBoAyLjAxLjAwMgAAAAAAAAAAAAAAAAAAAAAAAAAo (♦♀�♠�2.01.002()

try: 5
got: BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo (♣()

try: 6
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 7
got: BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo (()

try: 8
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 9
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 10
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 11
got: CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo (♂()

try: 12
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 13
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 14
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 15
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 16
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 17
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 18
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 19
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 20
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 21
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 22
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 23
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 24
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 25
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 26
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 27
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 28
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 29
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 30
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 31
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 32
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 33
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 34
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 35
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 36
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 37
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 38
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 39
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 40
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 41
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 42
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 43
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 44
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 45
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 46
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 47
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 48
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 49
failed TypeError: could not get feature report from device
    at Object.<anonymous> (A:\_Source\node-elgato-stream-deck\packages\node\examples\hid-test.js:9:29)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47
hrueger commented 1 year ago

fillKeyBuffer and resetToLogo works, too.

Julusian commented 1 year ago

hmm, the output of this script too please

const hid = require('node-hid')

const dev = new hid.HID(0x0fd9, 0x0060)

function doLen(i) {
    console.log(`try: ${i}`)

    try {
        const v = Buffer.from(dev.getFeatureReport(3, i))
        console.log(`got: ${v.toString('base64')} (${v.toString()})`)
    } catch (e) {
        console.log('failed', e)
    }
    console.log('')
}

doLen(17)
doLen(5)
doLen(24)
doLen(32)

It looks like getSerialNumber should work without needing any changes...

hrueger commented 1 year ago

I had to change the PID to 0x0090 to make it run. There you go:

try: 17
failed TypeError: could not get feature report from device
    at doLen (A:\_Source\GLUE\packages\makehaus-lib\test.js:9:35)
    at Object.<anonymous> (A:\_Source\GLUE\packages\makehaus-lib\test.js:17:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 5
failed TypeError: could not get feature report from device
    at doLen (A:\_Source\GLUE\packages\makehaus-lib\test.js:9:35)
    at Object.<anonymous> (A:\_Source\GLUE\packages\makehaus-lib\test.js:18:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 24
failed TypeError: could not get feature report from device
    at doLen (A:\_Source\GLUE\packages\makehaus-lib\test.js:9:35)
    at Object.<anonymous> (A:\_Source\GLUE\packages\makehaus-lib\test.js:19:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

try: 32
got: AwwAAABCTDIyTDJCMDkxNzQAAAAAAAAAAAAAAAAAAADo (♥♀BL22L2B09174�)
Julusian commented 1 year ago

ah of course, I forgot to change it back after checking against my original 15 key..

ok, could you try upgrading to v5.5.0-alpha.1 and make sure everything still works. It should include all the changes we have worked through here

hrueger commented 1 year ago

Sure. I checked fillKeyColor, key events, clearKey, clearPanel, fillKeyBuffer, setBrightness, resetToLogo, getFirmwareVersion and getSerialNumber. Everything works as expected now 👍

Anything else I should test?

Julusian commented 1 year ago

Perfect, no I dont think there is anything more to test.

This is now in v5.5.0, and I shall work on getting the changes included in Companion.

Thanks for all your help!

hrueger commented 1 year ago

Great, thanks for your quick updates!

Julusian commented 1 year ago

Companion beta build 4549 and later should work with this now