No reply to QUERY(VERSION)Wrong baud, a held port, or not a Medius box

If QUERY(VERSION) (firmware and protocol version) gets no RESP(VERSION), check:

  • Port not opened at 6,000,000 baud. The box speaks framed binary from the first byte, with no slower startup speed.
  • Another process holds the port. Only one process can open it.
  • Not a Medius box, or the wrong port.

The hello is an unsolicited RESP(VERSION) at boot and on the first frame received. Missing it costs nothing: send QUERY(VERSION).

Injection does nothingCheck HEALTH first

Injection is input added on top of native input (motion, buttons, scroll). If it has no effect, send QUERY(HEALTH) and read the flags word (u16, little-endian).

The box merges injection only once LINK_UP, MOUSE_ATTACHED (a mouse on USB3), and CLONE_CONFIGURED (the PC enumerated the clone) are all set.

Held button releasesSilence auto-clear

EventEffect
Silence timeout (default 1000 ms with no valid inbound frame)Drops every held button and pending move, and returns to passthrough.
Any frame passing its checksum (including a QUERY)Resets the timer.

To hold an injected button, keep the link busy with periodic frames (a QUERY(HEALTH) is enough), or use the library's keepalive.

Machine shuts off or drains batteryUSB1 and USB3 on the same machine

USB1 and USB3 share one internal 5V rail that firmware can't pull low. Wired to one machine, they back-feed power into it. Keep them apart:

PortCarriesConnects to
USB1clonegame PC
USB2control linkcontrol PC
USB3real mousemouse

No reply after REBOOTChip in ROM download mode

A download REBOOT puts a chip in ROM download mode and stops its firmware. With target 0, the CH343 port stays, but the device chip's ROM loader replies on it instead of Medius. With 1, the host chip stops reading the real device. Flash the chip, or power-cycle the box to run the firmware again.

No LOG framesSent only with a control PC attached

LOG is the box's unsolicited diagnostic frame (box to PC). If none arrive, check:

  • No control PC attached. LOG is sent only while one is.
  • Logged before first contact. That output is dropped, not buffered.
  • Early ROM-bootloader output, plain ASCII the frame decoder ignores.