Hello fellow keeb lovers,
More than 9 months have passed since I finished my last keyboard project, the Aquanaut.
I am very happy on how it turned out and could achieve the sound and feel that I wanted for this design. One of my two boards will very soon evolve (a bit like Pokemons
) in an EC setup with genuine Topre housings and sliders (taken from a Realforce donor), I am just waiting for my URSA keycaps to arrive, designed by our awsome community member @Andreas ![]()
As far as designing keyboards I will probably continue doing it and have several ideas in mind but wanted to do a little pause and try something new. Why not making my own mouse ?
Mices are favorite electronic companions for our keyboards after all, we are not too far off the main topic of this forum (maybe a dedicated mouse channel could be done @cijanzen ?).
My end goal is to create a mouse that would have the following features:
- Sub 50g weight.
- USB wired.
- Wireless bluetooth.
- Wireless proprietary with low latency (for gaming).
- Max 2000Hz polling rate:
- Will probably stick with 1000Hz polling rate at first.
- Higher polling rates are to me a marketing gimmick:
- No human can feel the difference anyway.
- See Optimun video talking about this topic.
- Minimizing latencies at standard polling rates is more rewarding than higher polling rates that drains batteries and kills your computer

First was to look on the net what has been done already, what parts to use and so on …
I stumbled on Juskim Youtube Channel, the man did some very advanced work and is planning to open source it’s results at some point. It’s work is remarkable and I do recommend highly to look at its work on his channel (fear not, it is not hugely technical).
After carefull examination I decided on using a Pixart PAW3395 sensor and a Nordic Semiconductor nrf52840 MCU (and this is almost what Juskim selected to use in it’s own mouse projects).
The PAW3395 is a very performant and low power mouse sensor that has been used on gaming mouses for years by many known companies like Razer, Pulsar, Final Mouse, etc.
It is now replaced by the PAW3950, on the paper more performant, but really no human beeing should feel the difference in practice (mouse vendors need newness to be able to sell new mouses).
Documentation of this sensor is not public, I had to sign an NDA with Pixart to obtain it. This raises the question of open sourcing the project in the future at least for the software side but we are far from getting there at the moment.
I could have selected ZMK (that recently has mouse support) as firmware library but ultimately decided not to for several reasons:
- I want proprietary wireless protocol and ZMK do not provide this feature.
- I want to be able to configure all the settings that the mouse sensor has to offer.
- I want to learn new things that using ZMK would have prevented me to do.
And now the software part, so many new things to learn:
- Programming on Zephyr OS, a real time system used by many projects and companies (ZMK is using Zephyr OS BTW).
- Programming a new MCU.
- Driving a new to me sensor with the SPI protocol (never used SPI before).
- All this took me many weeks of research and learning.
But I have a few early results ![]()
Here is the test setup, an nrf52840 DK board (a very versatile nrf development board) connected to a PAW3395 breakout board.
I have been very lucky, my 800 lines of C code that drive the mouse sensor worked first time !
This includes, power up sequence, motion detection and motion data retrieval.
So many things remaining to do: USB, Bluetooth, Wireless connectivity, configuration software, not included PCB design and physical mouse design…
But, hey it is a start ![]()
Will post news here as soon as I have some, see you !


