let badusb = require("badusb");
Methods
setup()
Start USB HID with optional parameters. Should be called before all other methods.
Parameters
Configuration object (optional):
- vid, pid (number): VID and PID values, both are mandatory
- mfrName (string): Manufacturer name (32 ASCII characters max), optional
- prodName (string): Product name (32 ASCII characters max), optional
- layoutPath (string): Path to keyboard layout file, optional
Examples
// Start USB HID with default parameters
badusb.setup();
// Start USB HID with custom vid:pid = AAAA:BBBB, manufacturer and product strings not defined
badusb.setup({ vid: 0xAAAA, pid: 0xBBBB });
// Start USB HID with custom vid:pid = AAAA:BBBB, manufacturer string = "Flipper Devices", product string = "Flipper Zero"
badusb.setup({ vid: 0xAAAA, pid: 0xBBBB, mfrName: "Flipper Devices", prodName: "Flipper Zero" });
isConnected()
Returns USB connection state.
Example
if (badusb.isConnected()) {
// Do something
} else {
// Show an error
}
press()
Press and release a key.
Parameters
Key or modifier name, key code.
See a list of key names below.
Examples
badusb.press("a"); // Press "a" key
badusb.press("A"); // SHIFT + "a"
badusb.press("CTRL", "a"); // CTRL + "a"
badusb.press("CTRL", "SHIFT", "ESC"); // CTRL + SHIFT + ESC combo
badusb.press(98); // Press key with HID code (dec) 98 (Numpad 0 / Insert)
badusb.press(0x47); // Press key with HID code (hex) 0x47 (Scroll lock)
hold()
Hold a key. Up to 5 keys (excluding modifiers) can be held simultaneously.
Parameters
Same as press
.
Examples
badusb.hold("a"); // Press and hold "a" key
badusb.hold("CTRL", "v"); // Press and hold CTRL + "v" combo
release()
Release a previously held key.
Parameters
Same as press
.
Release all keys if called without parameters.
Examples
badusb.release(); // Release all keys
badusb.release("a"); // Release "a" key
print()
Print a string.
Parameters
- A string to print
- (optional) Delay between key presses
Examples
badusb.print("Hello, world!"); // print "Hello, world!"
badusb.print("Hello, world!", 100); // Add 100ms delay between key presses
println()
Same as print
but ended with "ENTER" press.
Parameters
- A string to print
- (optional) Delay between key presses
Examples
badusb.println("Hello, world!"); // print "Hello, world!" and press "ENTER"
altPrint()
Prints a string by Alt+Numpad method - works only on Windows!
Parameters
- A string to print
- (optional) delay between key presses
Examples
badusb.altPrint("Hello, world!"); // print "Hello, world!"
badusb.altPrint("Hello, world!", 100); // Add 100ms delay between key presses
altPrintln()
Same as altPrint
but ended with "ENTER" press.
Parameters
- A string to print
- (optional) delay between key presses
Examples
badusb.altPrintln("Hello, world!"); // print "Hello, world!" and press "ENTER"
quit()
Releases usb, optional, but allows to interchange with usbdisk.
Examples
badusb.quit();
usbdisk.start(...)
Key names list
Modifier keys
Special keys
Name | Notes |
DOWN | Down arrow |
LEFT | Left arrow |
RIGHT | Right arrow |
UP | Up arrow |
ENTER | |
DELETE | |
BACKSPACE | |
END | |
HOME | |
ESC | |
INSERT | |
PAGEUP | |
PAGEDOWN | |
CAPSLOCK | |
NUMLOCK | |
SCROLLLOCK | |
PRINTSCREEN | |
PAUSE | Pause/Break key |
SPACE | |
TAB | |
MENU | Context menu key |
Fx | F1-F24 keys |
NUMx | NUM0-NUM9 keys |