Manual for the Zaunkoenig M3K

Sensor overview

The M3K is using the PAW3399DM-T4QU (3399 from here on) from PixArt. The 3399 has the following specifications:

Overview over the M3K default parameters

Per default your M3K runs with the following parameters:

Changing CPI, angle snapping, LOD and polling rate

CPI

This is how you can change the CPI of your M3K:

  1. Plug in your M3K.
  2. Lift the M3K a few centimeters off your mousepad so it stops tracking.
  3. Hold down the left and right button for 5 seconds.
  4. The M3K now enters the so-called «CPI programming mode». Upon entering the mouse cursor will jump around to show you at what CPI the M3K is currently at. There are four kinds of jumps the M3K can do (that is four times as much than what a one-trick pony can do): up-down (indicating 10,000 CPI), right-left (indicating 1,000 CPI), down-up (indicating 100 CPI) as well as left-right (indicating 50 CPI). The default CPI value of the M3K is 800 CPI and would result in eight down-up jumps, for example.
  5. Now place your M3K back on your mousepad; you will not be able to change CPI while your M3K is up in the air.
  6. With your M3K on your mousepad you can now change the CPI by pressing either the left or right mouse button. Each time you press your left mouse button, the CPI decreases by 50 until you reach the minimum CPI value of 50. Pressing right increases CPI by 50. While you are doing this you can move the M3K around to get a feeling for different CPI values.
  7. If you want to increase CPI by 500 you can use the following shortcut: hold down the left mouse button and press right (vice versa for decreasing by 500 CPI). The mouse cursor makes a bigger jump to indicate an increase by 500 CPI instead of just 50 CPI.
  8. You exit the CPI programming mode the same way you entered it: Lift your M3K a few centimeters off your mousepad so it stops tracking and hold down the left and right mouse button for 5 seconds.
  9. Upon exiting your M3K again will tell the CPI it is currently running with.

Angle snapping

To activate angle snapping, hold down the left mouse button for at least 3 seconds while plugging in your M3K. The mouse cursor will move 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 and polling rate

You can switch between three different LOD values (1, 2 and 3 millimeters) as well as four different USB High Speed polling rates (1,000; 2,000; 4,000; 8,000 hertz) by entering the «LOD and polling rate programming mode».

Note that when you dumbed your M3K down to 1,000 hertz via USB Full Speed you will not be able to change the polling rate via the LOD and polling rate programming mode. You would first have to set your M3K back to 8,000 hertz via USB High Speed by plugging it in with the left and right mouse button held down; only then can you access the two polling rate values of 2,000 and 4,000 hertz.

It is a little bit confusing, but you can use the M3K at either 1,000 Hertz via USB Full Speed or at 1,000 Hertz via USB High Speed. The latter has a slight latency advantage over the former, so we recommend to use 1,000 hertz via USB High Speed.

This is how you can enter LOD and polling rate programming mode:

  1. Hold your M3K up in the air, so the sensor cannot track, and hold down the left and right mouse button for 10 seconds. After 5 seconds your M3K will enter the CPI programming mode and tell you its current CPI; ignore that and keep holding down both buttons for 5 more seconds, until your M3K starts drawing clockwise squares and numbers on your screen (that means you have entered the LOD and polling rate programming mode; you can now let go of the buttons :P).
  2. Here is what those clockwise squares mean: A LOD value of 2 millimeters will result in two clockwise squares, for example.
  3. Next up is USB polling rate. Your M3K will draw a figure 8 for 8,000 hertz, a figure 1 for 1,000 hertz, a figure 2 for 2,000 hertz and a figure 4 for 4,000 hertz.
  4. After the last animation is done you can now change LOD and polling rate by clicking left (LOD) and right (polling rate). Each time you click left the LOD will be increased by 1 millimeter and your mouse cursor will draw clockwise squares to show the new LOD. If the LOD is to 3 millimeters and you try to increase it one more time the LOD will jump down to 1 millimeter.
  5. Clicking right increases your polling rate, unless you already are at 8,000 hertz, in which case clicking right would result in a new polling rate of 1,000 hertz. Your mouse cursor will draw the corresponding figure to each hertz value.
  6. You can exit LOD and polling rate programming mode by holding up your M3K and pressing down the left and right mouse button for 5 seconds. Upon exiting your M3K will again tell you its current LOD as well as polling rate.

Switching between USB High Speed and USB Full Speed

Your M3K can do driverless 8,000 hertz. In contrast to the M2K, your M3K is set to 8,000 hertz per default.

Thanks to the sophisticated electromagnetic shielding the M3K can pull off 8,000 hertz even when it is plugged into a (reasonably long) USB extension cord. The M2K struggled a lot with USB extension cords.

However: should you have any issues with 8,000 hertz by the way, the first thing you should try is dumb your M3K down to 1,000 hertz by plugging it in with the left and right mouse button held down (your mouse cursor will do a figure one to indicate the change). If the issues you had are gone now it most likely is an issue related to 8,000 hertz.

You can switch to 1,000 hertz by plugging in your M3K with the left and right mouse button held down. The cursor on your screen will do a figure one (cursor will move right and then down) to indicate the change (you can now let go of the buttons :P).

Should you want to switch back to 8,000 hertz repeat the above procedure; this time your mouse cursor will do a figure eight to indicate the change.

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.

Reset

Performing a reset on the M3K will restore the following default values: 800 CPI, angle snapping off, 2 millimeters LOD and a polling rate of 8,000 hertz.

This is the first time we offer this reset functionality in our firmware, by the way.

And this is how you perform the reset: plug in your M3K with the right mouse button held down and plug in your M3K. Keep the right mouse button held down for at least 1 millisecond, but no longer than 3 seconds, to perform a reset. Upon a successful reset the mouse cursor will do a backslash (meaning: your mouse cursor will move diagonally towards the bottom right).

If you hold down the right mouse button for longer than 3 seconds your M3K will enter a mode called «Device Firmware Upgrade» (DFU). You know you accidentally got into the DFU mode when your mouse cursor is frozen. If that happens to you simply plug your M3K out and back in again.

Updating the M3K firmware

In December of 2024 Discord user Parawizard discovered severe firmware bugs in the M3K firmware that caused disconnects on some PCs. Not only did he find those firmware bugs, but he also provided a hot fix in the form of a prototype firmware (currently the M3K firmware on our GitHub is not up to date; apologies).

We have been testing this firmware for several months now and it has proven to be very robust. We thus strongly recommend updating: 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 M3K MCU; with it you can flash the actual firmware file (.bin) directly to the M3K. 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.

FCC

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