Skip to content

Commit

Permalink
Merge branch 'integrated_changes' of github.com:selfcustody/krux into…
Browse files Browse the repository at this point in the history
… bugfixes-review
  • Loading branch information
tadeubas committed Nov 20, 2023
2 parents 2109ac2 + 8f70e62 commit ae26cc5
Show file tree
Hide file tree
Showing 90 changed files with 4,554 additions and 1,916 deletions.
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
# Changelog 24.04.beta8 - November 20, 2023

## Changes

### IRQ Interfaces
Button and touch presses will be detected by the application through IO interrupts. Meaning inputs events will be registered even if other tasks are being executed by the processor, resulting in a better UX.

### Restore default settings
Option to restore the device's settings to its factory state.

### Wipe device
Option on settings to wipe the device, permanently removing settings and stored encrypted mnemonics by erasing every single bit of user's flash space.

### Screensaver
Optional screensaver to reduce pixels' burn-in and grab attention of the user when the device is left powered on.

### Update Embit to version 0.7
Use latest Embit release

### Optimized QR codes
QR codes rendering is faster and uses less RAM

### Export Mnemonic Numbers
To match the input options, export mnemonics as decimal, hexadecimal or octal numbers

### Export QR codes as images to SD Card
Some QR codes can be exported as images to SD card


# Version 23.09.1 - November 18, 2023
This release contain bugfixes:

Expand Down
5 changes: 4 additions & 1 deletion docs/faq.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,7 @@ If after flashing `maixpy_amigo_tft` to your device you notice that the buttons
Starting from version 23.09.0, Krux supports SD card hot plugging. If you are using older versions, it may only detect the SD card at boot, so make sure Krux is turned off when inserting the microSD into it. To test the card compatibility use Krux [Tools>Check SD Card](getting-started/features/tools.md/#check-sd-card).
Make sure the SD card is using MBR/DOS partition table and FAT32 format.

Here is some [supported microSD cards](https://github.com/m5stack/m5-docs/blob/master/docs/en/core/m5stickv.md#tf-cardmicrosd-test), and here is the MaixPy FAQ explaining [Why my micro SD card cannot be read](https://wiki.sipeed.com/soft/maixpy/en/others/maixpy_faq.html#Micro-SD-card-cannot-be-read).
Here is some [supported microSD cards](https://github.com/m5stack/m5-docs/blob/master/docs/en/core/m5stickv.md#tf-cardmicrosd-test), and here is the MaixPy FAQ explaining [Why my micro SD card cannot be read](https://wiki.sipeed.com/soft/maixpy/en/others/maixpy_faq.html#Micro-SD-card-cannot-be-read).

## Why insert an SD card into my device? What is it for? Does it save something?
SD card use is optional, most people use Krux only with QR codes. But you can use SD card to to upgrade the firmware, save settings, cnc/file, QR codes, XPUBs, encrypted mnemonics, and to save and load PSBTs, messages and wallet output descriptors.
9 changes: 7 additions & 2 deletions docs/getting-started/usage/generating-a-mnemonic.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,13 @@ Note: For 12-word mnemonics, only the first half of the SHA256 hash is used (128

<div style="clear: both"></div>

### How to verify

Don't trust, verify. We encourage you not to trust any claim you cannot verify yourself. Therefore, there are wallets that use compatible algorithms to calculate the entropy derived from dice rolls. You can use the [SeedSigner](https://seedsigner.com/) or Coldcard hardware wallets, or even the [Bitcoiner Guide website](https://bitcoiner.guide/seed/), they share the same logic that Krux uses and will give the same mnemonic.

## Alternatives
See [here](https://vault12.com/securemycrypto/cryptocurrency-security-how-to/seed-phrase-creation/) for good methods to generate a mnemonic manually, or visit [Ian Coleman's BIP-39 Tool](https://iancoleman.io/bip39/) offline or on an airgapped device to generate one automatically.

It's worth noting that Ian's tool is able to take a mnemonic and generate a QR code that Krux can read in via the QR input method mentioned on the next page.
You can use any other offline airgapped devices to generate your mnemonic. If you want to use a regular PC, a common strategy is to boot the PC using [Tails](https://tails.boum.org/) from a USB stick, without connecting the device to the internet, and then use a copy of the the [Bitcoiner Guide website](https://bitcoiner.guide/seed/) or even [Ian Coleman's BIP-39 Tool](https://iancoleman.io/bip39/). It's worth noting that both generate a QR code that Krux can read via the QR input method mentioned on the next page (Loading a Mnemonic).

See [here](https://vault12.com/securemycrypto/cryptocurrency-security-how-to/seed-phrase-creation/) for other good methods to generate a mnemonic manually.

2 changes: 1 addition & 1 deletion docs/getting-started/usage/navigating-the-main-menu.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ The encrypted mnemonic will be converted to a QR code. When you scan this QR cod
<img src="../../../img/maixpy_m5stickv/extended-public-key-wsh-xpub-text-125.png" align="right">
<img src="../../../img/maixpy_amigo_tft/extended-public-key-wsh-xpub-text-150.png" align="right">

This option displays your master extended public key (xpub) as text as well as a QR code.
This option displays your master extended public key (xpub) as text as well as a QR code. The extended public key (xpub) can also be stored on a SD card if available.

After the xpub, a zpub or Zpub is shown depending on if a single-sig or multisig wallet was chosen. This z/Zpub is usually not necessary unless you are using a wallet coordinator that either cannot parse or ignores [key origin information in key expressions](https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki#Key_Expressions).

Expand Down
2 changes: 1 addition & 1 deletion firmware/MaixPy
4 changes: 2 additions & 2 deletions firmware/font/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ Krux uses a [custom fork](https://github.com/bachan/terminus-font-vietnamese) of
To rebuild the font for all devices, run:
```
./bdftokff.sh ter-u14n 8 14 > m5stickv.kff
./bdftokff.sh ter-u16n 8 16 > bit_dock.kff
./bdftokff.sh ter-u16n 8 16 > bit_dock_yahboom.kff
./bdftokff.sh ter-u24b 12 24 > amigo.kff
```

Once you have a `.kff` file, locate the project that you want to use the updated font under `firmware/MaixPy/projects/` (`maixpy_amigo_tft/` for ex.), open its `compile/overrides/components/micropython/port/src/omv/img/font.c` file and replace the array contents in the `unicode` variable with the byte array found within the `.kff` file, then rebuild the firmware.
Once you have `.kff` files, for each project that you want to use the updated fonts, edit `../MaixPy/projects/*/compile/overrides/components/micropython/port/src/omv/img/font.c` (substituting `maixpy_amigo_tft` for `*` if only for an amigo) and replace the array contents in the `unicode` variable with the byte array found within the appropriate `.kff` file, then rebuild the firmware.

# How it works
Krux uses bitmap fonts that are custom-built for each device it runs on. The format that the firmware expects fonts to be in is a custom format referred to as "krux font format," or `.kff`.
Expand Down
8 changes: 4 additions & 4 deletions i18n/translations/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
"Anti-glare disabled": "Blendschutz deaktiviert",
"Anti-glare enabled": "Blendschutz aktiviert",
"Are you sure?": "Bist Du sicher?",
"BIP39 Mnemonic": "BIP39 Mnemonic",
"Back": "Zurück",
"Backing up bootloader..\n\n%d%%": "Bootloader wird gesichert..\n\n%d%%",
"Bad signature": "Ungültige Signatur",
Expand Down Expand Up @@ -49,6 +48,7 @@
"Cut Method": "Cut-Methode",
"Decimal": "Dezimal",
"Decrypt?": "Entschlüsseln?",
"Delete %s?": "Löschen %s?",
"Delete File?": "Datei löschen?",
"Delete Mnemonic": "Mnemonic löschen",
"Depth Per Pass": "Tiefe pro Durchgang",
Expand Down Expand Up @@ -94,11 +94,10 @@
"GRBL": "GRBL",
"Give this mnemonic a custom ID? Otherwise current fingerprint will be used": "Dieser Mnemonic eine benutzerdefinierte ID zuteilen? Andernfalls wird der aktuelle Fingerabdruck verwendet",
"Go": "Go",
"Heat Interval": "Wärmeintervall",
"Heat Time": "Hitzezeit",
"Hex Public Key": "Hex öffentlicher Schlüssel",
"Hexadecimal": "Hexadezimal",
"ID already exists\n": "ID existiert bereits\n",
"Incomplete output descriptor": "Unvollständiger Ausgabedeskriptor",
"Inputs (%d): ": "Input (%d): ",
"Invalid address": "Ungültige Adresse",
"Invalid bootloader": "Ungültiger Bootloader",
Expand Down Expand Up @@ -199,6 +198,7 @@
"Signed PSBT": "Signierte PSBT",
"Single-sig": "Single-Sig",
"Size: ": "Größe: ",
"Some checks cannot be performed.": "Einige Schecks können nicht durchgeführt werden.",
"Spend (%d): ": "Ausgabe (%d): ",
"Stackbit 1248": "Stackbit 1248",
"Store on Flash": "Auf Flash speichern",
Expand Down Expand Up @@ -235,7 +235,7 @@
"Wallet output descriptor": "Wallet Ausgabedeskriptor",
"Wallet output descriptor loaded!": "Wallet Ausgabedeskriptor geladen!",
"Wallet output descriptor not found.": "Wallet Ausgabedeskriptor nicht gefunden.",
"Warning:\nIncomplete output descriptor": "Warnung:\nUnvollständiger Ausgabedeskriptor",
"Warning:": "Warnung:",
"Word %d": "Wort %d",
"Word Numbers": "Wortnummern",
"Words": "Wörter",
Expand Down
8 changes: 4 additions & 4 deletions i18n/translations/es-MX.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
"Anti-glare disabled": "Antideslumbrante desactivado",
"Anti-glare enabled": "Antideslumbrante habilitado",
"Are you sure?": "¿Estas seguro?",
"BIP39 Mnemonic": "BIP39 Mnemónico",
"Back": "Atrás",
"Backing up bootloader..\n\n%d%%": "Copia de seguridad del cargador de arranque..\n\n%d%%",
"Bad signature": "Mala asignatura",
Expand Down Expand Up @@ -49,6 +48,7 @@
"Cut Method": "Método de corte",
"Decimal": "Decimal",
"Decrypt?": "Descifrar?",
"Delete %s?": "Eliminar %s?",
"Delete File?": "¿Borrar archivo?",
"Delete Mnemonic": "Eliminar mnemónico",
"Depth Per Pass": "Profundidad por pasada",
Expand Down Expand Up @@ -94,11 +94,10 @@
"GRBL": "GRBL",
"Give this mnemonic a custom ID? Otherwise current fingerprint will be used": "¿Darle a este mnemónico una identificación personalizada?De lo contrario se utilizará la huella digital actual",
"Go": "Ir",
"Heat Interval": "Intervalo de calor",
"Heat Time": "Tiempo de calor",
"Hex Public Key": "Clave pública hexadecimal",
"Hexadecimal": "Hexadecimal",
"ID already exists\n": "ID ya existe\n",
"Incomplete output descriptor": "Descriptor incompleto",
"Inputs (%d): ": "Entradas (%d): ",
"Invalid address": "Dirección inválida",
"Invalid bootloader": "Cargador de arranque inválido",
Expand Down Expand Up @@ -199,6 +198,7 @@
"Signed PSBT": "PSBT firmado",
"Single-sig": "Single-sig",
"Size: ": "Espacio: ",
"Some checks cannot be performed.": "No se pueden realizar algunos cheques.",
"Spend (%d): ": "Gastos (%d): ",
"Stackbit 1248": "Stackbit 1248",
"Store on Flash": "Almacenar en flash",
Expand Down Expand Up @@ -235,7 +235,7 @@
"Wallet output descriptor": "Descriptor de salida de billetera",
"Wallet output descriptor loaded!": "¡Se ha cargado el descriptor de salida de la cartera!",
"Wallet output descriptor not found.": "No se encontró el descriptor de salida de la cartera.",
"Warning:\nIncomplete output descriptor": "Advertencia:\nDescriptor de salida incompleto",
"Warning:": "Advertencia:",
"Word %d": "Palabra %d",
"Word Numbers": "Números de palabra",
"Words": "Palabras",
Expand Down
10 changes: 5 additions & 5 deletions i18n/translations/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
"Anti-glare disabled": "Anti-éblouissement désactivé",
"Anti-glare enabled": "Anti-éblouissement activé",
"Are you sure?": "Es-tu sûr?",
"BIP39 Mnemonic": "BIP39 Mnémonique",
"Back": "Retour",
"Backing up bootloader..\n\n%d%%": "Sauvegarde du chargeur de démarrage..\n\n%d%%",
"Bad signature": "Mauvaise signature",
Expand Down Expand Up @@ -49,6 +48,7 @@
"Cut Method": "Méthode de coupe",
"Decimal": "Décimal",
"Decrypt?": "Décrypter?",
"Delete %s?": "Supprimer %s?",
"Delete File?": "Supprimer le fichier?",
"Delete Mnemonic": "Supprimer mnémonique",
"Depth Per Pass": "Profondeur par passage",
Expand Down Expand Up @@ -94,11 +94,10 @@
"GRBL": "GRBL",
"Give this mnemonic a custom ID? Otherwise current fingerprint will be used": "Donnez à ce mnémonique un identifiant personnalisé?Sinon l'empreinte actuelle sera utilisée",
"Go": "Go",
"Heat Interval": "Intervalle de chauffe",
"Heat Time": "Temps de chauffe",
"Hex Public Key": "Clé public hexadécimal",
"Hexadecimal": "Hexadécimal",
"ID already exists\n": "Id existe déjà\n",
"Incomplete output descriptor": "Descripteur de sortie incomplet",
"Inputs (%d): ": "Entrées (%d) : ",
"Invalid address": "Adresse invalide",
"Invalid bootloader": "Chargeur de démarrage invalide",
Expand Down Expand Up @@ -199,6 +198,7 @@
"Signed PSBT": "PSBT signé",
"Single-sig": "Clé unique",
"Size: ": "Capacité: ",
"Some checks cannot be performed.": "Certains chèques ne peuvent pas être effectués.",
"Spend (%d): ": "Dépense (%d) : ",
"Stackbit 1248": "Stackbit 1248",
"Store on Flash": "Stocker sur flash",
Expand All @@ -225,7 +225,7 @@
"Use camera's entropy to create a new mnemonic": "Utilisez l'entropie de la caméra pour créer un nouveau mnémonique",
"Used: ": "Utilisé: ",
"Value %s out of range: [%s, %s]": "Valeur %s hors de portée: [%s, %s]",
"Value must be multiple of %s": "La valeur doit être multiple de %s",
"Value must be multiple of %s": "La valeur doit être un multiple de %s",
"Via Camera": "Par caméra",
"Via D20": "Via D20",
"Via D6": "Via D6",
Expand All @@ -235,7 +235,7 @@
"Wallet output descriptor": "Descripteur de sortie du portefeuille",
"Wallet output descriptor loaded!": "Descripteur de sortie du portefeuille chargé!",
"Wallet output descriptor not found.": "Descripteur de sortie du portefeuille introuvable.",
"Warning:\nIncomplete output descriptor": "Attention:\nDescripteur de sortie incomplet",
"Warning:": "Avertissement:",
"Word %d": "Mot %d",
"Word Numbers": "Numéros de mots",
"Words": "Mots",
Expand Down
8 changes: 4 additions & 4 deletions i18n/translations/nl-NL.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
"Anti-glare disabled": "Anti reflecterend uitgeschakeld",
"Anti-glare enabled": "Anti reflecterend ingeschakeld",
"Are you sure?": "Weet je het zeker?",
"BIP39 Mnemonic": "BIP-39 geheugensteun",
"Back": "Terug",
"Backing up bootloader..\n\n%d%%": "Backup van de bootloader...\n\n%d%%",
"Bad signature": "Ongeldige handtekening",
Expand Down Expand Up @@ -49,6 +48,7 @@
"Cut Method": "Snijmethode",
"Decimal": "Decimaal",
"Decrypt?": "Ontsleutelen?",
"Delete %s?": "Verwijderen %s?",
"Delete File?": "Bestand verwijderen?",
"Delete Mnemonic": "Geheugensteun verwijderen",
"Depth Per Pass": "Diepte per pas",
Expand Down Expand Up @@ -94,11 +94,10 @@
"GRBL": "GRBL",
"Give this mnemonic a custom ID? Otherwise current fingerprint will be used": "Eigen ID gebruiken voor geheugensteun? Anders vingerafdruk gebruiken",
"Go": "Ga",
"Heat Interval": "Warmte interval",
"Heat Time": "Warmte tijd",
"Hex Public Key": "Hex publieke sleutel",
"Hexadecimal": "Hexadecimaal",
"ID already exists\n": "ID bestaat al\n",
"Incomplete output descriptor": "Incomplete portemonnee descriptor",
"Inputs (%d): ": "Invoer (%d): ",
"Invalid address": "Ongeldig adres",
"Invalid bootloader": "Ongeldige bootloader",
Expand Down Expand Up @@ -199,6 +198,7 @@
"Signed PSBT": "PSBT ondertekend",
"Single-sig": "Enkele sleutel",
"Size: ": "Grootte: ",
"Some checks cannot be performed.": "Sommige controles kunnen niet worden uitgevoerd.",
"Spend (%d): ": "Uitgaven (%d): ",
"Stackbit 1248": "Stackbit 1248",
"Store on Flash": "Opslaan op apparaat",
Expand Down Expand Up @@ -235,7 +235,7 @@
"Wallet output descriptor": "Portemonnee descriptor",
"Wallet output descriptor loaded!": "Portemonnee descriptor geladen!",
"Wallet output descriptor not found.": "Portemonnee descriptor niet gevonden.",
"Warning:\nIncomplete output descriptor": "Waarschuwing:\nIncomplete portemonnee descriptor",
"Warning:": "Waarschuwing:",
"Word %d": "Woord %d",
"Word Numbers": "Woord nummers",
"Words": "Woorden",
Expand Down
Loading

0 comments on commit ae26cc5

Please sign in to comment.