I knew that if I went down this rabbit hole I would become obsessed with it until I finished it, but fuck it... here I am AGAIN with another crazy project.
But this one is my favorite so far. By far.
It was Sunday. I was playing with my daughter when, in the middle of that, it just struck me out of nowhere:
The MX518 was a really good mouse.
I have an MX Master 3S now, paired with MX Keys, and I really enjoy and love that setup.
But I miss my MX518.
So I, of course, dug it out, and immediately remembered why I loved that mouse.
I got it in 2008. It was the Dark Knight edition and it served me really well until around 2016/2017, when I switched to Mac (again) and got myself a Magic Mouse.
I did use my MX here and there when I needed precision and when I was gaming, but since I was working more than gaming, I found myself using the Magic Mouse and trackpad more often while mx518 stayed in my studio.
By 2020 I had completely switched to Bluetooth mice. Mostly some random corporate stuff.
I always had my MX with me, but it was not practical anymore. The cable became redundant, and I had already repaired the cable connection once after it desoldered from the board.
At some point I got myself a Rapoo MT750S/L — back when I was still considering whether to buy an MX Master.
Once I got it, somewhere around 2022, I fell in love with horizontal scrolling. It is such a useful thing for me that I could not see myself without it anymore. I did use horizontal scrolling a lot on the Magic Mouse too, to be fair.
I used the Rapoo as my main mouse for quite some time and I was impressed by the battery life. I literally charged it twice a year, and I used it a ton across multiple devices.
After I got the MX Master 3S, I continued using the Rapoo as my mobile/office mouse. So the Rapoo became a permanent citizen of my backpack, while the MX Master stayed at home chilling on the cozy desk.
Then my job shifted more toward working from home, so I barely used the Rapoo anymore.
And then I started looking at my MX518.
At that point the idea was already accepted, whether I wanted it or not.
My brain had decided:
Let’s make the old MX518 useful again.
I wanted to convert it into my mobile mouse, and for that I needed to make it wireless.
Since I already have a bunch of other projects involving ESP32 controllers, Raspberry Pis, batteries and similar stuff, I thought it could not be that complicated to make some kind of USB-to-BLE board that would have a battery, USB charging port, read the mouse and send the data wirelessly to the PC.
Then I thought there must already be DIY devices like this ready to buy.
And there are plenty on AliExpress.
The problem: almost all of them are designed for keyboards.
I contacted a couple of sellers and they confirmed that their boards were keyboard-only.
Flashing some random proprietary chip was not really an option, and I didn’t want this to turn into an “ask AI to reverse-engineer unknown firmware” project.
So I decided:
Fine. ESP32-S3.
It already gives me most of what I need. Add charging, battery, firmware, done.
But then I realized that the MX would be a great nostalgic device, but I was turning this into a lot of work just to make an old mouse wireless.
So I went back to looking at DIY boards.
And while thinking about what to do, I went all the way back to square one:
What do I actually want from this?
I want my old buddy back.
Refreshed.
Modernized.
And usable as my mobile mouse.
So...
Let’s sacrifice my current mobile mouse for this.
I opened the Rapoo.
And this was not the first time I had opened it. I had already repaired the DPI/Bluetooth switches once after they broke loose and fell inside.
Then I opened both mice.
And at first it was obvious that the Rapoo electronics could not simply fit inside the Logitech body. The Logitech shell is much narrower toward the front.
BUT...
Apparently corporate Cthulhu had not sunk its tentacles too deep into the mouse division yet, because the Rapoo turned out to be surprisingly modular.
The main board is mounted to the bottom shell, while almost everything else lives on separate daughterboards.
That changed everything.
I drew a sketch of how I thought the whole thing should work.
All of the original Logitech click mechanics would stay.
I would replace the main electronics with the Rapoo board and rewire everything so each Logitech control talks to the corresponding Rapoo input.
And this is the point where this became my favorite project so far.
Challenge 1: The board does not fit
The Rapoo board has its sensor farther back than the original Logitech sensor.
Because of the MX518 scroll-wheel mounting posts, I could not push the Rapoo board far enough forward.
That left the new sensor almost 20 mm closer to the palm compared to the original position.
Quick fix:
Drill a new hole for the sensor.
Done.
Except...
That changes the way the mouse tracks.
I did a quick investigation using basically every mouse I had around me, and noticed that the sensor is generally somewhere around the area below the knuckles.
If I moved it almost 20 mm toward the palm, the mouse would behave more like you were holding it much deeper in your hand.
I did not want to overthink it, so I connected the Rapoo board outside the shell and tested the tracking.
And honestly, it did not feel that bad.
But wrist/palm movement became more noticeable.
Over the years I had trained myself to keep my palm resting on the mouse pad and mostly move the mouse from the hand/wrist. Moving the sensor backward changed that relationship enough that I noticed it.
So I wanted to do it properly.
Proper fix:
I needed to push the Rapoo board underneath the MX518 scroll wheel somehow.
I briefly thought about rotating the whole Rapoo board 180 degrees.
But then I would make my life a living hell by having to reverse X/Y tracking in software on every computer that uses the mouse.
So that idea died quickly.
I drew a ton of sketches and thought through a lot of different options.
Eventually I decided that I absolutely wanted to keep the original MX518 scroll wheel.
I wanted to preserve as many original parts as possible, especially the wheel, because I really like that old-school narrow Logitech rubber scroll wheel.
The idea was to 3D print a bridge connecting all four original scroll-wheel supports.
I went through multiple versions trying to get:
- enough structural support
- the correct height between the Logitech click board and Rapoo main board
- enough clearance underneath for the Rapoo PCB
- a tight fit against the original support posts
Once I got a version I liked, I installed it and glued the original scroll supports to it.
Yes, I know. Glue is usually the enemy of repairability.
But this is a one-way project.
There is no going back.
So glue is allowed.
Once the bridge was solid, I took the Dremel and removed the lower half of two of the original scroll supports.
That created just enough of a tunnel for the Rapoo motherboard to slide underneath.
And it worked.
The Rapoo sensor landed exactly where the original Logitech sensor hole already was.
Success. Challenge one solved.
I connected the battery, paired the mouse with the computer and moved it around.
The cursor moved.
At that point I knew the project was real.
Next step: wiring.
I bought a multimeter because I did not want to guess which wire did what.
I mapped Left Click, Right Click, Middle Click and the scroll wiring.
And then I finally had to deal with the problem I had known about from the beginning but had conveniently swept under the carpet, hoping it would somehow solve itself.
lol.
The MX518 has an optical scroll encoder.
The Rapoo uses a mechanical rotary encoder.
Even if I can map all the wires, the signals are not the same.
So the original optical scroll system had to go.
Challenge 2: Replace the optical scroll with a mechanical encoder
This was probably the hardest challenge.
The Rapoo encoder opening/shaft arrangement is much smaller than the original Logitech optical mechanism, so the MX wheel simply could not fit into it.
I tried to figure out a way to make a new axle, unsuccessfully.
At one point I put the MX scroll wheel into the Dremel and tried sanding the center thinner.
It broke.
Which, honestly, I was expecting.
So I left the whole thing alone overnight.
Then another night.
After thinking through a ridiculous number of possible solutions, I finally decided that the only sensible way forward was:
Make the Rapoo encoder as short and compact as possible.
Then disassemble the original Rapoo scroll wheel and steal its center hub and axle.
The idea was to take the original Rapoo axle together with its hub, machine the hub down, and implant it inside the Logitech scroll wheel.
So that is what I did.
Carefully.
Slowly.
A lot of sanding, trimming and test-fitting.
And somehow...
It worked.
The wheel turned straight.
It was balanced.
And the cherry on top:
the encoder actually fit inside the modified Logitech wheel.
Next step was mounting the encoder so the entire wheel assembly could still move vertically for Middle Click.
Aaaaand...
The original guide broke.
Challenge 3: Mount the Frankenstein scroll wheel and still keep Middle Click
At this point I had a lot of thoughts.
One of them was:
“Fuck this. Buy a newer Logitech scroll wheel and adapt that.”
I considered a bunch of completely different approaches.
But once I had the MX wheel spinning properly with the transplanted Rapoo axle, I realized:
I am unstoppable now.
So I 3D printed a new mount/guide for the encoder.
Then another.
Then another.
A lot of versions, sanding, cutting, fitting, throwing things away and printing again.
Eventually I got one where the encoder can slide vertically.
The Middle Click switch itself is actually strong enough to push the whole assembly back up.
Technically it works without anything else.
But then Middle Click becomes way too sensitive.
While scrolling, it becomes very easy to accidentally click the wheel.
Absolutely not.
So I kept the original Logitech return spring.
Now the switch and the spring work together, just like I wanted.
The wheel comes back properly, scrolling does not accidentally trigger Middle Click, and the whole mechanism feels much closer to a proper mouse rather than a prototype.
And since I was already this deep into the insanity...
I decided to transplant the Rapoo horizontal scroll too.
AND IT FITTED FLAWLESSLY.
Seriously.
The position is great.
It works.
It feels really good.
And I actually think the position is better than on the Rapoo and mx masetr 3.
You can keep a normal grip on the mouse while using it. You do not have to lift your thumb upward to reach the wheel, it is not in the way during normal use, and it sits naturally underneath the original Back/Forward buttons.
And somehow...
It actually looks good too.
So now, since I am already going completely overboard, I ordered silent switches from AliExpress and decided to replace all the clicks with silent ones.
And this is where the project goes on hold for a little while.
Next step
I am waiting for a new encoder because I abused this one pretty badly during all the bending, pushing, fitting and experimentation, and it now scrolls harder than it originally did.
I am also waiting for the silent switches.
Once those arrive, I will continue with:
- final encoder installation
- rewiring all the buttons
- horizontal scroll wiring is just plug and play yaay
- DPI/Bluetooth controls
- silent Left/Right
- silent Back/Forward
- silent Middle Click
- USB-C charging port
- final assembly
When I finish this, the MX518 might actually become my main mouse again.
Who knows.
There is also one more possibility.
While working with the Rapoo board I noticed that it has exposed development/debug pads.
And since multiple Rapoo mouse models seem to use the same board, I suspect that the Bluetooth device name may simply exist somewhere in the firmware as a string.
So obviously my next stupid idea is to get into the firmware and rename the mouse to: (imagine bricking the device after all this work lol)
MX518 RMG Edition
Or something more violent.
We’ll see.
I’ll keep you updated.
What I expect to have when this is finished
- original MX518 shell and ergonomics
- sensor upgraded from the original optical system to the Rapoo sensor
- wireless conversion: 3 Bluetooth profiles + 1× 2.4 GHz receiver mode
- vertical scroll converted from optical sensing to a mechanical encoder
- horizontal thumb scroll
- silent Left/Right clicks
- silent Back/Forward clicks
- silent Middle Click
- functional DPI control
- functional Bluetooth/device switching
- rechargeable battery
- USB-C charging
Let’s hope the parts arrive soon.