Skip to content

added Monsgeek Support (Specifically Fun60Ultra TMR)#10

Open
n8ventures wants to merge 3 commits intoAnalogSense:senpaifrom
n8ventures:senpai
Open

added Monsgeek Support (Specifically Fun60Ultra TMR)#10
n8ventures wants to merge 3 commits intoAnalogSense:senpaifrom
n8ventures:senpai

Conversation

@n8ventures
Copy link
Copy Markdown

Hi! Since I own a Monsgeek Fun60Ultra TMR, might as well give it a shot to add support.
Now there's a bit of a additional setup to get it working:

  1. I have to either open the web driver via https://web.monsgeek.com/ or the downloaded offline driver,
  2. go to Configuration > Magnetic Switch Settings > Simulation >flip on Start Simulation.

This is what I've seen from this request: AnalogSense/universal-analog-plugin#25

image

here's a preview:
chrome_J5IVlWyefz

@Sainan
Copy link
Copy Markdown
Member

Sainan commented Apr 18, 2026

It would be great if you could send whatever report the driver sends to start/stop the reports.

@n8ventures
Copy link
Copy Markdown
Author

n8ventures commented Apr 19, 2026

Hi! forgive me, I'm quite new to this. I figured via input-report-logger that the keyboard exposed multiple HID interfaces (3 HIDDevice instances in WebHID). With a couple of trial and error, I found that 2 of those are important.

the first interface: usagePage: 12, usage: 1
sends out the input key stream.

the second interface: usagePage: 65535, usage: 2
appears to expose a vendor control channel, which allows me to toggle the simulation switch by sending these bytes via sendFeatureReport():

const buf = new Uint8Array(65);
buf[0] = 0x1b;
buf[1] = on ? 0x01 : 0x00;
buf[2] = on ? 0xe3 : 0xe4;


await dev.sendFeatureReport(0, buf)

the bytes were retrieved via WireShark + USBPcap by toggling the simulation switch on and off and used the Data Fragment outputs.

I sent in a new commit which has the new changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants