Commands are sent over the WebUSB command endpoint. This reference is for developers building web clients or debugging adapter behavior.

Command ranges

RangeModuleCommands
0x00–0x0FControl0x00 SetMode, 0x01 Cancel
0x10–0x1FGBA LinkSetModeMaster, SetModeSlave, StartHandshake, ConnectLink
0x20–0x2FGBA Emu(internal section commands)
0x30–0x3FGB Link0x30 SetTimingConfig, 0x31 EnterPrinter, 0x32 ExitPrinter
0x40–0x4FHardwareSee below

Hardware commands (0x40–0x4F)

CommandNameDescription
0x40Voltage3V3Select 3.3V link level
0x41Voltage5VSelect 5V link level
0x42SetLEDColorSet LED color live (preview)
0x43RebootBootloaderEnter UF2 bootloader
0x44SetWebUsbLandingdata[1]: 1 = on, 0 = off. Persists whether adapter advertises launcher.gblink.io on connect. Stored in flash. Current state reported as 5th byte in 0x0F GetFirmwareInfo response.
0x45GetLedConfigReturns persisted per-mode LED colors: [0x45, count, r,g,b …]. Slots: 0 idle, 1 GBA/Celio, 2 GB/GBC, 3 printer, 4 Advance Wars.
0x46SetModeLedColor[0x46, slot, r, g, b] — persists a mode’s color (applied on next entry)
0x47ResetLedColorsRestores all slots to built-in defaults

LED colors are full 0–255 RGB. On a WS2812, magnitude also controls brightness.

Control commands

0x00 SetMode

Sets the firmware operating mode. See Supported Modes.

0x01 Cancel

Cancels the current operation and returns to idle.

0x0F GetFirmwareInfo

Returns firmware version and configuration. The 5th byte includes the current WebUSB landing page state.

CommandPurpose
SetModeMasterConfigure connected GBA as link leader
SetModeSlaveConfigure connected GBA as link follower
StartHandshakeBegin link handshake sequence
ConnectLinkEstablish link connection
CommandPurpose
0x30 SetTimingConfigAdjust GB link timing parameters
0x31 EnterPrinterEnter Game Boy Printer emulation mode
0x32 ExitPrinterExit printer emulation mode

Implementation notes

  • Web clients communicate via WebUSB and WebSerial — no kernel drivers required.
  • On Linux, install udev rules via ./scripts/setup-permissions.sh.
  • If the firmware does not respond to a mode-switch command, reboot the device.