Jump to content


Photo

Binder and Corsair K95 Keyboard


    16 replies to this topic

    #1 Sabishii Kouen

    Sabishii Kouen

      Advanced Member

    • Members
    • PipPipPip
    • 33 posts

      Posted 15 January 2015 - 11:48 PM

      I just bought a Corsair K95 (non-RGB version) keyboard and I'm wondering what it would take to get Binder to work with it?  It has 18 individual G-keys, and three Macro pallets that work with those 18 keys for more keys.

       

      Thanks in advance.



      #2 Arcon

      Arcon

        Advanced Member

      • Windower Staff
      • 1189 posts
      • LocationMunich, Germany

      Posted 15 January 2015 - 11:52 PM

      00:50 <~Arcon> Sabishii[Odin]: https://googledrive....inderFinder.exe
      00:50 <~Arcon> Get this file
      00:50 <~Arcon> Hook up the keyboard
      00:50 <~Arcon> Run the file
      00:50 <~Arcon> You'll see a command prompt pop up
      00:51 <~Arcon> Then press the 18 G-keys, preferably in order
       
      That will create log files, zip them up and send them to us (either an attachment here or DropBox, anything where we can get it).


      #3 Sabishii Kouen

      Sabishii Kouen

        Advanced Member

      • Members
      • PipPipPip
      • 33 posts

        Posted 16 January 2015 - 12:07 AM

        https://www.dropbox....gfiles.zip?dl=0

         

        Tell me if that works please.  Sorry it took so long, had to download dropbox lol



        #4 Arcon

        Arcon

          Advanced Member

        • Windower Staff
        • 1189 posts
        • LocationMunich, Germany

        Posted 16 January 2015 - 08:04 AM

        Not sure if you saw what I posted on FFOChat last night, but none of those files have the right info in it. The right file should look something like the one posted here:

        http://forums.window...port/?hl=binder

         

        Do you have to enable the G-keys first? I.e. toggle them on with some kind of mode key? If so, make sure they're working first, then run BinderFinder again and press all those keys, then close it. Then zip up the files again (or find the right one yourself, if you think you have it).

         

        Again, just for the record, it should look something like this (only different values, but the "Data: ..." parts are important):

        \\?\HID#VID_195D&PID_2039&MI_02&Col02#7&101ff523&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
        Type:		HID
        Vendor ID:	195D
        Product ID:	2039
        Usage Page:	FF01
        Usage:		FF00
        Input Reports:	1
            ID: 02 [ V 56 Bits ]
        Feat. Reports:	0
        
        Data: 0208195D20390101
        Data: 0208195D20390100
        Data: 0208195D20390201
        Data: 0208195D20390200
        Data: 0208195D20390301
        Data: 0208195D20390300
        Data: 0208195D20390401
        Data: 0208195D20390400
        Data: 0208195D20390501
        Data: 0208195D20390500
        Data: 0208195D20390601
        Data: 0208195D20390600
        Data: 0208195D20390701
        Data: 0208195D20390700
        Data: 0208195D20390801
        Data: 0208195D20390800
        Data: 0208195D20390901
        Data: 0208195D20390900
        Data: 0208195D20390A01
        Data: 0208195D20390A00
        Data: 0208195D20390B01
        Data: 0208195D20390B00
        Data: 0208195D20390C01
        Data: 0208195D20390C00
        Data: 0208195D20390D01
        Data: 0208195D20390D00
        Data: 0208195D20390E01
        Data: 0208195D20390E00
        Data: 0208195D20390F01
        Data: 0208195D20390F00
        Data: 0208195D20391001
        Data: 0208195D20391000
        Data: 0208195D20391101
        Data: 0208195D20391100
        Data: 0208195D20391201
        Data: 0208195D20391200
        Data: 0208195D20391301
        Data: 0208195D20391300
        Data: 0208195D20391401
        Data: 0208195D20391400
        Data: 0208195D20391501
        Data: 0208195D20391500
        


        #5 Sabishii Kouen

        Sabishii Kouen

          Advanced Member

        • Members
        • PipPipPip
        • 33 posts

          Posted 16 January 2015 - 11:33 PM

          Trying again.

           

          https://www.dropbox....35/k95.zip?dl=0



          #6 Iryoku

          Iryoku

            Advanced Member

          • Windower Staff
          • 488 posts

            Posted 17 January 2015 - 07:50 AM

            I can see the keyboard in the log. The spec sheet I have for the K95 Vengeance says it has VID: 1B1C and PID: 1B08, and two devices show up with those IDs, but it doesn't appear to report the macro keys like any of the other keyboards we support. The first device has an empty log, and for the second, it just looks like you pressed Tab 9 times, then pressed Shift once and then held Shift for like 5 seconds. Could you try assigning something to the G-keys in the K95's software, just to see if anything changes? Perhaps F1-F12, and then 1-6.



            #7 Sabishii Kouen

            Sabishii Kouen

              Advanced Member

            • Members
            • PipPipPip
            • 33 posts

              Posted 17 January 2015 - 04:14 PM

              I can see the keyboard in the log. The spec sheet I have for the K95 Vengeance says it has VID: 1B1C and PID: 1B08, and two devices show up with those IDs, but it doesn't appear to report the macro keys like any of the other keyboards we support. The first device has an empty log, and for the second, it just looks like you pressed Tab 9 times, then pressed Shift once and then held Shift for like 5 seconds. Could you try assigning something to the G-keys in the K95's software, just to see if anything changes? Perhaps F1-F12, and then 1-6.

              Just my luck, lol the one keyboard I buy doesn't seem to work like the other keyboards you support X_X

               

              I set G1-12 to F1-12, and G13-18 to 1-6 and nothing still appears in the program when I do , but it does display output if I press the F1-F12 and 1-6 buttons.

               

              HOWEVER, if I set the keyboard to "Hardware Playback" and save the profile to the keyboard directly, data DOES appear on the screen when I press the G-keys after they're binded to stuff.

               

              These are the log files I got:

               

              https://www.dropbox....B0039].zip?dl=0



              #8 Iryoku

              Iryoku

                Advanced Member

              • Windower Staff
              • 488 posts

                Posted 17 January 2015 - 10:56 PM

                Hmm, unfortunately it's showing up like normal key presses, which means we can't tell if you're pressing the G key bound to F1 or the actual F1 key. :( I was hoping we could do something like what we did with the Razer Naga (which is a mouse that pretends to have a keyboard hooked to it), and filter out the macro keys from the standard keys, but they all look like they're coming from the same device.

                 

                If you can figure out some way to get the macro keys (and only the macro keys) to show up in device[0001003F].log then we can probably make it work, but it doesn't look good right now. Sorry. :(



                #9 Sabishii Kouen

                Sabishii Kouen

                  Advanced Member

                • Members
                • PipPipPip
                • 33 posts

                  Posted 18 January 2015 - 03:15 AM

                  What exactly are we looking for in this keyboard with this program?  Corsair has a forum, wondering if turn to that forum to get the data you need to work support into binder.  I dunno, I kinda bought this keyboard because I didn't like the razer one I had, which has G-keys, but some of the regular keys started registering duplicate keypresses on certain letters, making it hard to type or put in passwords.  I heard corsair made good keyboards so I picked up a relatively cheap K95 because my razer was a month out of warranty and I heard they probably wouldn't do anything for me despite the keyboard being only a year old.



                  #10 Iryoku

                  Iryoku

                    Advanced Member

                  • Windower Staff
                  • 488 posts

                    Posted 18 January 2015 - 08:25 AM

                    What the program you're using does is log all input events from any keyboard, mouse, or generic human interface device (HID). We're basically trying to reverse engineer how the macro keys are delivered from the device to the PC, so that we can read them directly.

                     

                    On most gaming keyboards the keyboard identifies itself to Windows as a so-called "composite device", which consists of a standard keyboard for the main 104 keys, and a second generic HID which includes all of the non-standard features of the keyboard like the macro keys and backlight control. That second HID basically just streams raw data to the accompanying profiler software which executes your programmed macros. These kinds of devices are easiest to deal with because we can just read the data stream ourselves, and tell people to use a blank profile for FFXI. On a few devices (like the Razer Naga) instead of a generic HID, the macro keys are reported as an extra keyboard. For these devices we have to do some extra work. First, a set of known keys needs to be programmed for each macro key, we have to register to receive the raw input from Windows and watch for these known keys coming from a device with the correct ID, and then we have to block only the events from this device from reaching FFXI, without affecting any of the other devices, so that the rest of the standard keys still work.

                     

                    The problem is with the K95, it looks like everything is reported as if it's coming from one standard keyboard device, and there's no way for us to tell the macro key presses apart from the other keys. If I had physical access to one of these keyboards I might be able to figure out how to make it work, but even then I'm not sure. As it stands I don't see any way to do it.

                     

                    Also, just to avoid wasting your time, it's unlikely you'll get any help with this from Corsair. They probably wouldn't appreciate us reverse engineering their hardware. It's not illegal, but don't expect them to help. ;)



                    #11 Sabishii Kouen

                    Sabishii Kouen

                      Advanced Member

                    • Members
                    • PipPipPip
                    • 33 posts

                      Posted 19 January 2015 - 12:19 AM

                      Bleh, that sucks, but I got a work around (not the best work around, but it still works in game) I'll share with anyone else who happens to buy this keyboard.

                       

                      I had to download Auto HotKey (AHK) and use a certain profile on my keyboard (in hardware mode, very important).

                       

                      https://gist.github....8daa8f7df68a577

                       

                      Download AHK, and use the script on top, the AHK script, and edit the commands for the G keys (which use F1+1, F2+1, etc. as hot keys) while using the aforementioned profile in HARDWARE mode (won't work in software mode at all, it took me forever to figure that out).

                       

                      So I got G1 doing my TP set, G2 doing my idle set, etc. in gearswap.

                       

                      It does this by typing out the command in chat and typing enter.  It happens pretty fast, but it's not ideal, I realize, but it's workable.



                      #12 Iryoku

                      Iryoku

                        Advanced Member

                      • Windower Staff
                      • 488 posts

                        Posted 19 January 2015 - 02:15 AM

                        Why not just configure some hard to reach key combos, and bind them in Windower directly. It's still not as ideal as using Binder, since you are eating up some of the bind space, but it should work. I would probably do something like this:

                        G1: Ctrl + Alt + Apps + F1
                        G2: Ctrl + Alt + Apps + F2
                        G3: Ctrl + Alt + Apps + F3
                        G4: Ctrl + Alt + Apps + F4
                        G5: Ctrl + Alt + Apps + F5
                        G6: Ctrl + Alt + Apps + F6
                        G7: Ctrl + Alt + Apps + F7
                        G8: Ctrl + Alt + Apps + F8
                        G9: Ctrl + Alt + Apps + F9
                        G10: Ctrl + Alt + Apps + F10
                        G11: Ctrl + Alt + Apps + F11
                        G12: Ctrl + Alt + Apps + F12
                        G13: Ctrl + Alt + Win + Apps + F1
                        G14: Ctrl + Alt + Win + Apps + F2
                        G15: Ctrl + Alt + Win + Apps + F3
                        G16: Ctrl + Alt + Win + Apps + F4
                        G17: Ctrl + Alt + Win + Apps + F5
                        G18: Ctrl + Alt + Win + Apps + F6

                        Then bind them in Windower using this script:
                        bind ^!#f1 ...; // G1
                        bind ^!#f2 ...; // G2
                        bind ^!#f3 ...; // G3
                        bind ^!#f4 ...; // G4
                        bind ^!#f5 ...; // G5
                        bind ^!#f6 ...; // G6
                        bind ^!#f7 ...; // G7
                        bind ^!#f8 ...; // G8
                        bind ^!#f9 ...; // G9
                        bind ^!#f10 ...; // G10
                        bind ^!#f11 ...; // G11
                        bind ^!#f12 ...; // G12
                        bind ^!@#f1 ...; // G13
                        bind ^!@#f2 ...; // G14
                        bind ^!@#f3 ...; // G15
                        bind ^!@#f4 ...; // G16
                        bind ^!@#f5 ...; // G17
                        bind ^!@#f6 ...; // G18


                        #13 sdahlka

                        sdahlka

                          Advanced Member

                        • Members
                        • PipPipPip
                        • 324 posts

                          Posted 19 January 2015 - 02:27 AM

                          the way your keyboard works is

                          the 18 g keys can each have 3 sets of key strings saved to them

                          i.e.

                          M1-G1 = hold(shift),a,b,c,d,release(shift) -- prints ABCD

                          M2-G1 = a,b,c,d --prints abcd

                          M3-G1 = hold(shift),top_1,top_2,top_3,top_4,release(shift) -- prints !@#$

                           

                          there basicaly keyboard macros(not sure if it will record mouse movements but i bet not)

                           

                          you set the recording with MR

                          the exact procedure im not sure of



                          #14 Sabishii Kouen

                          Sabishii Kouen

                            Advanced Member

                          • Members
                          • PipPipPip
                          • 33 posts

                            Posted 19 January 2015 - 02:42 AM

                            Why not just configure some hard to reach key combos, and bind them in Windower directly. It's still not as ideal as using Binder, since you are eating up some of the bind space, but it should work. I would probably do something like this:

                            G1: Ctrl + Alt + Apps + F1
                            G2: Ctrl + Alt + Apps + F2
                            G3: Ctrl + Alt + Apps + F3
                            G4: Ctrl + Alt + Apps + F4
                            G5: Ctrl + Alt + Apps + F5
                            G6: Ctrl + Alt + Apps + F6
                            G7: Ctrl + Alt + Apps + F7
                            G8: Ctrl + Alt + Apps + F8
                            G9: Ctrl + Alt + Apps + F9
                            G10: Ctrl + Alt + Apps + F10
                            G11: Ctrl + Alt + Apps + F11
                            G12: Ctrl + Alt + Apps + F12
                            G13: Ctrl + Alt + Win + Apps + F1
                            G14: Ctrl + Alt + Win + Apps + F2
                            G15: Ctrl + Alt + Win + Apps + F3
                            G16: Ctrl + Alt + Win + Apps + F4
                            G17: Ctrl + Alt + Win + Apps + F5
                            G18: Ctrl + Alt + Win + Apps + F6

                            Then bind them in Windower using this script:

                            bind ^!#f1 ...; // G1
                            bind ^!#f2 ...; // G2
                            bind ^!#f3 ...; // G3
                            bind ^!#f4 ...; // G4
                            bind ^!#f5 ...; // G5
                            bind ^!#f6 ...; // G6
                            bind ^!#f7 ...; // G7
                            bind ^!#f8 ...; // G8
                            bind ^!#f9 ...; // G9
                            bind ^!#f10 ...; // G10
                            bind ^!#f11 ...; // G11
                            bind ^!#f12 ...; // G12
                            bind ^!@#f1 ...; // G13
                            bind ^!@#f2 ...; // G14
                            bind ^!@#f3 ...; // G15
                            bind ^!@#f4 ...; // G16
                            bind ^!@#f5 ...; // G17
                            bind ^!@#f6 ...; // G18

                            So I write that into a text file or something?  Where do I put the file?  I've never had to run a script like that, so I don't know how, or is that a lua script?  Sorry I'm stupid about this ._.



                            #15 Iryoku

                            Iryoku

                              Advanced Member

                            • Windower Staff
                            • 488 posts

                              Posted 19 January 2015 - 07:38 AM

                              You can just add that to your init.txt file if you want. You will need to replace all of the "..." parts with the actual command you want to run. So, if you set your keyboard up the way I said, and add

                              bind ^!#f1 input /ma "Cure" <t>; 

                              to your init.txt file then pressing G1 will cast Cure.

                               

                              I should also note that you won't get the multi-boxing support that Binder provides. If you need this you will need to use the Send addon.



                              #16 Arcon

                              Arcon

                                Advanced Member

                              • Windower Staff
                              • 1189 posts
                              • LocationMunich, Germany

                              Posted 19 January 2015 - 07:38 AM

                              It goes into Windower/scripts and it's not Lua, so just call it binds.txt or something. Then call it from init.txt, just add this line at any point in the init.txt file:

                              exec binds.txt


                              #17 Sabishii Kouen

                              Sabishii Kouen

                                Advanced Member

                              • Members
                              • PipPipPip
                              • 33 posts

                                Posted 19 January 2015 - 05:08 PM

                                Got it all figured out, thank you so much, it works.






                                1 user(s) are reading this topic

                                0 members, 1 guests, 0 anonymous users