Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dreamcat4/538e8a4f641d02ec7f4b7e70b07e4443 to your computer and use it in GitHub Desktop.
Save dreamcat4/538e8a4f641d02ec7f4b7e70b07e4443 to your computer and use it in GitHub Desktop.
Finalmouse Starlight v1.2.5 Firmware Update - Instructions for Flashing on Linux or MacOS

Finalmouse Starlight v1.2.5 Firmware Update - Instructions for Flashing on Linux or MacOS

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.

DISCLAIMERS - MUST READ!

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

Download finalmouse starlight firmware, release 1.2.5

This is a zip file package FinalmouseFirmware.zip. Which finalmouse has chosen to distribute via google drive.

  • md5 checksum f4370b4ab8c8183356a878064f486786
  • sha1 hash f5819638cda0811eebc259ccdd7b64615208b462

Download link (full package `FinalmouseFirmware.zip):

https://drive.google.com/file/d/1vsQ7fr25SZe3ehmbOxmuLL4FQb_hDFXW/view

Download nrfutil for your specific operating system

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

Entering DFU Mode / Boot Mode / Flashing Mode

First practice putting your device into dfu boot mode / flashing mode so that you know what to expect before actually going ahead with flashing:

NOTE

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.

Steps

  1. bring up dmesg to see usb device hardware changes
$ sudo dmesg -w
  1. Disconnect the USB wireless receiver module from the PC

  2. Physically turn off the mouse itself, using the toggle switch on the bottom of the device

  3. 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')

  4. 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
  1. Look in your scrolling dmesg log above for the unix tty device name. It should be something like ttyACM0 or similar.

Flashing

  • 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!

Double Checking

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

Finishing up

  • 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

Further help and support

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment