-
Notifications
You must be signed in to change notification settings - Fork 28
WebSocket API
API Version: v3.0-221025
Please note that this API will change as the firmware is updated. If you end up utilizing the API outside of the official frontend, please let us know so we can better coordinate any changes.
Below is a description of each websocket command for interfacing with the O.MG Firmware. By default, all of this is handled by the JavaScript frontend that is served up when you point your web browser at the IP address of the cable. The JavaScript is our frontend, and it speaks to the websocket that is operated by our backend. However, you can interface directly with the backend's websocket using a python script, another piece of hardware, or anything capable of operating on the same network as the O.MG device.
ws://${hostname}/d/ws/issue
O.MG Devices use a unified firmware, despite hardware differences between Tiers that offer unique capabilities. Because of this, some commands may not be present on some tiers. If called on an unsupported device, you will likely receive a message stating: " Unrecognized Command". To simplify error handling within your application, we have broken down these capabilities into Feature Flags and Groups to determine which commands exist for your device.
'CFError': 'Filesystem Error',
'CFGet': 'Filesystem Get',
'CFList': 'Filesystem List',
'CI': 'Firmware Version',
'CNGet': 'USB Descriptors Get',
'CNSet': 'USB Descriptors Set',
'CR': 'Reboot',
'CTErase': 'Setting Erase',
'CTError': 'Setting Error',
'CTGet': 'Setting Get',
'CTList': 'Setting List',
'CTSet': 'Setting Set',
'CV': 'System Version',
'CW': 'WiFi Configure',
'CWInfo': 'WiFi Show Config',
'CWStatus': 'WiFi Show Status',
'FE': 'Flash Erase',
'FR': 'Flash Read',
'FW': 'Flash Write',
'FX': 'Flash Write as Hex',
'SVStatus': 'Service Status',
'CE': 'Payload Execute',
'CEError': 'Payload Error',
'CEStatus': 'Payload Status',
'CJ': 'Mouse Jiggler Enable/Disable',
'E': 'Echo',
'CLDelete': 'Keylog Delete',
'CLRead': 'Keylog Read',
'CLStart': 'Keylog Start',
'CLStatus': 'Keylog Status',
'CLStop': 'Keylog Stop',
'CH': 'HIDX Status',
'CHStart': 'HIDX Start',
'CHStop': 'HIDX Stop',
'CHStatus': 'HIDX Status',
'SFErase': 'Sequential File Erase',
'SFInfo': 'Sequential File Info',
'SFRead': 'Sequential File Read',
'C2Config': 'C2 Config',
'C2Status': 'C2 Status',
'CD': 'Self Destruct',
'CU': 'USB Enumeration Enable/Disable',
Plug Basic: ['global', 'syslog', 'debug', 'payload']
Plug Elite: ['global', 'syslog', 'debug', 'payload', 'c2', 'hidx', 'stealth']
Cable & Adapter Basic: ['global', 'syslog', 'debug', 'payload', 'stealth']
Cable & Adapter Plus: ['global', 'syslog', 'debug', 'payload', 'keylog', 'stealth']
Cable & Adapter Elite: ['global', 'syslog', 'debug', 'payload', 'keylog', 'c2', 'hidx', 'stealth']
Description: Perform a Self Destruct on the O.MG Backend.
CD1: Self Destruct (Full)
Completely erase all data and disconnect data lines to make device behave
"broken". You will need to reflash the firmware to recover.
CD2: Self Destruct (Neuter)
Erase all data, but leave data lines connected, so it behaves like a
normal device. You will need to reflash the firmware to recover.
WebSocket will not send a response indicating Self Destruct was completed.
Description: Execute a Payload on the O.MG Backend.
All commands within Payload Execute must contain the header: "CE200101",
and the footer: "300101"
If a Payload must be split between multiple subsequent messages, each
header and footer value should be incremented by 1.
Example: "200102" & "300102"
Messages may optionally use a CRC-16/AUG-CCITT checksum for the entire
payload, wrapped within square brackets.
Example: CE[D3C0]200101 ... 300101
IF_PRESENT is a GeoFencing command that will check if a certain SSID or
BSSID is visible from the O.MG Device, and if an optional parameter SIGNAL
is sent, is at least a certain RSSi.
IF_PRESENT requires either an SSID or BSSID parameter, but not both.
IF_PRESENT supports an optional SIGNAL parameter, where if used determines
a minimum RSSi Signal Strength to allow continued execution of the
payload. All values are encoded as HEX.
SSID mode uses a command prefix of "24"
BSSID mode uses a command prefix of "25"
IF_PRESENT uses a command header of "0106"
IF_PRESENT uses a command footer of "0307"
IF_PRESENT SSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${ssid}${cmdPrefix}${cmdFooter}
IF_PRESENT SSID Example Payload:
IF_PRESENT SSID="someValue"
Output:
24010624736F6D6553534944240307
IF_PRESENT SSID Signal Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${ssid}${cmdPrefix}02${signal}${cmdPrefix}${cmdFooter}
IF_PRESENT SSID Example Payload:
IF_PRESENT SSID="someValue" SIGNAL="50"
Output:
24010624736F6D6553534944240250240307
IF_PRESENT BSSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${bssid}${cmdPrefix}${cmdFooter}
IF_PRESENT BSSID Example Payload:
IF_PRESENT BSSID="AA:BB:CC:DD:EE:FF" SIGNAL="50"
Output:
2401062441413A42423A43433A44443A45453A4646240307
IF_PRESENT BSSID Signal Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${bssid}${cmdPrefix}02${signal}${cmdPrefix}${cmdFooter}
IF_PRESENT BSSID Example Payload:
IF_PRESENT BSSID="AA:BB:CC:DD:EE:FF"
Output:
2401062441413A42423A43433A44443A45453A4646240250240307
IF_NOTPRESENT is a GeoFencing command that will check if a certain SSID or
BSSID is not visible from the O.MG Device, and if an optional parameter
SIGNAL is sent, is at least a certain RSSi.
IF_NOTPRESENT requires either an SSID or BSSID parameter, but not both.
IF_NOTPRESENT supports an optional SIGNAL parameter, where if used
determines a minimum RSSi Signal Strength to allow continued execution of
the payload.
All values are encoded as HEX.
SSID mode uses a command prefix of "26"
BSSID mode uses a command prefix of "27"
IF_PRESENT uses a command header of "0106"
IF_PRESENT uses a command footer of "0307"
IF_NOTPRESENT SSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${ssid}${cmdPrefix}${cmdFooter}
IF_NOTPRESENT SSID Example Payload:
IF_NOTPRESENT SSID="someValue"
Output:
26010626736F6D6553534944260307
IF_NOTPRESENT SSID Signal Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${ssid}${cmdPrefix}02${signal}${cmdPrefix}${cmdFooter}
IF_NOTPRESENT SSID Example Payload:
IF_NOTPRESENT SSID="someValue" SIGNAL="50"
Output:
26010626736F6D6553534944260250260307
IF_NOTPRESENT BSSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${bssid}${cmdPrefix}${cmdFooter}
IF_NOTPRESENT BSSID Example Payload:
IF_NOTPRESENT BSSID="AA:BB:CC:DD:EE:FF"
Output:
260106 2641413A42423A43433A44443A45453A4646 260307
IF_NOTPRESENT BSSID Signal Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${bssid}${cmdPrefix}02${signal}${cmdPrefix}${cmdFooter}
IF_NOTPRESENT BSSID Example Payload:
IF_NOTPRESENT BSSID="AA:BB:CC:DD:EE:FF" SIGNAL="50"
Output:
2601062641413A42423A43433A44443A45453A4646260250260307
WAIT_FOR_PRESENT is a GeoFencing command that will check if a certain SSID
or BSSID is visible from the O.MG Device, and if an optional parameters
MINUTES or INTERVAL is sent determines how long to wait in minutes, and
how often to retry in seconds.
WAIT_FOR_PRESENT requires either an SSID or BSSID parameter, but not both.
WAIT_FOR_PRESENT supports an optional MINUTES parameter, where if used
determines how long to look for the SSID or BSSID. If you wish to run
indefinitely, set value to "00".
WAIT_FOR_PRESENT supports an optional INTERVAL parameter, which if used
determines how often to look for the SSID or BSSID. If you wish to run
continuously, set value to "00".
All values are encoded as HEX.
SSID mode uses a command prefix of "28"
BSSID mode uses a command prefix of "29"
IF_PRESENT uses a command header of "0106"
IF_PRESENT uses a command footer of "0407"
WAIT_FOR_PRESENT SSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${ssid}${cmdPrefix}02${minutes}${cmdPrefix}03{interval}${cmdPrefix}${cmdFooter}
WAIT_FOR_PRESENT SSID Example Payload:
WAIT_FOR_PRESENT SSID="someValue"
Output:
28010628736F6D6553534944280200280300280407
WAIT_FOR_PRESENT BSSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${bssid}${cmdPrefix}02${minutes}${cmdPrefix}03{interval}${cmdPrefix}${cmdFooter}
WAIT_FOR_PRESENT BSSID Example Payload:
WAIT_FOR_PRESENT BSSID="someValue"
Output:
2901062941413A42423A43433A44443A45453A4646290200290300290407
WAIT_FOR_NOTPRESENT is a GeoFencing command that will check if a certain
SSID or BSSID is not visible from the O.MG Device, and if an optional
parameters MINUTES or INTERVAL is sent determines how long to wait in
minutes, and how often to retry in seconds.
WAIT_FOR_NOTPRESENT requires either an SSID or BSSID parameter, but not
both.
WAIT_FOR_NOTPRESENT supports an optional MINUTES parameter, where if used
determines how long to look for the SSID or BSSID. If you wish to run
indefinitely, set value to "00".
WAIT_FOR_NOTPRESENT supports an optional INTERVAL parameter, which if used
determines how often to look for the SSID or BSSID. If you wish to run
continuously, set value to "00".
All values are encoded as HEX.
SSID mode uses a command prefix of "2A"
BSSID mode uses a command prefix of "2B"
IF_PRESENT uses a command header of "0106"
IF_PRESENT uses a command footer of "0407"
WAIT_FOR_NOTPRESENT SSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${ssid}${cmdPrefix}02${minutes}${cmdPrefix}03{interval}${cmdPrefix}${cmdFooter}
WAIT_FOR_NOTPRESENT SSID Example Payload:
WAIT_FOR_NOTPRESENT SSID="someValue"
Output:
2A010628736F6D65535349442A02002803002A0407
WAIT_FOR_NOTPRESENT BSSID Encoding:
${cmdPrefix}${cmdHeader}${cmdPrefix}${bssid}${cmdPrefix}02${minutes}${cmdPrefix}03{interval}${cmdPrefix}${cmdFooter}
WAIT_FOR_NOTPRESENT BSSID Example Payload:
WAIT_FOR_NOTPRESENT BSSID="someValue"
Output:
2B01062B41413A42423A43433A44443A45453A46462B02002B03002B0407
VID is a USB Device ID Editing command, used to set the USB Device Vendor
ID used by the O.MG Device.
VID is a 4 digit Hex number.
VID Encoding:
0E${VID}
VID Example Payload:
VID 1234
Output:
0E1234
PID is a USB Device ID Editing command, used to set the USB Device Product
ID used by the O.MG Device.
PID is a 4 digit Hex number.
PID Encoding:
0F${PID}
PID Example Payload:
PID 5678
Output:
0F5678
MAN is a USB Device ID Editing command, used to set the USB Device
Manufacturer Name used by the O.MG Device.
MAN is an ASCII String converted to Hex.
MAN Encoding:
15010615${MAN}150207
MAN Example Payload:
MAN O.MG
Output:
150106154F2E4D47150207
PRO is a USB Device ID Editing command, used to set the USB Device Product
Name used by the O.MG Device.
PRO is an ASCII String converted to Hex.
PRO Encoding:
16010616${MAN}160207
PRO Example Payload:
PRO Cable
Output:
160106164361626C65160207
SER is a USB Device ID Editing command, used to set the USB Device Serial
Number used by the O.MG Device.
SER is an ASCII String converted to Hex.
SER Encoding:
17010617${SER}170207
SER Example Payload:
SER 123456789
Output:
17010617313233343536373839170207
REBOOT will tell the O.MG Device to perform a soft reboot.
REBOOT Encoding:
180000
REBOOT Example Payload:
REBOOT
Output:
180000
KEYLOGGER will tell the O.MG Device to start the keylogger. It contains
one required parameter: MODE.
MODE allows the user to set HID vs KEY modes, or stop the Keylogger, and
is done by setting the Hex value as follows:
OFF = 00
HID = 01
KEY = 02
KEYLOGGER ON Encoding:
19${mode}00
KEYLOGGER HID ON Example Payload:
KEYLOGGER HID ON
Output:
190100
KEYLOGGER OFF Encoding:
1A${mode}00
KEYLOGGER OFF Example Payload:
KEYLOGGER OFF
Output:
1A0000
USB will tell the O.MG Device to start the USB Interface. It contains one
required parameter: STATUS.
STATUS allows the user to start or stop the USB Interface, and is done by
setting the Hex value as follows:
OFF = 00
ON = 01
USB ON Encoding:
1000${status}
USB ON Example Payload:
USB ON
Output:
100001
USB OFF Encoding:
1000${mode}
USB OFF Example Payload:
USB OFF
Output:
100000
JIGGLER will tell the O.MG Device to start the Mouse Jiggler. It contains
one required parameter: STATUS.
STATUS allows the user to start or stop the Mouse Jiggler, and is done by
setting the Hex value as follows:
OFF = 00
ON = 01
JIGGLER ON Encoding:
1100${status}
JIGGLER ON Example Payload:
JIGGLER ON
Output:
110001
JIGGLER OFF Encoding:
1100${mode}
JIGGLER OFF Example Payload:
JIGGLER OFF
Output:
110000
STRING will tell the O.MG Device to type a USB HID Usage ID Encoded
String.
STRING values must be encoded as USB HID Usage IDs, in type Hex.
The character format is 3 HEX Bytes long.
The first byte indicates which device to use. By default, Device ID 01 =
Keyboard.
The second byte indicates if a modifier is used on a key press (CTRL, ALT,
SHIFT, GUI, etc.).
The third byte is the USB HID Usage ID indicating the key position.
Example using EN-US Locale:
010004 = a (keyboard no modifier key position 04)
010204 = A (keyboard left-shift modifier key position 04)
STRING Encoding:
200101${string}300101
STRING Example Payload:
STRING This is a test.
Output:
01021701000B01000C01001601002C01000C01001601002C01000401002C010017010008010016010017010037
SELF_DESTRUCT will tell the O.MG Device to Self Destruct, erasing all data
and depending on mode either leaving Data Pins connected - allowing for
use as a passive cable - or disconnected - preventing use as a passive
cable. It contains one required parameter: MODE.
MODE determines if Self Destruct should perform a FULL or PARTIAL Self
Destruct.
FULL = 13
PARTIAL = 14
SELF_DESTRUCT FULL Encoding:
130000
SELF_DESTRUCT FULL Example Payload:
SELF_DESTRUCT FULL
Output:
130000
SELF_DESTRUCT PARTIAL Encoding:
140000
SELF_DESTRUCT PARTIAL Example Payload:
SELF_DESTRUCT PARTIAL
Output:
140000
USB_RESET will tell the O.MG Device to perform a soft reset on the USB
Interface.
USB_RESET Encoding:
1B2700
USB_RESET Example Payload:
USB_RESET
Output:
1B2700
DELAY will tell the O.MG Device to pause execution for a certain number of
deciseconds. It contains one required parameter: TIME, and is a HEX value.
DELAY Encoding:
1D${time}
DELAY Example Payload:
DELAY 2000
Output:
1D07D0
MOUSE will tell the O.MG Device to create a Mouse device, which can
Relative MOVE or CLICK. It contains two required parameters: X and Y and
are positive or negative HEX values, within -FF and FF. It contains one
optional parameter: CLICK, which accepts a Button ID between 1 and 16 in
HEX.
If X or Y are a positive number, cmdPrefix is: 03
If X or Y are a negative number, cmdPrefix is: 04
MOUSE MOVE Encoding:
${cmdPrefix}${x}${y}
MOUSE CLICK Encoding
05000${click}
MOUSE Example Payload:
MOUSE MOVE 50 50
MOUSE CLICK 1
Output:
033232050001
Description: Payload Execution Error Response Message. If for some reason
a payload is unable to execute, the Backend will response with CEError and
a message to indicate what prevented execution. This is not a valid
WebSocket request, and is purely a response message if CE fails to
execute.
CEError\t${errorMessage}
Description: Payload Execution Status Message. You can call CEStatus to
determine if the Payload Processor is IDLE, LOADING, or RUNNING.
CEStatus
CEStatus\tIdle = Payload is not running.
CEStatus\tLoading = Payload is preparing for execution, but has not
started.
CEStatus\tRunning = Payload is running.
Description: OFAT Filesystem Error Response Message. If a requested file
does not exist, or could not be modified, the Backend will response with
CFError and a message to indicate what failed. This is not a valid
WebSocket request, and is purely a response message if CFGet, or CFList
fails to execute.
CFError\t${errorMessage}
Description: Request Flash Sector and Length of a file contained in the
OFAT Filesystem.
CFGet\tpayload1
CFGet\tpagempfs\tb0\t4
Parameter 1 is the filename. Parameter 2 is the flash sector number.
Parameter 3 is the length in sectors.
Description: Request Flash Sector and Length of all files contained in the
OFAT Filesystem.
CFList
CFList\t{"pagempfs":["80","38"],"installer":["a6","1"],"settings":["a7","4"],"reserve1":["ab","4"],"scandata":["af","1"],"payload1":["b0","4"],"payload2":["b4","4"],"payload3":["b8","4"],"payload4":["bc","4"],"payload5":["c0","4"],"payload6":["c4","4"],"payload7":["c8","4"],"bootscript":["cc","4"],"bootchk":["d0","1"],"keylog":["d4","294"]}
Within the array, Parameter 1 is the filename. Parameter 2 is the flash
sector number. Parameter 3 is the length in sectors.
Description: Get Device MAC Address, Uptime, and Restart Reason
CI
CI 70:03:9f:c5:3a:05 2M 4 00000000 00000000
2600.9 23 00000000
Parameter 1 is the MAC address.
Parameter 2 is the Flash Memory Size.
Parameter 3 is the Startup Reason.
Parameter 4 is the Address that caused reset.
Parameter 5 is Flash Address that caused reset.
Parameter 6 is the Device Uptime in Seconds.
Parameter 7 is the Heap Free Space in KB
Parameter 8 is a Fault Bit Flag
Restart reasons are:
0 Normal Startup By Power On
;
1 Hardware Watchdog Reset ${parameters[4]} ${parameters[5]} ${parameters[7]} ${parameters[8]}
;
2 Exception Reset ${parameters[4]} ${parameters[5]} ${parameters[7]} ${parameters[8]}
;
3 Software Watchdog Reset ${parameters[4]} ${parameters[5]} ${parameters[7]} ${parameters[8]}
;
4 Software Restart
;
5 Wake from Deep-Sleep
;
6 External System Reset
;
Fault Bit Flags are:
0 Payload VID Error
1 Payload PID Error
2 Flash and Map Size Not Equal
Description: Enable or Disable Mouse Jiggler
CJ0: Disable Mouse Jiggler
CJ1: Enable Mouse Jiggler
CJ0
CJ1
Description: Delete the Keylog from Flash.
CLDelete
CLDelete
Description: Perform either a ReadDirect or ReadNext from the Keylog.
Parameter 1 is required, specifying the client-side Maximum Request Buffer
in Bytes. Note, backend has a maximum size of 1280 Bytes. Parameter 2 is
optional, and if passed specifies the Report Number to start from.
CLRead\t1280: Keylog ReadNext for 1280 Bytes
CLRead\t1280\t0: Keylog ReadDirect for 1280 Bytes starting at Report
ID 0
CLRead\t${type}\t${length}\t${nextReportID}\t${data}
Type is which Report Type this message contains. Values are:
H = HID
K = Keystrokes
D = Diagnostics
Length is size of response in Bytes.
Next Report ID is the Next Report ID, allowing for contiguous read of log
when in ReadDirect mode.
Data is the raw data of the Keylog.
Description: Keylog contains a cursor position to mark last read, and is
updated automatically any time a CLRead ReadNext command is used. If you
wish to reset the Cursor to an arbitrary Report ID, you can use this
command.
CLSetCursor\t0: Reset Cursor to Report ID 0 (Start of File)
CLSetCursor\t0
Description: Start the keylogger. There is one required parameter to
specify the Report Type (H for HID or K for KEY)
CLStart\tk: Start Keylog in Key mode.
CLStart\th: Start Keylog in HID mode.
CLStart\tk
CLStart\th
Description: Print the status of the Keylogger Process.
CLStatus
CLStatus\t26\t10000000f05f1200000000000000000000000000000001000000
Parameter 1 determines the number of bytes, and with it the expected
parsing format.
Parameter 2 is a Hex String composed of multiple little-endian encoded
values.
Bytes 1-4: Keylogger Space Used
Bytes 5-8: Keylogger Space Free
Bytes 9-12: Keylogger Data Waiting
Bytes 13-16: Keylogger Overflow Count
Bytes 17: Keylogger Status
Bytes 18: Keylogger Capture Mode
Bytes 19-22: Keylogger Last Report ID
Bytes 23-26: Next Report ID
Description: Stop the Keylogger Process.
CLStop
CLStop
Description: Get the USB Device IDs that will be used when USB is on.
CNGet
CNGet\td3c0\td34d\tO.MG\tO.MG\t999
Parameter 1 is the USB Vendor ID
Parameter 2 is the USB Product ID
Parameter 3 is the USB Manufacturer Name
Parameter 4 is the USB Product Name
Parameter 5 is the USB Serial Number
Description: Set the USB Device IDs that will be used when USB is on.
CNSet\td3c0\td34d\tO.MG\tO.MG\t999
CNGet\td3c0\td34d\tO.MG\tO.MG\t999
Parameter 1 is the USB Vendor ID
Parameter 2 is the USB Product ID
Parameter 3 is the USB Manufacturer Name
Parameter 4 is the USB Product Name
Parameter 5 is the USB Serial Number
Description: Perform a soft reboot of the Backend.
CR1
CR1
Description: Erase a Setting from the Key:Value flash store.
CTErase\tkeymap
CTErase\tkeymap
Description: Error handler for the CT Settings Store. If a requested key
does not exist, or could not be modified, the Backend will response with
CTError and a message to indicate what failed. This is not a valid
WebSocket request, and is purely a response message if CTGet, CTSet, or
CTList fails to execute.
CTError\t${errorMessage}
Description: Get a Setting from the Key:Value flash store.
CTGet\twifiset
CTGet\twifiset\t1
Description: List all Settings from the Key:Value flash store.
CTList
CTList\t{"wifiset":"1"}
Description: Set a Setting from the Key:Value flash store.
CTSet\twifiset\t1
CTSet\twifiset\t1
Description: Enable or Disable the USB Interface
CU0: Disable USB Interface
CU1: Enable USB Interface
CU0
CU1
Description: Request Device Backend Firmware Version, Type, and Status
CV
CV\tv2.0.220322\tck\tg
Parameter 1 is Backend Firmware Version.
Parameter 2 is the Device Type
Parameter 3 is Status
Description: Allows setting the WiFi Mode, SSID, and Password.
Parameter 1 comes immediately after CW, but before the tab \t character,
and designates the WiFi Mode.
1 = Station
2 = AP
Parameter 2 is the SSID, and supports ASCII between 1 and 32 characters in
length.
Parameter 3 is the Password, and supports ASCII beteween 8 and 64
characters in length. No value = Open.
CW1\tOMG\t12345678
CW1\tOMG\t12345678
Description: Perform a Ping/Pong style Echo to Backend.
E
E
Description: Erase a Sector (4096 Bytes) of flash memory by Sector ID.
FE\t100
FE\t100
Description: Re-Write a Sector (4096 Bytes) of flash memory by Sector ID.
FM\t100\t${data}
FM\t100
Description: Read from of flash memory by Flash Address for a certain
length in Bytes.
FR\t409600\t512
FR\t409600\t512\t${data}
Description: Write a Sector (4096 Bytes) of flash memory by Sector ID.
FW\t100\t${data}
FW\t100
Description: Request Device IP Address, System Name, and System
Description
I
I 192.168.1.245 0.0.0.0 OMG_C53A05 O.MG O.MG 21168
Parameter 1 is the IP Address.
Parameter 3 is the System Name.
Parameter 4 is the System Description.
Description: Get the current WiFi Configuration
WI
WI1\tOMG\t12345678\t1
Parameter 0 is the Mode. WI1 = Station Mode, WI2 = AP Mode
Parameter 1 is the SSID
Parameter 2 is the Password
Parameter 3 is the 2.4GHz Channel Number
Description: Request the WiFi Radio RSSi (Signal Strength) and IP Address
(Hex Encoded)
WX
WX-55 f501a8c0
USB HID Usage ID | Base Layer (No Shift) | Shift Layer |
---|---|---|
04 | a | A |
05 | b | B |
06 | c | C |
07 | d | D |
08 | e | E |
09 | f | F |
0a | g | G |
0b | h | H |
0c | i | I |
0d | j | J |
0e | k | K |
0f | l | L |
10 | m | M |
11 | n | N |
12 | o | O |
13 | p | P |
14 | q | Q |
15 | r | R |
16 | s | S |
17 | t | T |
18 | u | U |
19 | v | V |
1a | w | W |
1b | x | X |
1c | y | Y |
1d | z | Z |
1e | 1 | ! |
1f | 2 | @ |
20 | 3 | # |
21 | 4 | $ |
22 | 5 | % |
23 | 6 | ^ |
24 | 7 | & |
25 | 8 | * |
26 | 9 | ( |
27 | 0 | ) |
2d | - | _ |
2e | = | |
2f | [ | { |
30 | ] | } |
31 | \ | | |
33 | ; | : |
34 | ' | " |
35 | ` | ~ |
36 | , | < |
37 | . | > |
38 | / | ? |
USB HID Usage ID | Modifier |
---|---|
01 | CONTROL |
01 | CTRL |
10 | RCONTROL |
10 | RCTRL |
02 | SHIFT |
20 | RSHIFT |
04 | ALT |
04 | OPTION |
40 | RALT |
40 | ALTGR |
40 | ROPTION |
08 | GUI |
08 | WINDOWS |
08 | COMMAND |
80 | RGUI |
80 | RWINDOWS |
80 | RCOMMAND |
USB HID Usage ID | Key Name |
---|---|
00 | NOKEY |
28 | ENTER |
29 | ESC |
2a | BACKSPACE |
2b | TAB |
2c | SPACE |
39 | CAPSLOCK |
3a | F1 |
3b | F2 |
3c | F3 |
3d | F4 |
3e | F5 |
3f | F6 |
40 | F7 |
41 | F8 |
42 | F9 |
43 | F10 |
44 | F11 |
45 | F12 |
46 | PRINTSCREEN |
47 | SCROLLLOCK |
48 | PAUSE |
49 | INSERT |
4a | HOME |
4b | PAGEUP |
4c | DELETE |
4d | END |
4e | PAGEDOWN |
4f | RIGHTARROW |
50 | LEFTARROW |
51 | DOWNARROW |
52 | UPARROW |
53 | NUMLOCK |
54 | KPAD_SLASH |
55 | KPAD_ASTERISK |
56 | KPAD_MINUS |
57 | KPAD_PLUS |
58 | KPAD_ENTER |
59 | KPAD_1 |
5a | KPAD_2 |
5b | KPAD_3 |
5c | KPAD_4 |
5d | KPAD_5 |
5e | KPAD_6 |
5f | KPAD_7 |
60 | KPAD_8 |
61 | KPAD_9 |
62 | KPAD_0 |
63 | KPAD_DOT |
64 | 102ND |
65 | COMPOSE |
66 | POWER |
67 | KPEQUAL |
68 | F13 |
69 | F14 |
6a | F15 |
6b | F16 |
6c | F17 |
6d | F18 |
6e | F19 |
6f | F20 |
70 | F21 |
71 | F22 |
72 | F23 |
73 | F24 |
74 | OPEN |
75 | HELP |
76 | PROPS |
77 | FRONT |
78 | STOP |
79 | AGAIN |
7a | UNDO |
7b | CUT |
7c | COPY |
7d | PASTE |
7e | FIND |
7f | MUTE |
80 | VOLUMEUP |
81 | VOLUMEDOWN |
82 | LOCKING_CAPSLOCK |
83 | LOCKING_NUMLOCK |
84 | LOCKING_SCROLLLOCK |
85 | KPAD_COMMA |
86 | KPAD_EQUAL |
87 | RO |
88 | KATAKANAHIRAGANA |
89 | YEN |
8a | HENKAN |
8b | MUHENKAN |
8c | KPJPCOMMA |
8d | INT7 |
8e | INT8 |
8f | INT9 |
90 | HANGEUL |
91 | HANJA |
92 | KATAKANA |
93 | HIRAGANA |
94 | ZENKAKUHANKAKU |
95 | LANG6 |
96 | LANG7 |
97 | LANG8 |
98 | LANG9 |
99 | ALTERASE |
9a | SYSREQ |
9b | CANCEL |
9c | CLEAR |
9d | PRIOR |
9e | RETURN |
9f | SEPARATOR |
a0 | OUT |
a1 | OPER |
a2 | CLEAR |
a3 | CRSEL |
a4 | EXSEL |
b0 | KPAD_00 |
b1 | KPAD_000 |
b2 | KPAD_THOUSANDSSEPARATOR |
b3 | KPAD_DECIMALSEPARATOR |
b4 | KPAD_CURRENCYUNIT |
b5 | KPAD_CURRENCYSUBUNIT |
b6 | KPAD_LEFTPAREN |
b7 | KPAD_RIGHTPAREN |
b8 | KPAD_{ |
b9 | KPAD_} |
ba | KPAD_Tab |
bb | KPAD_Backspace |
bc | KPAD_A |
bd | KPAD_B |
be | KPAD_C |
bf | KPAD_D |
c0 | KPAD_E |
c1 | KPAD_F |
c2 | KPAD_XOR |
c3 | KPAD_^ |
c4 | KPAD_% |
c5 | KPAD_< |
c6 | KPAD_> |
c7 | KPAD_& |
c8 | KPAD_&& |
c9 | KPAD_| |
ca | KPAD_|| |
cb | KPAD_: |
cc | KPAD_# |
cd | KPAD_Space |
ce | KPAD_@ |
cf | KPAD_! |
d0 | KPAD_MEMSTORE |
d1 | KPAD_MEMRECALL |
d2 | KPAD_MEMCLEAR |
d3 | KPAD_MEMADD |
d4 | KPAD_MEMSUB |
d5 | KPAD_MEMMULT |
d6 | KPAD_MEMDIV |
d7 | KPAD_PLUSMINUS |
d8 | KPAD_CLEAR |
d9 | KPAD_CLEARENTRY |
da | KPAD_BINARY |
db | KPAD_OCTAL |
dc | KPAD_DECIMAL |
dd | KPAD_HEXADECIMAL |
e0 | LEFTCTRL |
e1 | LEFTSHIFT |
e2 | LEFTALT |
e3 | LEFTMETA |
e4 | RIGHTCTRL |
e5 | RIGHTSHIFT |
e6 | RIGHTALT |
e7 | RIGHTMETA |
e8 | MEDIA_PLAYPAUSE |
e9 | MEDIA_STOPCD |
ea | MEDIA_PREVIOUSSONG |
eb | MEDIA_NEXTSONG |
ec | MEDIA_EJECTCD |
ed | MEDIA_VOLUMEUP |
ee | MEDIA_VOLUMEDOWN |
ef | MEDIA_MUTE |
f0 | MEDIA_WWW |
f1 | MEDIA_BACK |
f2 | MEDIA_FORWARD |
f3 | MEDIA_STOP |
f4 | MEDIA_FIND |
f5 | MEDIA_SCROLLUP |
f6 | MEDIA_SCROLLDOWN |
f7 | MEDIA_EDIT |
f8 | MEDIA_SLEEP |
f9 | MEDIA_COFFEE |
fa | MEDIA_REFRESH |
fb | MEDIA_CALC |