Manual for the Zaunkoenig M2K

Sensor overview

The M2K is using the PMW3360DM-T2QU (3360 from here on) from PixArt. The 3360 has the following specifications:

Overview over the M2K default parameters

Per default your M2K runs with the following parameters:

Changing CPI, angle snapping, LOD and polling rate

CPI

You can change the CPI on your M2K the following way:

  1. The «CPI programming mode» on the M2K can be entered by lifting up the M2K and holding down the left and right mouse button for 5 seconds. Upon entering the CPI programming mode your M2K tells you its current CPI by making your cursor jump (once the cursor jumps, you can let go of the left and right mouse button). When you enter the CPI programming mode with an M2K that is set to 800 CPI, the mouse cursor will go up and down exactly eight times. At 3,500 CPI the mouse cursor would move to the right and back three times (indicating 3,000 CPI), and then up and down five times (indicating 500 CPI).
  2. Now place the M2K back on your mousepad. You can now change the CPI by pressing either the left or right mouse button. Each time you now press your left mouse button, the CPI will be decreased by 100 until you reach the minimum CPI value of 100. Pressing right increases CPI by 100. While you are doing this you can move the M2K around to get a feeling for different CPI values.
  3. If you want to increase CPI by 1,000 you can use the following shortcut: hold down the left mouse button and press right. The mouse cursor makes a bigger jump to indicate an increase by 1,000 CPI instead of just 100 CPI. Switch buttons to do the same for decreasing CPI by 1,000.
  4. Exit the «CPI programming mode» the same way you entered it.

Angle snapping

To activate angle snapping, press and hold the middle mouse button while plugging in the M2K. Cursor moves clockwise in a square to indicate the change. To disable angle snapping, repeat the same procedure; this time the cursor will do the square counterclockwise.

LOD

To set the LOD to 3 millimeters plug in the M2K while holding down the left mouse button: cursor will do three clockwise squares to indicate change. Repeat the procedure for changing the LOD to 2 millimeters; this time the cursor will move counterclockwise in a square two times.

Polling rate

The M2K can do driverless 8,000 hertz. The default mode of the M2K is 1,000 hertz via USB Full Speed however. You can switch to 8,000 hertz via USB High Speed by plugging in the M2K with the left and right mouse button held down. The cursor on your screen will do a figure eight to indicate the change (you can now let go of the buttons :P). Should you want to switch back to 1,000 hertz via USB Full Speed repeat the above procedure. The cursor on your screen will move to the right and down to indicate the change.

Alternatively you can cycle through different hertz levels with your M2K without having to plug your M2K out. Note that your M2K has to be set to 8,000 hertz in order to being able to do that though. This is how you can enter «polling rate programming mode»: hold up your M2K so that the sensor stops tracking and press down the middle mouse button for 5 seconds. Your M2K is now entering polling rate programming mode and upon doing so it will indicate at how much hertz it is currently set to by moving the cursor up and down again. Example: when set to 8,000 hertz the mouse cursor will move up and down eight times in a row.

Once you have entered polling rate programming mode you can put your M2K back on your mousepad. You can now cycle through the following hertz levels by scrolling in the direction of the cable (increasing hertz) or by scrolling in the direction of your hand (decreasing hertz). Increasing hertz is indicated by your cursor jumping up and down; vice versa reducing hertz is indicated by your cursor jumping down and up. The following hertz values are available: 1,000 hertz, 2,000 hertz, 4,000 hertz as well as 8,000 hertz.

You can cycle through hertz values in your actual game of choice, which is useful if you want to test out whether 8,000 hertz results in the game stuttering but 4,000 hertz not, for example. Say you switch from 8,000 hertz down to 4,000 hertz by scrolling towards your hand: your mouse cursor will jump down and up again four times, indicating that you lowered hertz by 4,000.

You can exit polling programming mode by holding up your M2K and pressing down your middle mouse button for 5 seconds. Upon exiting polling rate programming mode the M2K will again tell you at how many hertz it is currently running. Say you set your M2K to 2,000 hertz and now are exiting polling rate programming mode; in that case the cursor will move up and down exactly two times.

If you want to double-check the polling rate of your M2K you can use this little website, made by «Bored». Move your M2K in quick circles to get an approximative readout of the polling rate of your M2K.

If you want to double-check the polling rate of your M3K you can use this little website, made by «Bored». Move your M3K in quick circles but not in a zig-zag fashion. If you move your M3K quickly enough you should get a reading very close to 8,000 hertz (example: 7,942 hertz). Beware: If you are on a MacBook it is possible that the maximum hertz reading you will get is locked to the frame rate of your monitor.

If you want to analyze mouse input with more fidelity we recommend installing a software called «MouseTester», originally developed by microe1. These days there are several forks of MouseTester; we recommend giving this one by dobragab a try.

If you want to give MouseTester a try here are some pointers:

If that was not technical enough for you, you can give this MouseTester guide by Japanese blogger piaKnow a try.

A word about measuring 8,000 hertz in general: when you measure the USB update rate with a tool like the above mentioned website, chances are your M2K will be shown as hovering around 4,000 hertz.

The reason for this is simple: the sensor in the M2K essentially is a small digital video camera that runs with a certain frame rate. Your normal iPhone camera shoots video at 30 or 60 frames per second (FPS). The FPS of the sensor in the M2K (PixArt 3360) depends on how quickly you move your mouse around. The 3360 has four FPS steps: 4,100; 4,900; 5,900 as well as 11,600. Only for very quick movements (roughly 1 meter per second) will the FPS actually be 11,600. For most of your movements the FPS will thus be either 4,100, 4,900 or 5,900.

Say the 3360 in your M2K is running with 5,900 FPS while you are trying to measure the update rate of your M2K. It will now appear that the M2K is running at 5,900 hertz. That does not mean that the M2K is not capable of doing 8,000 hertz however. The M2K firmware is programmed in a way that the M2K will only transmit sensor data if there is new sensor data. And when the 3360 only has 5,900 new data points each second instead of 8,000 new data points each second, it will appear that the M2K is running with just 5,900 hertz.

Unfortunately there is nothing you or Zaunkoenig can do about this: PixArt does not allow it to modify the FPS of its sensors, unless your name is Logitech or Razer.

Finally: clicks will always profit from 8,000 hertz, since the switches in the M2K are sampled continuously.

Also note that 8,000 hertz is just barely possible with the M2K. The limiting factor being the cable, and more specifically the spiral shield of said cable.

It is possible that when an M2K that is set to 8,000 hertz and is paired with a poor USB port, the M2K will not even be recognized by your PC. Should that happen to you, try a different USB port. Avoid USB 2.0 ports as well as USB ports that are on the front panel of your PC. If you cannot find a working USB port (which is rare, but not unheard of) dumbing down your M2K to 1,000 hertz will result in your M2K working again (at the expense of 8,000 hertz obviously).

If you have a PC with picky USB ports and your M2K is not working properly at 8,000 hertz, but you are hell-bent on using 8,000 hertz, there is a cheap solution to fix this: you can buy an active USB hub ($20 on Amazon). This active USB hub will boost the 8,000 hertz signal, making 8,000 hertz work more reliably.

Note that using a USB extension cord will do the opposite of an active USB hub: it will degrade the signal, making 8,000 hertz work even less reliably.

Updating the M2K firmware

Older M2K firmware versions can have scrolling issues. For example: you croll down a bunch of times and occaionlly the M2K will scroll up. If you have this issue we strongly recommend to update to M2K firmware v1.31 (currently the firmware on our GitHub is not up to date; apologies). I the overwhelming majority of cases this firmware will fix your scrolling issue. If it doesnt fix your scrolling issue you can try cleaning your encoder; and if that does not help you need a new encoder. Anyway: what follows are the instructions on how to install M2K firmware v1.31.

Download the following four firmware files here, here, here and here, execute the .bat file (run as administrator) and follow the instructions.

Alternatively, if you want to test your pain tolerance, you can download a piece of software written by the maker of the M2K MCU; with it you can flash the actual firmware file (.bin) directly to the M2K. This software is called STM32CubeProgrammer and in order to download it you have give STM your email. Also you should avoid versions 2.16, 2.17 and 2.18, since they do not work reliably on every system. Known good versions are 2.14 and 2.15. It does not get better; good luck.

3D file of the M2K PCB

You can download the 3D file of the M2K PCB on Thingiverse.

FCC

The Zaunkoenig M2K complies with 47 CFR Part 15. Our FCC partner in the US: Michelle Construction, 7575 Hillcrest Avenue Manitou Beach, Michigan, 49253, chuck@michelleconstruction.com