Keychron M6 (1K, PixArt 3311) review

With modding and comparison to Logitech MX Master

  • This article is also available as a video on YouTube. The video has more visual details and examples, so I recommend seeing that.

I used my original Logitech MX Master mouse for eight years until it finally broke down a few months ago. I wanted to buy a new mouse, and had three requirements:

  • ergonomics similar to the MX Master
  • the scroll wheel similar to the MX Master
  • and technically improved specs compared to the MX Master, meaning: less lag, maybe a faster polling rate

I basically seemed to have just two options: the Razer Basilisk V3 Pro 35K or, the Keychron M6. Keychron had just released their new version of the M6 mouse with a metallic scroll wheel and silent switches. So I ordered that one, with the PixArt 3311 sensor.

The different models of M6 might be quite confusing, and I've read from the Internet some bad things about the scroll wheel of the previous versions, so I was curious to see how it is. The SKU of my model is M6S-A71 and it seems to go by the name M6 Lite.

The M6 Lite has nice specifications that fit my criteria. The package is missing the information, but the mouse works just fine on Linux. However, Keychron's firmware updater software is a Windows application. The mouse comes with dongles for both USB-A and USB-C, and even adapters for both if for example you use an extension cable.


Compared to Logitech MX Master

I've now been using the M6 for over two months. Before use I did a couple of modifications: the first one is I used teflon tape for mouse skates, as I had done with the MX Master. Compared to the MX Master, the M6 is very similar in shape and feel except that it is around 1 cm narrower than the MX Master. This is a huge difference and normally would have been a show stopper for me personally.

The biggest difference besides the width compared to the MX Master is how silent the clicks are. In the video I'm clicking all the buttons of the M6 and MX Master, you can hear how they sound compared to each other. The scroll wheel of M6 only rattles in the free spinning mode. I only use it in the free spinning mode on special occasions when scrolling long documents, so the rattle hasn't bothered me in practice at all. The rattling scroll wheel seemed to be a show stopper for many people with the older version of the M6, so it might be this new one really does have a better scroll wheel.

Using the USB dongle, the reception of the mouse feels just a tiny bit worse compared to the MX Master, but if using Bluetooth I'm pretty much only limited by the antennas of the other end, and the specs are still better than the MX Master's. For higher polling rates, the dongle or wired mode is required.

Another thing with the width is that compared to the MX Master where my ring finger would sit nicely on the side, with the M6 my ring finger would touch the right mouse button. It feels annoying to me when right-clicking as I'm very sensory sensitive. This was also the reason I didn't go for the Razer mouse as I could already in a store try it out and realized the ring finger would be touching the button all the time.

Ring finger position on Keychron M6
The ring finger on Keychron M6 has trouble fitting if your hand isn't small.


Modding

So, normally due to the too narrow a shape this would have been it for the mouse, but since my MX Master was already broken, I decided why not and just used a tool to cut the side off. I did a couple of test fittings with two-sided tape before gluing the extra piece to the M6. The end result looks very tidy and most importantly, it feels absolutely like I was still using the MX Master. It completely fixed the width problem and the ring finger problem for me.

A glued mod for Keychron M6
After several test fittings I glued the piece to the Keychron M6.
A modified Keychron M6
The finished modified Keychron M6 looks tidy and feels like an MX Master.
Ring finger position on modified Keychron M6
The modification fixed the width problem completely.


Functionality, support and firmware

Right off the bat I noticed a very disturbing problem with the M6's scroll wheel: it was very inaccurate. Sometimes when scrolling, it would shoot all the way down the page, or misinterpret if I changed direction suddenly. However, I contacted the customer service and I'm happy to say they have excellent support. People at Keychron answered my email quickly and after a few days, sent me a new firmware that hadn't been released officially yet.

It was funny to see how the latest version was 1.0.1 and I was using version 1.0.2 already. The new firmware fixed the scroll wheel and I haven't had any trouble with it anymore.


Speaking of the software, I really like how Keychron's software programs the mouse directly via a website. This means it works similarly with all operating systems. You can change the button mappings and the DPI settings for example. On Linux I had to give write access to certain hidraw devices (14 and 15 in this case) for the programming software to work, so if you are using something other than Windows, check out the access rights for the device nodes.

/dev $ dmesg | tail -n 8
[21245.026205] input: Keychron Keychron M6 as /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0e:00.0/usb1/1-1/1-1.1/0003:3434:D064.001F/input/input35
[21245.026258] hid-generic 0003:3434:D064.001F: input,hidraw11: USB HID v1.10 Mouse [Keychron Keychron M6] on usb-0000:0e:00.0-1/input0
[21245.026676] input: Keychron Keychron M6 Keyboard as /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0e:00.0/usb1/1-1/1-1.1/0003:3434:D064.0020/input/input36
[21245.117455] hid-generic 0003:3434:D064.0020: input,hidraw12: USB HID v1.10 Keyboard [Keychron Keychron M6] on usb-0000:0e:00.0-1/input1
[21245.117796] hid-generic 0003:3434:D064.0021: hiddev99,hidraw13: USB HID v1.10 Device [Keychron Keychron M6] on usb-0000:0e:00.0-1/input2
[21245.118052] hid-generic 0003:3434:D064.0022: hiddev100,hidraw14: USB HID v1.10 Device [Keychron Keychron M6] on usb-0000:0e:00.0-1/input3
[21245.118313] hid-generic 0003:3434:D064.0023: hiddev101,hidraw15: USB HID v1.10 Device [Keychron Keychron M6] on usb-0000:0e:00.0-1/input4
[21245.169214] elogind-daemon[2426]: Watching system buttons on /dev/input/event24 (Keychron Keychron M6 Keyboard)

A tiny bit of nitpicking I could say about the buttons. The silent switches feel very nice and especially sound very nice overall, but if you have short fingers or sometimes like to hold the mouse so that the tips of the fingers press the buttons quite high, the click turns into a kind of a crunch instead and doesn't feel that accurate. I never had this problem with the MX Master no matter how I held the mouse. As I said, this is really nitpicking though, and hasn't really been a problem.

The scroll wheel I feel like if they dropped the tilt wheel capability, they could make it sturdier also in the free spinning mode and get rid of the rattle. Also the button to toggle the two modes, notched and free spinning, requires relatively big amount of force to click, and makes a loud sound compared to the otherwise silent mouse.

For the technical specs and gaming experience I'll leave you to other sources. For example rtings.com has really detailed tests about the technical stuff. In short, my MX Master had a click latency of around 14 ms, whereas the M6 had 7 ms, so about only half. The sensor latency was also less than half of the MX Master's. I rarely game nowadays, but for casual gaming at least I see absolutely no problems with the M6, and I trust the PixArt sensor is capable enough for those needing raw performance.

Conclusion

If you're looking for an alternative to the MX Master, the Keychron M6 is an excellent option, but do take into account the difference in width. Also remember to update your firmware to at least version 1.0.2.

Send me email or comment below:
(Please note: comments with direct links to commercial sites might not be published.)
Creative Commons License  This article by Olli Helin is licensed under the Creative Commons Attribution 4.0 International License
Powered by GainCMS