Jump to content
NotebookTalk

Any Keyboards with a hardware based AutoFire capability?


Reciever
 Share

Recommended Posts

Good Afternoon everyone!

 

Lot of my time dump is a result of an endless series of controlled reboots I need to commit to my systems to in order to make progress in my current field of work.

 

I was wondering if there is a keyboard or HID Device that will endless repeat a single keypress similar to those "Turbo" 3rd party console controllers you used to see back in the day. If I can find something along the lines of that function I can research further but Im not exactly sure on what key terms I should be using to begin this next little journey into USB limitations/functions.

 

I would like to be able to boot up my systems at the same time and have a device to hit F2/F12 or other keystrokes so I can have it do the keypress while I begin to stage and work on another production batch.

 

If someone can find me a product for this that would be great but also just hoping to figure out where I should start looking first.

 

Thanks in advance everyone! 

 

Chris


EDIT: 

https://github.com/kmani314/ATMega32u4-HID-Keyboard

This looks almost like what I may be looking for, but the repeated keys is in a hold function, instead of a toggle.

Telegram / TS3Twitter

 

 

Link to comment
Share on other sites

  • Reciever changed the title to Any Keyboards with a hardware based AutoFire capability?

Does it have to be a full keyboard? There are hardware macro pads that look like the tenkey portion of a keyboard where you can program all kinds of functions into them that stay with the device. If you're only looking to perform a few specific things, it would certainly be a more portable option than moving around a full-size keyboard.

Desktop: Ryzen 9 5950X | 32 GB RAM | GeForce RTX 4080 | 2 TB SSD | Windows 10

Lenovo Legion 5: Ryzen 7 6800H | 32 GB RAM | GeForce RTX 3070 Ti | 1.5 TB SSD | Windows 11

Lenovo IdeaPad 3 Gaming: Ryzen 7 6800H | 16 GB RAM | GeForce RTX 3050 | 512 GB SSD | Windows 11

Lenovo IdeaPad 5 Pro: Ryzen 5 5600U | 16 GB RAM | Radeon Graphics | 512 GB SSD | Windows 11
Apple iPad Gen 9: A13 Bionic | 3 GB RAM | 64 GB | iPadOS

 

Link to comment
Share on other sites

4 hours ago, saturnotaku said:

Does it have to be a full keyboard? There are hardware macro pads that look like the tenkey portion of a keyboard where you can program all kinds of functions into them that stay with the device. If you're only looking to perform a few specific things, it would certainly be a more portable option than moving around a full-size keyboard.

I am familiar with macropads and I have a 9-key version of such a device but the issue with the one I have is that it seems to not work through my other devices 95% of the time as it fails to negotiate the standard handshaking process that occurs over USB. It appears (likely) due to a dependency for redistributable or .net, havent spent the time to determine. For example, I'll provide links to my current scenario.

 

I currently have 4 Code v3/b keyboards that I use to automate a number of processes over many projects, they work well for that however they have a 32-keystroke limit not counting the delay timers. This makes systems boot-ups a time consuming task as my technicians have to sit at the stations mashing F2/F12 for (currently) Dell systems.

 

I currently use different iterations of this device, a USB synchronizer. Link Here I have 4/8 and soon to be 16/32 port versions of this to scale up my operations.

 

My keyboards work well with the synchronizers, but my macropad does not register at all. I did find a forum that seems to have some people testing out differing products, its a trial and error approach, I'll see if I cant get a link. Here

 

Basically I would like for my technicians to be able to power on the systems while the Autofiring devices continually hits the desired key.

 

Long story long, does not need to be a keyboard. As long as it has Autofire potential or can continually hit desired keys for 1-2 minutes as we cycle our production.

 

Currently owned macropad that failed to function with my USB synchronizers Link Here

 

 

 

On another note, I have been considering BADUSB as well, but need more time to look into how that functions

Telegram / TS3Twitter

 

 

Link to comment
Share on other sites

After a little more digging, it looks like AutoFire explicitly isnt sold as a feature for keyboards. 

 

That being said it looks like this can be done via QMK, so I may try a full size 10-key DIY kit just to get some experience with the soldering iron and learn how I can utilize QMK for my work needs.

Telegram / TS3Twitter

 

 

Link to comment
Share on other sites

maybe one of the system 76 launch keyboards?  I believe it's foss and you can set up macros.  I don't have one yet.  I might order next month depending on my cash flow.  but would any programmable keyboard macro or via/qmk be able to "turbo".  I bet the steam controller can do a turbo function with any key.  that controller can do a lot and also has a usb receiver. 

Link to comment
Share on other sites

It looks like those keyboards also have QMK so in theory it should be able to work but I am building a numpad first in the hopes that I can have a low-cost "principle use case" before I start looking at 300 USD boards. 

 

I have been wanting an 1800 layout for some time so I may (if this works out) finally pick one up.

Telegram / TS3Twitter

 

 

Link to comment
Share on other sites

Posting a link I got from the developer/manufacturer of the tidbit. Should give me some illumination for how to configure the device to my needs.

 

Hey hey! Glad you have you here :D
All of these things are possible. I'll run through them one by one -- it won't be the most detailed but should give you enough to get rolling. All will require modifying the firmware, which is quite easy to jump into. The QMK discord server in particular is a great resource with lots of folks who can help if you hit any snags.

 

 

OLED: You can definitely show what layer is active. Take a look at the OLED driver documentation: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_oled_driver.md The SNAP OLED keymap also shows exactly how to do this if you need a concrete reference:  Here

 

 

Encoder: The QMK docs are a good place to start: Here

The TIDBIT actually handles encoder events with a virtual key in the matrix, but that's going to be changing. I'd recommend overriding the encoder behavior with `encoder_update_user()` in your keymap.c that returns false -- that will ensure it's not handled by the matrix scan as well. You'll need to know what HID keycodes your KVM uses, but as long as they're documented you can send any valid 16-bit keycode.

 

Autofire: This one requires a bit more finesse, but can be done in almost the same way as the timer macro example in the QMK docs: Here Basically, set a boolean variable true when the key in question is pressed inside `process_record_user()`, then `tap_code(KC_F12)` inside `matrix_scan_user()` as long as that variable is set.

 

I'm not sure exactly what you're looking to integrate with, but the TRRS is bi-directional UART serial + power/ground, so you can essentially integrate with anything! It is limited to one point-to-point connection, though. Here's the serial code, for reference: https://github.com/qmk/qmk_firmware/blob/master/keyboards/nullbitsco/common/remote_kb.c

 


Hopefully that gets you started! I think the TIDBIT will be a great improvement to your workflow. It's just about infinitely customizable :D

 

 

Should give me some good reading material for tomorrow :D 

Telegram / TS3Twitter

 

 

Link to comment
Share on other sites

  • 3 weeks later...

I can confirm that QMK is capable of AutoFire and have it functioning now. An added bonus would be if its possible to give this thing an independent power supply and have it send keyboard commands without a system being powered on, that will come after I get more functions programmed in. 

 

#define SPAM_DELAY 50  // 50 milliseconds between spams
bool spam_active = false;
uint32_t spam_timer = 0;

// Place the above near the beginning of the keymap

enum custom_keycodes {
    F2TR = SAFE_RANGE, // Create a keycode to make your toggle initialize
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    case F2TR:  // When you press custom SPAM keycode
      if (record->event.pressed) {
        spam_active = !spam_active;  // Toggle spamming
        spam_timer = timer_read32(); // Reset spam timer
      }
      break;
  }
  return true;
}


void matrix_scan_user(void){
  if (spam_active) {  
    // Check if it's been SPAM_DELAY milliseconds since the last spam
    if (timer_elapsed32(spam_timer) > SPAM_DELAY) {
      tap_code(KC_P2);           // Send an F2 keystroke
      spam_timer = timer_read32();  // Reset spam timer
    }
  }
}

 

My understanding of this stuff is very limited, essentially you create boolean (if statement) set to false then matrix scan user scans the keyboard waiting for the case to be initialized with the keystroke. Once it detects the keystroke it will then repeat the designated key, in this case KC_P2 or "2" until it detects that same keypress. In this case I used tap_code but you can also have it repeat strings via SEND_STRING.

I cant take credit for the code above, a user on reddit was kind enough to share it in a previous post. Sharing here for posterity :) 

Next is tackling Functional Macros for a number of sBIOS changes I need to make to a large number of systems

 

Telegram / TS3Twitter

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use