This release focuses on internal optimizations to enhance the firmware's performance, making it lighter, faster, and more reliable. These improvements not only result in a better user experience but also lay the groundwork for seamlessly integrating future features.
Changes
Wipe Device
Option on tools to wipe the device, permanently removing settings and stored encrypted mnemonics by erasing every single bit of user's flash space.
Better Deletion of Mnemonics Stored on SD card
When deleting an encrypted mnemonic from an SD card, Krux will now overwrite the memory area making it impossible to recover the previously stored data.
Save and Load Wallet Output Descriptor from SD card
Create or load from a wallet output descriptor file on an SD card. The backup file format is compatible with most coordinators.
Sign Messages at a Derived Bitcoin address
Sign messages from Sparrow and Specter, via QR code, also attesting a Bitcoin address belongs to you.
Reproducible Builds
To enhance the reproducibility of firmware builds, random variables such as file write timestamps have been removed from the build process. As a result, builds from developers' computers, those built within GitHub Actions from published code, and those you compile locally are more likely to be identical and have the same hash checksum as the official and beta releases. This change ensures greater consistency and traceability across all builds.
Add Entropy Quality Estimation for Mnemonic Creation.
Entropy quality estimators, like Shannon's entropy, were added to mnemonic generation through dice rolls and camera snapshot.
IRQ Interfaces
Button and touch presses are now detected by the application through IO interrupts. Meaning inputs events will be registered and handled even if they happened when other tasks were being executed by the processor, resulting in a better UX.
Restore Default Settings
Option to restore the device's settings to its factory state.
Optimized Settings Storage
Device's storage is now used more efficiently, data is stored less frequently, only in case a setting is changed from defaults.
Amigo's Power Manager Enhancements
The power management behavior for the Amigo device has been standardized. Previously, some devices would not wake up from shutdown or sleep mode. Now, these devices will fully shut down when the shutdown option is selected from the menu, and they will always power on when the power button is pressed for 1 second.
GUI Enhancements
Icons, information text boxes, and rounded shapes are now present at the GUI.
Mnemonic Numbers
To match the input options, export mnemonics as decimal, hexadecimal, or octal numbers. When loading from numbers, a new numbers confirmation screen was added.
Optimized QR codes
QR codes rendering is faster and uses less RAM.
Export QR Codes as Images to SD Card
Some QR codes can be exported as images to SD card.
Screensaver
Optional screensaver to reduce pixels' burn-in and grab the attention of the user when the device is left powered on.
Addresses Exploring
More receive and change addresses per page are shown on bigger screens.
Update Embit to version 0.7
Use the latest Embit release.
Maix Dock Simulator
Now Krux PC simulator can also run in Maix Dock mode, mimicking appearance and characteristics of the most DIY Krux device.
New Compatible Device - Yahboom
The Yahboom Aimotion K210 module, a compact touchscreen device, now has its first official firmware release.
Join Amigo IPS and Amigo TFT firmwares
Users will be able to flash a single firmware and change display settings if their device was shipped with a display different from standard TFT.
Other Small Fixes and Code Optimizations
Many other small fixes and optimizations under the hood.
Team Efforts
Collaboration: Many of the advancements in this release were made possible through team brainstorming sessions, mutual support, and code reviews. Contributors also prioritized tasks they deemed essential, leading to significant progress for the project.
Jean Do (@jdlcdl): Jean took an in-depth look at the Krux device's flash memory, leading to the development of tools that assess how settings and mnemonics are saved and deleted. This work resulted in firmware optimizations and new features like "Wipe Device," which enhance the usage and security of flash and SD cards.
Tadeu (@tadeubas): Tadeu introduced features such as a screensaver and the option to store wallet descriptors on an SD card. His contributions extend beyond these features, as he has also been instrumental in code reviews, project structure improvements, documentation enhancement, automation, creation and execution of tests, catching and fixing bugs.
Guilherme (@qlrd): Guilherme has made contributions to the project's structure and has undertaken the substantial task of translating the installer from JavaScript to Python. This change aims to improve security and compatibility with multiple operating systems and other Krux tools. He has several new features planned for the installer.
Community Engagement: Special thanks to @kkdao for managing Krux's social media accounts and Telegram groups. These platforms have been a source of many great ideas and improvements for the project.
Translation Contributions: We are grateful for the translation review contributions from @aglkm (Russian) and Willectre (Vietnamese), which help make Krux more accessible to a wider audience.
We appreciate the dedication and hard work of the entire Krux community in making this release