Code Monkey home page Code Monkey logo

Comments (11)

nomego avatar nomego commented on May 30, 2024 2

@Chirishman Of course, it's available in my repo - https://github.com/nomego/intel_nuc_led/tree/master/specs

from intel_nuc_led.

milesp20 avatar milesp20 commented on May 30, 2024

At a glance, the NUC8i7HVK does seem to use WMI much like the earlier NUCs, so yes it probably could be extended. However, there is not much in the way of documentation out there that I could find, and I don't have this particular NUC, nor do I currently have any plans to purchase it. Given that, don't expect this driver to be updated to support it in the near future (unless somebody else implements it).

With that said, should I end up with a NUC8i7HVK at some point, I would put the time in to support it.

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

Great and thanks for your response!

Do you have any pointers on how to figure the LEDs out? Maybe I could get something started at least.

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

fwts wmi

wmi: Extract and analyse Windows Management Instrumentation (WMI).
--------------------------------------------------------------------------------------------------------------------------------------------
FADT X_FIRMWARE_CTRL 64 bit pointer was zero, falling back to using FIRMWARE_CTRL 32 bit pointer.
Test 1 of 1: Windows Management Instrumentation test.

\_SB_.WTBT._WDG (1 of 1)
  GUID: 86CCFD48-205E-4A77-9C48-2021CBEDE341
  WMI Method:
    Flags          : 0x02 (Method)
    Object ID      : TF
    Instance       : 0x01
PASSED: Test 1, 86CCFD48-205E-4A77-9C48-2021CBEDE341 has associated method \_SB_.WTBT.WMTF

\AMW0._WDG (1 of 2)
  GUID: 8C5DA44C-CDC3-46B3-8619-4E26D34390B7
  WMI Method:
    Flags          : 0x02 (Method)
    Object ID      : AA
    Instance       : 0x01
PASSED: Test 1, 8C5DA44C-CDC3-46B3-8619-4E26D34390B7 has associated method \AMW0.WMAA

\AMW0._WDG (2 of 2)
  GUID: 05901221-D566-11D1-B2F0-00A0C9062910
  WMI Object:
    Flags          : 0x00 (None)
    Object ID      : BA
    Instance       : 0x01

acpidump/acpixtract/iasl

    Device (AMW0)
    {
        Name (_HID, "PNP0C14" /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
        Name (_UID, Zero)  // _UID: Unique ID
        Name (_WDG, Buffer (0x28)
        {
            /* 0000 */  0x4C, 0xA4, 0x5D, 0x8C, 0xC3, 0xCD, 0xB3, 0x46,  // L.]....F
            /* 0008 */  0x86, 0x19, 0x4E, 0x26, 0xD3, 0x43, 0x90, 0xB7,  // ..N&.C..
            /* 0010 */  0x41, 0x41, 0x01, 0x02, 0x21, 0x12, 0x90, 0x05,  // AA..!...
            /* 0018 */  0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,  // f.......
            /* 0020 */  0xC9, 0x06, 0x29, 0x10, 0x42, 0x41, 0x01, 0x00   // ..).BA..
        })
        Name (WQBA, Buffer (0x064A)
        {
            /* 0000 */  0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,  // FOMB....
            /* 0008 */  0x3A, 0x06, 0x00, 0x00, 0x3E, 0x32, 0x00, 0x00,  // :...>2..
            /* 0010 */  0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,  // DS...}.T
            /* 0018 */  0x98, 0x4C, 0x98, 0x00, 0x01, 0x06, 0x18, 0x42,  // .L.....B
            /* 0020 */  0x10, 0x07, 0x10, 0x22, 0x21, 0x04, 0x12, 0x01,  // ..."!...
            /* 0028 */  0xA1, 0xC8, 0x2C, 0x0C, 0x86, 0x10, 0x38, 0x2E,  // ..,...8.
            /* 0030 */  0x24, 0x15, 0x07, 0x85, 0x12, 0x02, 0xA1, 0xFE,  // $.......
            /* 0038 */  0x04, 0xF2, 0x2B, 0x00, 0xA1, 0x43, 0x01, 0x32,  // ..+..C.2
            /* 0040 */  0x05, 0x18, 0x14, 0xE0, 0x14, 0x41, 0x04, 0xBD,  // .....A..
            /* 0048 */  0x0A, 0xB0, 0x29, 0xC0, 0xA4, 0x00, 0x8B, 0x02,  // ..).....
            /* 0050 */  0xB4, 0x0B, 0xB0, 0x2C, 0x40, 0xB7, 0x00, 0xE9,  // ...,@...
            /* 0058 */  0xB0, 0x44, 0x24, 0x38, 0x4A, 0x0C, 0x38, 0x4A,  // .D$8J.8J
            /* 0060 */  0x27, 0xB6, 0x70, 0xC3, 0x06, 0x2F, 0x14, 0x45,  // '.p../.E
            /* 0068 */  0x33, 0x88, 0x92, 0xA0, 0x5C, 0x04, 0xE9, 0x82,  // 3...\...
            /* 0070 */  0x90, 0x72, 0x01, 0xBE, 0x11, 0x34, 0x80, 0x28,  // .r...4.(
            /* 0078 */  0xBD, 0x0B, 0xB0, 0x2D, 0xC0, 0x34, 0x3C, 0x91,  // ...-.4<.
            /* 0080 */  0x3A, 0x04, 0x94, 0x9C, 0x21, 0xA0, 0x06, 0xD0,  // :...!...
            /* 0088 */  0xEA, 0x04, 0x84, 0x5F, 0xE9, 0x94, 0x90, 0x04,  // ..._....
            /* 0090 */  0xE1, 0x8C, 0x55, 0xFC, 0x0C, 0x34, 0x87, 0x13,  // ..U..4..
            /* 0098 */  0x38, 0xA7, 0xCE, 0x31, 0xE4, 0x78, 0x5C, 0xE8,  // 8..1.x\.
            /* 00A0 */  0x41, 0x70, 0x99, 0x2B, 0x26, 0x04, 0xE5, 0x0F,  // Ap.+&...
            /* 00A8 */  0x59, 0xC2, 0x60, 0x50, 0x12, 0xC6, 0x42, 0x5D,  // Y.`P..B]
            /* 00B0 */  0x8C, 0x1A, 0x35, 0x52, 0x36, 0x20, 0x43, 0x94,  // ..5R6 C.
            /* 00B8 */  0x36, 0x6A, 0xF4, 0x80, 0xCE, 0xEE, 0x48, 0x1A,  // 6j....H.
            /* 00C0 */  0x16, 0x20, 0x7B, 0x24, 0x22, 0x30, 0xEA, 0x31,  // . {$"0.1
            /* 00C8 */  0x1D, 0xE1, 0xB7, 0xC0, 0x19, 0x45, 0x8D, 0xD1,  // .....E..
            /* 00D0 */  0x1C, 0x14, 0x09, 0x37, 0x68, 0xB4, 0x44, 0x58,  // ...7h.DX
            /* 00D8 */  0x8D, 0x2B, 0xF6, 0x99, 0x59, 0xF8, 0xB0, 0x84,  // .+..Y...
            /* 00E0 */  0x71, 0x04, 0x07, 0x76, 0xB0, 0x16, 0x0D, 0x23,  // q..v...#
            /* 00E8 */  0xB4, 0x82, 0xE0, 0x34, 0x88, 0xA3, 0x88, 0x12,  // ...4....
            /* 00F0 */  0x86, 0xE1, 0x19, 0x33, 0xD0, 0x51, 0x32, 0xA4,  // ...3.Q2.
            /* 00F8 */  0x30, 0x41, 0x4F, 0x20, 0x48, 0xC9, 0x18, 0xD2,  // 0AO H...
            /* 0100 */  0x8C, 0x45, 0x20, 0xCE, 0x80, 0x63, 0xC5, 0x08,  // .E ..c..
            /* 0108 */  0x15, 0x12, 0x33, 0x90, 0xE0, 0xFF, 0xFF, 0x13,  // ..3.....
            /* 0110 */  0xE8, 0x1A, 0x43, 0x9E, 0x81, 0x88, 0xF5, 0x09,  // ..C.....
            /* 0118 */  0x08, 0x24, 0x7A, 0x94, 0xE0, 0xC6, 0x35, 0x2A,  // .$z...5*
            /* 0120 */  0x1B, 0xD3, 0xD9, 0xE0, 0x06, 0x66, 0x82, 0x38,  // .....f.8
            /* 0128 */  0x87, 0x87, 0x91, 0x01, 0xA1, 0x09, 0xC4, 0x8F,  // ........
            /* 0130 */  0x1D, 0x3E, 0x81, 0xDD, 0x0B, 0xB0, 0x26, 0xC0,  // .>....&.
            /* 0138 */  0x99, 0x00, 0x8D, 0xF7, 0x01, 0x41, 0x04, 0x09,  // .....A..
            /* 0140 */  0xD3, 0x9B, 0x00, 0x5B, 0x77, 0x02, 0x29, 0x13,  // ...[w.).
            /* 0148 */  0xA0, 0xF0, 0x30, 0x20, 0x94, 0xE3, 0x8D, 0x70,  // ..0 ...p
            /* 0150 */  0x46, 0xC1, 0xA2, 0x04, 0x34, 0x4C, 0x6D, 0x28,  // F...4Lm(
            /* 0158 */  0x42, 0x0C, 0x13, 0xC2, 0x30, 0x21, 0x22, 0x9C,  // B...0!".
            /* 0160 */  0x76, 0x88, 0x43, 0x0E, 0x11, 0xB7, 0xFD, 0x41,  // v.C....A
            /* 0168 */  0x90, 0x68, 0xE7, 0x01, 0xFD, 0x08, 0x2C, 0x09,  // .h....,.
            /* 0170 */  0x44, 0x46, 0xB6, 0x94, 0x80, 0x1C, 0x16, 0x3C,  // DF.....<
            /* 0178 */  0x1C, 0x8F, 0xA2, 0xF9, 0x99, 0x69, 0x54, 0x4C,  // .....iTL
            /* 0180 */  0x02, 0xA0, 0x34, 0x80, 0x48, 0xD4, 0x11, 0x83,  // ..4.H...
            /* 0188 */  0x13, 0x48, 0xCA, 0xC9, 0x80, 0xDC, 0x1E, 0x3C,  // .H.....<
            /* 0190 */  0x89, 0x03, 0x3C, 0x75, 0xDF, 0x0D, 0xCE, 0xCC,  // ..<u....
            /* 0198 */  0x1F, 0x0D, 0x6F, 0xC1, 0x67, 0x04, 0x3E, 0x06,  // ..o.g.>.
            /* 01A0 */  0x0F, 0xF5, 0x10, 0x02, 0x1E, 0x21, 0x3B, 0x24,  // .....!;$
            /* 01A8 */  0x18, 0x10, 0x7F, 0x9F, 0x78, 0x2B, 0xF0, 0x5C,  // ....x+.\
            /* 01B0 */  0x0C, 0xC8, 0x0E, 0x0A, 0xCF, 0x07, 0x60, 0x99,  // ......`.
            /* 01B8 */  0xEE, 0x11, 0x9F, 0xE6, 0x39, 0x54, 0x3C, 0x36,  // ....9T<6
            /* 01C0 */  0xC4, 0x95, 0x80, 0x8F, 0xE5, 0xA8, 0xD8, 0x31,  // .......1
            /* 01C8 */  0x82, 0x8D, 0x8E, 0x8F, 0xC2, 0x67, 0x87, 0x03,  // .....g..
            /* 01D0 */  0x2E, 0xF6, 0x4C, 0x42, 0x65, 0x1D, 0x23, 0xD0,  // ..LBe.#.
            /* 01D8 */  0x67, 0x80, 0x23, 0x0C, 0xF8, 0xD2, 0xD0, 0xEC,  // g.#.....
            /* 01E0 */  0x55, 0x83, 0x10, 0xBC, 0x0E, 0xF8, 0xC6, 0xE0,  // U.......
            /* 01E8 */  0x53, 0x89, 0x05, 0x1E, 0x4B, 0x40, 0x31, 0x00,  // S...K@1.
            /* 01F0 */  0x83, 0x9C, 0x5B, 0xAC, 0x03, 0xF8, 0xFF, 0xBF,  // ..[.....
            /* 01F8 */  0x30, 0xE0, 0x0E, 0x26, 0xC0, 0x65, 0x04, 0x5C,  // 0..&.e.\
            /* 0200 */  0xE9, 0xFA, 0x4C, 0x20, 0xC1, 0x43, 0x94, 0x88,  // ..L .C..
            /* 0208 */  0x85, 0x52, 0x18, 0x1F, 0x0D, 0x7C, 0x06, 0x81,  // .R...|..
            /* 0210 */  0x2B, 0x09, 0x0E, 0x35, 0x44, 0xCF, 0xED, 0xF8,  // +..5D...
            /* 0218 */  0x8F, 0xF4, 0xD0, 0x0E, 0xC4, 0x93, 0x7B, 0x18,  // ......{.
            /* 0220 */  0x81, 0x71, 0x54, 0xF0, 0xB4, 0x4E, 0xC9, 0x97,  // .qT..N..
            /* 0228 */  0x94, 0x47, 0x0A, 0xDF, 0x2E, 0x4C, 0xE0, 0xF3,  // .G...L..
            /* 0230 */  0x02, 0x43, 0xE3, 0x27, 0x13, 0xB0, 0x8E, 0xE7,  // .C.'....
            /* 0238 */  0x51, 0x01, 0x2C, 0xC7, 0x00, 0x7E, 0x4C, 0x38,  // Q.,..~L8
            /* 0240 */  0x45, 0x06, 0xF2, 0x9A, 0x11, 0xE2, 0xD4, 0x83,  // E.......
            /* 0248 */  0x3D, 0x7C, 0xC0, 0xBF, 0x1E, 0x84, 0x7C, 0x72,  // =|....|r
            /* 0250 */  0x78, 0xDA, 0xF0, 0xBD, 0xC3, 0x30, 0x0F, 0x1F,  // x....0..
            /* 0258 */  0xC6, 0x09, 0xF1, 0xE6, 0xE1, 0x8B, 0x87, 0xAF,  // ........
            /* 0260 */  0x0F, 0x51, 0x8C, 0x19, 0xA5, 0xB1, 0x51, 0x09,  // .Q....Q.
            /* 0268 */  0xCA, 0xB3, 0x78, 0x8B, 0x88, 0x13, 0x32, 0x58,  // ..x...2X
            /* 0270 */  0x98, 0x10, 0xA1, 0x8E, 0xED, 0x95, 0xE3, 0x05,  // ........
            /* 0278 */  0xE4, 0xE1, 0x83, 0x85, 0x3A, 0xDB, 0xD0, 0x48,  // ....:..H
            /* 0280 */  0xA3, 0x41, 0x1D, 0x11, 0x7C, 0x18, 0xF0, 0xAC,  // .A..|...
            /* 0288 */  0x1E, 0x5D, 0x7C, 0x9A, 0x30, 0xC8, 0x09, 0x1E,  // .]|.0...
            /* 0290 */  0xE2, 0xFF, 0xFF, 0x31, 0xE1, 0x29, 0xC0, 0xE3,  // ...1.)..
            /* 0298 */  0x65, 0x37, 0x1E, 0x7F, 0x0C, 0x7C, 0x2C, 0xC0,  // e7...|,.
            /* 02A0 */  0x1F, 0x1C, 0x02, 0xBE, 0x0F, 0x3C, 0x75, 0xC0,  // .....<u.
            /* 02A8 */  0x3A, 0x7D, 0xE0, 0xBF, 0x50, 0x3A, 0x5B, 0x40,  // :}..P:[@
            /* 02B0 */  0x1E, 0x8F, 0x2F, 0x44, 0x6C, 0xC2, 0x8F, 0x41,  // ../Dl..A
            /* 02B8 */  0x64, 0x10, 0xA8, 0x91, 0x19, 0xDA, 0x33, 0x3E,  // d.....3>
            /* 02C0 */  0xAD, 0xB7, 0x00, 0x9F, 0x8B, 0x4C, 0xE0, 0x23,  // .....L.#
            /* 02C8 */  0x87, 0x15, 0x1C, 0x4E, 0x40, 0x31, 0x1E, 0xF8,  // ...N@1..
            /* 02D0 */  0x37, 0x80, 0x47, 0x0B, 0x5F, 0x15, 0x3C, 0x5F,  // 7.G._.<_
            /* 04B8 */  0xFF, 0xFF, 0x7B, 0x0A, 0xC0, 0x95, 0x0B, 0x83,  // ..{.....
            /* 04C0 */  0xEF, 0x29, 0x80, 0xCF, 0xFF, 0xFF, 0xC1, 0x1B,  // .)......
            /* 04C8 */  0xEE, 0xF4, 0x83, 0x46, 0x78, 0x1A, 0x0D, 0x7E,  // ...Fx..~
            /* 04D0 */  0x2C, 0x86, 0x7F, 0x3C, 0x79, 0x39, 0x01, 0x18,  // ,..<y9..
            /* 04D8 */  0xFD, 0xFF, 0xBF, 0x9C, 0x00, 0x76, 0x3D, 0x1C,  // .....v=.
            /* 04E0 */  0xBC, 0x01, 0xDD, 0xD7, 0x6E, 0x76, 0x3B, 0x38,  // ....nv;8
            /* 04E8 */  0xB9, 0x83, 0xF6, 0x11, 0x20, 0x48, 0x84, 0x23,  // .... H.#
            /* 04F0 */  0x79, 0x20, 0x7D, 0x14, 0x78, 0x32, 0xF0, 0xFD,  // y }.x2..
            /* 04F8 */  0x04, 0xCE, 0xFF, 0xFF, 0x7E, 0x02, 0xF0, 0xFF,  // ....~...
            /* 0500 */  0xFF, 0x7F, 0x3F, 0x01, 0xDC, 0x18, 0x78, 0x0A,  // ..?...x.
            /* 0508 */  0xE8, 0x7E, 0x02, 0x78, 0xCD, 0x76, 0x3F, 0x41,  // .~.x.v?A
            /* 0510 */  0x8D, 0xC5, 0x59, 0xEE, 0x27, 0x88, 0xE1, 0xBF,  // ..Y.'...
            /* 0518 */  0x80, 0x1A, 0xE2, 0xED, 0x04, 0x58, 0xFE, 0xFF,  // .....X..
            /* 0520 */  0x6F, 0x27, 0x00, 0xFF, 0xFF, 0xFF, 0xB7, 0x13,  // o'......
            /* 0528 */  0x60, 0xA4, 0xE0, 0x76, 0x02, 0xA8, 0x4D, 0x78,  // `..v..Mx
            /* 0530 */  0x3B, 0x41, 0x49, 0x82, 0x50, 0xA2, 0xDB, 0x09,  // ;AI.P...
            /* 0538 */  0xC2, 0x2A, 0xBC, 0x8E, 0x05, 0xCF, 0x00, 0xF1,  // .*......
            /* 0540 */  0x0F, 0x2C, 0xD0, 0x91, 0x3C, 0x01, 0x3C, 0x2B,  // .,..<.<+
            /* 0548 */  0x78, 0x66, 0xEC, 0x82, 0x02, 0xB8, 0xF9, 0xFF,  // xf......
            /* 0550 */  0x5F, 0x50, 0x00, 0xFE, 0xFF, 0xFF, 0x8F, 0x63,  // _P.....c
            /* 0558 */  0x90, 0x28, 0x75, 0x41, 0x01, 0x5C, 0xCF, 0xFD,  // .(uA.\..
            /* 0560 */  0x05, 0x05, 0x30, 0xFF, 0xFF, 0x3F, 0x91, 0x01,  // ..0..?..
            /* 0568 */  0xB4, 0xBE, 0xA0, 0x80, 0xE8, 0xFF, 0x7F, 0x41,  // .......A
            /* 0570 */  0x01, 0x8C, 0x29, 0xB4, 0xE9, 0x53, 0xA3, 0x51,  // ..)..S.Q
            /* 0578 */  0xAB, 0x06, 0x65, 0x6A, 0x94, 0x69, 0x50, 0xAB,  // ..ej.iP.
            /* 0580 */  0x4F, 0xA5, 0xC6, 0x8C, 0xF9, 0x82, 0x52, 0xA4,  // O.....R.
            /* 0588 */  0xC1, 0x6A, 0xD8, 0x16, 0xFA, 0xDD, 0x10, 0x88,  // .j......
            /* 0590 */  0x63, 0x82, 0x50, 0x99, 0xAB, 0x92, 0x11, 0x10,  // c.P.....
            /* 0598 */  0x69, 0x06, 0x11, 0x90, 0xF5, 0x9B, 0x00, 0x62,  // i......b
            /* 05A0 */  0x69, 0x40, 0x04, 0xE4, 0xFC, 0xAB, 0x14, 0x90,  // i@......
            /* 05A8 */  0xC5, 0xAC, 0x52, 0x40, 0x16, 0xF6, 0xAC, 0x10,  // ..R@....
            /* 05B0 */  0x90, 0x65, 0x82, 0x08, 0xC8, 0xC1, 0x7C, 0x00,  // .e....|.
            /* 05B8 */  0xB1, 0x94, 0x20, 0x02, 0x72, 0xE2, 0x17, 0x82,  // .. .r...
            /* 05C0 */  0x80, 0x9C, 0x1F, 0x44, 0x40, 0xD6, 0xFD, 0x53,  // [email protected]
            /* 05C8 */  0x11, 0x90, 0x43, 0x80, 0x08, 0xC8, 0x81, 0xA4,  // ..C.....
            /* 05D0 */  0x00, 0xB1, 0x78, 0x20, 0x02, 0xB2, 0x40, 0x2F,  // ..x ..@/
            /* 05D8 */  0x40, 0x4C, 0x2D, 0x88, 0x80, 0xAC, 0x7C, 0xDD,  // @L-...|.
            /* 05E0 */  0x02, 0x72, 0x0E, 0x10, 0x01, 0x59, 0x8F, 0x1B,  // .r...Y..
            /* 05E8 */  0x20, 0x26, 0x0E, 0x44, 0x03, 0x24, 0xAF, 0x0A,  //  &.D.$..
            /* 05F0 */  0x01, 0x59, 0x36, 0x88, 0x80, 0x1C, 0x54, 0x0F,  // .Y6...T.
            /* 05F8 */  0x10, 0x4B, 0x0D, 0x22, 0x20, 0x2B, 0x78, 0x12,  // .K." +x.
            /* 0600 */  0x08, 0xC8, 0x7A, 0x40, 0x04, 0xE4, 0x1C, 0x8A,  // ..z@....
            /* 0608 */  0x80, 0x58, 0x28, 0x10, 0x01, 0x39, 0xA0, 0x23,  // .X(..9.#
            /* 0610 */  0x20, 0x16, 0x17, 0x44, 0x40, 0x96, 0xA8, 0x09,  //  ..D@...
            /* 0618 */  0x88, 0xE9, 0x05, 0x11, 0x90, 0xB5, 0x7B, 0x02,  // ......{.
            /* 0620 */  0x62, 0x49, 0x40, 0x04, 0x64, 0x0D, 0xAA, 0xFE,  // [email protected]...
            /* 0628 */  0xFF, 0x40, 0x4C, 0x10, 0x88, 0x80, 0x2C, 0xCE,  // .@L...,.
            /* 0630 */  0x15, 0x10, 0x93, 0x0A, 0x22, 0x20, 0x87, 0xB4,  // ...." ..
            /* 0638 */  0x05, 0xC4, 0x12, 0x83, 0x08, 0xC8, 0xE9, 0xDF,  // ........
            /* 0640 */  0x30, 0x02, 0xB2, 0x96, 0xD7, 0x80, 0x80, 0xFC,  // 0.......
            /* 0648 */  0xFF, 0x07                                       // ..
        })
        Method (SETB, 3, NotSerialized)
        {
            CreateByteField (Arg0, Arg1, TMP)
            TMP = Arg2
        }

        Method (CLSB, 1, NotSerialized)
        {
            Local0 = Zero
            While ((Local0 < SizeOf (Arg0)))
            {
                SETB (Arg0, Local0, Zero)
                Local0++
            }
        }

        Method (ECTM, 2, NotSerialized)
        {
        }

        Method (DPTM, 3, NotSerialized)
        {
        }

        Name (INFO, Buffer (0x0100){})
        CreateByteField (INFO, Zero, INF0)
        CreateByteField (INFO, One, INF1)
        CreateByteField (INFO, 0x02, INF2)
        CreateByteField (INFO, 0x03, INF3)
        Method (WQAB, 1, NotSerialized)
        {
            INF0 = 0x43
            INF1 = 0x49
            INF2 = 0x53
            INF3 = 0x44
            Local1 = INFO /* \AMW0.INFO */
            Return (Local1)
        }

        Method (WMAA, 3, NotSerialized)
        {
            CLSB (INFO)
            CreateDWordField (INFO, Zero, BUF0)
            BUF0 = 0x44534943
            If ((Arg1 == One))
            {
                \_SB.GLED (Arg2, INFO)
                If ((BUF0 == 0x44534943))
                {
                    CLSB (INFO)
                    INF0 = 0xE2
                }

                Local1 = INFO /* \AMW0.INFO */
                Return (Local1)
            }

            If ((Arg1 == 0x02))
            {
                \_SB.SLED (Arg2, INFO)
                If ((BUF0 == 0x44534943))
                {
                    CLSB (INFO)
                    INF0 = 0xE2
                }

                Local1 = INFO /* \AMW0.INFO */
                Return (Local1)
            }

            \_SB.ECHN (Arg1, Arg2, INFO)
            If ((BUF0 == 0x44534943))
            {
                CLSB (INFO)
                INF0 = 0xE1
            }

            Local1 = INFO /* \AMW0.INFO */
            Return (Local1)
        }
    }

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

Tried compiling the module as is, since the guid is the same.
Did not work, adjusted the printout with the error:

Power LED state could not be determined: WMI call returned error (0x000000e1)
Ring LED state could not be determined: WMI call returned error (0x000000e1)

Which is NUCLED_WMI_RETURN_NOSUPPORT according to the defines.
So I need to figure out the Method IDs or the LED Identifiers I guess?

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

_WDG buffer:

8C5DA44C-CDC3-46B3-000F-86194E26D343:
	object_id: ·
	notify_id: 90
	reserved: B7
	instance_count: 0
	flags: 0xc ACPI_WMI_STRING ACPI_WMI_EVENT 
02014141-1221-0590-AA66-D5D111B2F000:
	object_id:  
	notify_id: A0
	reserved: 0F
	instance_count: 201
	flags: 0x6 ACPI_WMI_METHOD ACPI_WMI_STRING 

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

Used wmimofck to decompile the WQBA buffer:

wqba.h.txt

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

Hmm I think I'm onto something. GetState (0x1) probably returns 0xe1 because it's been replaced with NewGetLedStatus (0x4), which seems to work.
I'll have a go at investigating this weekend. Hopefully commands and responses are not that different.
But things to consider if I get to to work and we want to merge this:

  • How would the comm be, try GetState, on 0xe1 fall back to NewGetLedStatus? Or the reverse?
  • How do we define the LEDs? Hades has 6. Probe?
  • There seem to be a few commands regarding HDMI CEC, EDID, USB Power State, which seems out of scope for a "led" module, should it be extended (renamed?) to support the whole method or should a duplicate module be made for those kind of commands?

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

Ok so a few more findings but I'm kind of running out of stuff to try.

GetState/SetState both return 0xe1 and seem to have been replaced.
I guess this would be by QueryLed/NewGetLedStatus and SetIndicatorOptionLedType/SetValueIndicatorOptionLedType or something. Or maybe everything is handled with QueryLed?

Anyway, tried using the existing nuc_led_get_state() function to experiment a bit and I get these responses:

Method Arg Response buffed index Value
NewGetLedStatus (0x04) 1 1 0x32
QueryLed (0x03) 0 1 0x7d
QueryLed (0x03) 1 1 0x04
QueryLed (0x03) 2 1 0x7f
QueryLed (0x03) 3 1 0xff
QueryLed (0x03) 3 2 0xf0

I will try to turn SW control off to get "error" responses to map the LEDs out

from intel_nuc_led.

nomego avatar nomego commented on May 30, 2024

Ok I managed to get the WMI docs from Intel (they should be/have been posted on the support site) so I had a go at it.
The actual communication is completely different so I forked your repo to https://github.com/nomego/intel_nuc_led and just designed it for the Hades.
I'm also no good at C programming and had a hard time structuring the code so I dropped the old NUC support completely for now. Have a look if you think it would be an idea to merge them after I refactor a few times.. :)
Closing this!

from intel_nuc_led.

Chirishman avatar Chirishman commented on May 30, 2024

@nomego Any chance of you sharing the new WMI docs which you got from Intel? I'm on the Windows side here and I'd like to be able to control these LEDs via PowerShell automation.

from intel_nuc_led.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.