Unfortunately the official FinalMouse firmware update instructions only cover Windows operating system! So what to do then? Not on windows? Then this page is for you.
Unofficial flashing instructions, these were not officially written or endorsed by the Finalmouse Team. Or representatives of Finalmouse. So please proceed with a greater level of care. And please be aware of the possible risks when flashing. You can brick your device should something go wrong. Be aware that (at their own discretion) Finalmouse may not warrant any subsequent problems or issues arising from following these instructions! Many thanks for your understanding :)
Having said all that, this flashing process seems to be reasonably safe. This is mainly because Finalmouse uses a pretty standard / stock looking MCU from nordic semiconductor. (at least to the extent that it matters for flashing). Since I have checked and verified that they are in fact using a completely stock and unaltered the newest version of the Nordic nrftul
program for flashing. Which is v6.1.3 at the time of writing (vor flashing this v1.2.5 firmware), and the same exact nrfutil
is publically available over on Nordics official github.
- It was tested here on ubuntu linux 21.04 ONLY
- However it should work just as well on pretty much any other modern version of linux
- The target device flashed was a starlight-12 phantom
- It was flashed directly with the
v1.2.5
firmware. And this was the first time it was ever flashed (since factory)
For Mac users: It should be possible to generally follow these same instructions MacOS too, and expect similar results. Although for the serial com port, the mouse might appear differently, with a different looking device name
Must also stress that this was tested only on an x86
amd64
based little endian architecture machine. And I take no responsibility for any possible failures or misuse of the flashing tool nrfutil
by NordicSemiconductor...
For example: if you are flashing on a NON x86
based architecture (such as an arm based raspberry pi / rpi, or on a newer mac with Apple M1 chip). Then although it should work just fine you probably should first double check (over on Nordics github) to be certain that those other architectures (being of a different native endian byte order), that they will also flash OK and work fine with nrfutil
, that the tool is known to be fully compatible with those other types of machines on the host side (who are doing the flashing). Not to be swapping the expected byte order over when flashing etc.
That is being a bit paranoid BTW, it is normally something already epected and known matter. Which should be accomodated for in the flashing tool. Just simply cannot assure those things which i have not tested here myself. And this would be an example of that. So do your homework! If you are deviating from the above already known and tested hardware spec. And please leave a comment at the bottom of the page if you have anything worth reporting
This is a zip file package FinalmouseFirmware.zip
. Which finalmouse has chosen to distribute via google drive.
md5
checksumf4370b4ab8c8183356a878064f486786
sha1
hashf5819638cda0811eebc259ccdd7b64615208b462
Download link (full package `FinalmouseFirmware.zip):
https://drive.google.com/file/d/1vsQ7fr25SZe3ehmbOxmuLL4FQb_hDFXW/view
The finalmouse firmware package v1.2.5 comes with a stock nrfutil.exe v6.1.3 (for windows only)
It has the same md5sum as the official version, which can be downloaded from github release page here:
https://github.com/NordicSemiconductor/pc-nrfutil/releases/tag/v6.1.3
So if you are not on windows, the you will need to download yourself (or compile) version v6.1.3
(or higher) of nrfutil
, that will work on your specific operating system.
If you are on an non-standard or a-typical hardware platform, then please also be sure to read fully the discalimers section (above) at the very top of this document. If in doubt, check with others online, for example on the issues tracker for nrfutil
First practice putting your device into dfu boot mode / flashing mode so that you know what to expect before actually going ahead with flashing:
Be aware that once plugged in, the mouse will only stay in boot mode / flashing mode for exactly 2min 0s (120 seconds). After that time window has ellapsed, the mouse will then automatically exit from boot mode / flashing mode. And continue booting normally into regular usb attached mouse mode. You will know this has ellapsed when the LED changes color from white / blue / purple (flashing mode), to red / green (normal mode).
If you missed this 2 minute window of opportunity to flash the device, then you will need to repeat steps 4. and 5a only.
- bring up dmesg to see usb device hardware changes
$ sudo dmesg -w
-
Disconnect the USB wireless receiver module from the PC
-
Physically turn off the mouse itself, using the toggle switch on the bottom of the device
-
Hold DPI and Middle Mouse click down, then plug in the mouse to the PC Ensure that you are using a regular micro USB data cable (that is not for 'power only')
-
Check that you have successfully booted the mouse into programming / flashing mode:
5.a. The LED in the starlight mouse should slowly flash in a white / blue / purple color
5.b. Immediately upon plugging in the mouse, the lines printed out on the background running 'dmesg -w' command should include the following lines:
[403678.692548] usb 1-13: Product: Secure Updater
[403678.692548] usb 1-13: Manufacturer: Finalmouse
[403678.692549] usb 1-13: SericalcalNumber: FCxxxxxxxxxx
[403678.704853] cdc_acm 1-13:1.0: ttyACM0: USB ACM device
[403678.704929] usbcore: registered new interface driver cdc_acm
[403678.704931] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
- Look in your scrolling dmesg log above for the unix tty device name.
It should be something like
ttyACM0
or similar.
- Given the result from step 5b. (above). If the serial device appears as
ttyACM0
- Then your linux cmdline (to actually flash the device) should look something like this:
$ ./nrfutil-linux.1 dfu usb-serial -pkg fm6_dfu_package_1.2.5.zip -p /dev/ttyACM0 -b 115200
You will know that flashing has worked because the terminal should output something like this:
$ nrfutil dfu usb-serial -pkg fm6_dfu_package_1.2.5.zip -p /dev/ttyACM0 -b 115200
[####################################] 100%
Device programmed.
And then after another 2 minutes (approx), the mouse should continue to boot up normally, so the LED inside of the mouse should change to a green color. Flashing Complete!
How to check the new firmware verison:
-
Plug and unplug the mouse into the USB port normally
-
You should see the following line somethere in the recent latest
dmesg
output:[405635.188171] usb 1-13: New USB device found, idVendor=1915, idProduct=f6b1, bcdDevice= 1.25
-
Where:
bcdDevice= 1.25
is the current firmware version that the device is reporting -
used to be
1.20
before (for me), from the factory firmware on the starlight phantom
- Disconnect from USB cable
- Close dmesg
- Plug the wireless dongle back in for the wireless mode
- And flick the power switch back to 'on' position, on the bottom of the mouse
- Check functionality, that mouse is behaving as expected
- Start using it again normally
For support of nrfutil
flashing program, please refer to their github:
For support of the finalmouse starlight itself, please use the Finalmouse discord:
For matters specific to the instructions on this page (multi-platform flashing of finalmouse), then please also make use of the comments section below on this page.
Thank you