Original release notes
Mandatory upgrade
This is a mandatory upgrade for all Specter-DIY users.
v1.10.3 rotates the release signing keys (Ben removed, k9ert added) and ships an updated bootloader that embeds the new key set. Future releases will be signed with the new keys and cannot be installed on devices still running v1.9.0 or earlier - the old bootloader does not recognise the new signing keys and will reject the upgrade with Not enough signatures.
If you skip this release, your device will be stranded on v1.9.0: no further over-the-air (SD-card) upgrades will be possible, and re-flashing via JTAG with a newer initial_firmware.bin will be the only way forward.
Install v1.10.3 now to keep your device upgradable.
Release notes
- feat: Add shield lite by @3rdIteration in https://github.com/cryptoadvance/specter-diy/pull/310
- feat: Add M3Y scanner by @tadeubas in https://github.com/cryptoadvance/specter-diy/pull/335
- feat: Add bootloader to upgrade binary by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/323
- feat: Show Transaction Version, Locktime and inputs' sequences when signing transactions by @oren-z0 in https://github.com/cryptoadvance/specter-diy/pull/321
- feat: Expand detection of possible multisig descriptors & add data input parsing CI tests by @3rdIteration in https://github.com/cryptoadvance/specter-diy/pull/301
- feat: Fix for newer GM65 Scanners scanning CompactSeedQR + add "About Screen" by @3rdIteration in https://github.com/cryptoadvance/specter-diy/pull/299
- feat: Change button text from 'Enter BIP-39 password' to 'Enter passphrase' by @Schnuartz in https://github.com/cryptoadvance/specter-diy/pull/327
- fix: macos build by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/325
- fix: import issues by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/332
- fix: Hide disabled QR scanner in recovery phrase import menu (#329) by @Azzbo77 in https://github.com/cryptoadvance/specter-diy/pull/338
- docs: Build docco additions by @3rdIteration in https://github.com/cryptoadvance/specter-diy/pull/311
- docs: fix grammar and update LVGL library name by @al-munazzim in https://github.com/cryptoadvance/specter-diy/pull/342
- docs: minor comment cleanups by @al-munazzim in https://github.com/cryptoadvance/specter-diy/pull/343
- build: Update build firmware.sh to add no-bootloader build by default by @3rdIteration in https://github.com/cryptoadvance/specter-diy/pull/315
- build: Add support for selecting and combining build actions by @tadeubas in https://github.com/cryptoadvance/specter-diy/pull/333
- ci: Get build back to work and some CI by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/307
- chore: Remove ben and add k9ert keys for releasing by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/306
- chore: Update bootloader submodule to latest by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/350
- chore: prepare release by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/340
- chore: Bump firmware version to v1.10.1 by @miketlk in https://github.com/cryptoadvance/specter-diy/pull/346
- chore: Bump firmware version to v1.10.3 by @k9ert in https://github.com/cryptoadvance/specter-diy/pull/351
Upgrade process
Reminder: this is a mandatory upgrade going forward. See the warning above.
Copy specter_upgrade_v1.10.3.bin to the SD card and insert it into the device. The bootloader will check the signatures of the upgrade file and update the firmware.
Flashing on empty board
If your discovery board is empty or you have a very old firmware (below 1.4.0) - connect your board over miniUSB with power jumper set to STLK and copy-paste initial_firmware_v1.10.3.bin file to the mounted drive.
If you have problems flashing initial firmware consider using stlink-tools. A command to flash firmware:
st-flash write path/to/initial_firmware.bin 0x8000000
If you want to use self-signed bootloader and firmware check out the instructions in the bootloader repo
sha256.signed.txt contains the sha256 hashes of the firmware binary files, GPG-signed with the "Specter Signer 2026" key.
Fingerprint: 9DC3 3CA8 3058 9DE3 B322 5C26 EEF5 756B 2EA4 2349
Get the public key from the Ubuntu keyserver:
Note: This release introduces updated release signing keys. The previous release (v1.9.0) was signed with a different GPG key; the upgrade-binary signatures have also rotated (ben removed, k9ert added). The bootloader shipped in this upgrade contains the new signing keys, so future upgrades must be signed with the new key set.
Reproducible build
You can build binaries identical to the ones in this release yourself. Follow this instruction, when the build is almost complete the script will output a message for signing and ask you for the signatures.
Verify that upgrade message is:
b1.0.2-1.10.3-1zucdggdy53lf3uzhdn7l8wetyn0a5l3zmfynqcgswszdmm2g2upqwg9f3u
Add first signature:
IM7RNMYcQkRJT36seFzjNJP2/3s0XL5WUbxrZNTPMf9zUnHxGrKH5djLDNvVqqs1xV+X4NmixnI2+BccKnkclAs=
Add second signature:
IJz6xxu9tXionFKsfPw3W3UVMJ/i52oacPPXMKfNAaeueJBvjRfTNakUHNF25T0EeblzcDLap63kb7EUAfEKpYw=
Then hit enter and check that sha256.txt has the same hashes as in sha256.signed.txt file.
New Contributors
- @3rdIteration made their first contribution in https://github.com/cryptoadvance/specter-diy/pull/311
- @Schnuartz made their first contribution in https://github.com/cryptoadvance/specter-diy/pull/327
- @tadeubas made their first contribution in https://github.com/cryptoadvance/specter-diy/pull/333
- @oren-z0 made their first contribution in https://github.com/cryptoadvance/specter-diy/pull/321
- @Azzbo77 made their first contribution in https://github.com/cryptoadvance/specter-diy/pull/338
- @al-munazzim made their first contribution in https://github.com/cryptoadvance/specter-diy/pull/342
Full Changelog: https://github.com/cryptoadvance/specter-diy/compare/v1.9.0...v1.10.3


