Emulate a conventional USB keyboard with a scriptable network capable microcontroller.
By using dedicated hardware it is possible to control systems even before the operating system is booted and without being dependent on the running software. For example this allows automatic bootloder selectios or modification of BIOS settings.
- Teensy 3
- Raspberry PI (Optional for network features)
Example setup with a Raspberry PI for the ethernet connection. (The Teensy can also be conntrolled directly over the Serial UART)
- Flash the Teensy with the sketch in the usb-keyboard folder. (Using Teensyduino)
- Connect to the Teensy over the serial UART ports
When using Raspbian as operating system, the serial port must be configured for outgoing connections.
After that a serial connection can be established with cu -l /dev/ttyAMA0 -s 115200
Available modes:
- Interactive mode
- Command mode
- Debug mode
Ctrl-Q
to switch between modes.
Directly sends the recieved keystroke Supported Characters
- All printable ASCII characters
- Arrow keys
- Backspace
- Enter
- Delete
- Tab
- Escape
Parses the whole line and interprets the first Word as command. Available commands:
Sends the rest of the line literally
Sends the rest of the line while interpreting special characters. This command behaves similarly to the send command of AutoHotkey
The following characters are treated as modifiers:
-
!
: Send the next character with the ALT key pressed.- Example:
Send text!a
sends the keys "This is text" and then pressesALT+a
.
- Example:
-
+
: Send the next character with the SHIFT key pressed.- Example:
Send +abC
sends the keys "AbC".
- Example:
-
^
: Send the next character with the CTRL key pressed.- Example:
Send ^c
sends aCTRL+c
keystroke.
- Example:
-
#
: Send the next character with the WIN key pressed.- Example:
Send #d
sends aWIN + d
keystroke.
- Example:
These modifiers can be combined, so a ^+t
would send a CTRL+SHIFT+t
, thus restoring the last tab in Firefox.
Non printable characters can be sent by specifying the keyname enclosed in braces:
{Enter}
{Escape}
{Space}
{Tab}
{Backspace}/{BS}
{Delete}/{Del}
{Insert}/{Ins}
{Up}
{Down}
{Left}
{Right}
{Home}
{End}
{PgUp}
{PgDn}
Displays information about the received character (ASCII code, USB keycode)