Giter VIP home page Giter VIP logo

krux's Issues

QR code compatibilty

Are the QR codes supposed to be compatible with SeedSigner?
I did a couple of tests and I was not able to scan any SeedSigner generated QR code, this error message came up: Invalid mnemonic length

Add optional game of breakout to boot screen

On boot, a game of breakout starts where you need to get a certain score to "beat" the game and land on the Krux start menu.

Mostly a fun gimmick, but could maybe be useful in certain situations.

CMake Error when building the firmware

Thanks for this great project.

I am trying to build the firmware on a freshly installed Ubuntu system.
But CMake throws an error in Step 15/15 after vagrant ssh -c 'cd /vagrant; ./krux build-firmware':

-- builtin py dir: /src/MaixPy/projects/maixpy_m5stickv/builtin_py
-- [register component: micropython ], path:/src/MaixPy/components/micropython
CMake Error at /src/MaixPy/tools/cmake/compile.cmake:82 (message):
  Can not find port/src/speech/maix_asr/libmaix_asr.a or
  /src/MaixPy/components/micropython/port/src/speech/maix_asr/libmaix_asr.a
Call Stack (most recent call first):
  /src/MaixPy/components/micropython/CMakeLists.txt:564 (register_component)

Any idea what I'm missing here?

Set up CI/CD

There are a few things that should be run for every PR:

  • pylint (on the src, fonts, and i18n directories): This is currently 10/10, and I want to keep it that way
  • python i18n/i18n.py validate: This makes sure all translations are complete
  • Tests: Have to write these...
  • firmware build to make sure it doesn't get broken

On merge, mkdocs build will need to be run to keep the documentation site up to date.

I'll also need to write a script to cut releases, building firmware for every locale and signing them.

Add a Github Pages with better usage instructions / walkthrough examples

  • For wallet software to best read QR codes, hold the device 4-6 inches away from camera, tilt up or down slightly to reduce glare, and slowly move away and toward the camera.
  • To best read QR codes via the device's camera, hold the device just far enough away that the QR code takes up the entirety of the screen. If the code looks blurry and missing detail, the camera lens of the device can be focused by rotating it (with your fingertip) clockwise and counter-clockwise to achieve a clearer result. You should only have to do this the first time you use it.
  • You can now read in a receive address to verify that it's owned by the multsig to double-check that your desktop wallet software isn't lying to you

Migrate from MaixPy to MicroPython

Move away from Sipeed's custom MaixPy fork of MicroPython so that the project won't be so tightly tied to the M5StickV / M5Stack.

The longer-term goal here is to move Krux toward platform independence so that eventually it could run on any of MicroPython's supported architectures

EDIT: I think there are two ways to approach this: 1) add shims to ports to give them a "maixpy-like" set of modules that Krux can use, or 2) find a way to add shims to MaixPy so that Krux code can be rewritten to rely on standard micropython modules.

github permission errors

hello and great looking project!

when i try to run the first command on a linux OS i get many git@github permission denied errors when it tries to clone each submodule.

when i searched what to do it suggests creating an SSH key for my github account, but i don't understand what that has to do with your repo - apologies for my ignorance!

Q: What is being imported _back_ into Krux from the wallet "coordinator"?

[This is not so much an issue as a question - I couldn't find a reference to any Krux discussion forum where I could ask it. BTW, if you don't have one yet I suggest starting a channel on Telegram which is where the SeedSigner / ColdCard / Raspiblitz / Specter / Sparrow and other projects hang out.]

The single-sig instructions (for Specter) proceed as follows: Create mnemonic, export to wallet coordinator via QR, then export from wallet coordinator back to Krux via QR. Question is: What is being moved back to the Krux that it doesn't already know from the mnemonic?

Add development/debugging instructions to README

After flashing the firmware and loading an SD card into the device, make sure to run vagrant halt to free the USB device, then run screen /dev/usbttydevicename 115200 for a live serial connection to see the output of print statements and/or drop into a python repl with Ctrl-C.

Add option to generate mnemonic from camera feed

It looks like SeedSigner does this, and it seems like a promising way to generate a mnemonic that is random if done right.

Will need to brush up on my stats knowledge, but here's my initial rough plan:

I'm thinking you would calculate entropy from the images using Shannon's formula and display to the user a progress bar / percent until enough entropy is collected. Once you have good/enough entropy, the words (numbers, really) are generated and then a Chi-squared test is performed on the generated words as a sanity check.

May want to also use a similarity function to compare the images and reject "duplicates" so that the user is forced to move the camera around?

Add support for upgrading firmware via microSD card

Two motivators here:

  1. Extra security for people wishing to verify the only data ever transmitted to the device comes from the card, and
  2. Potentially more convenient update process if both firmware and software can live on one card

Since the default firmware included with M5StickV has support for loading an arbitrary boot.py file it finds, it may be possible to exploit this in order to perform the initial firmware change via this mechanism as well.

Improve German translation

I used a translation app to make the German translation, so I'm sure it's terrible. If you know German, please improve it!

Add localizations

Krux has support for different languages. If it's missing a language or has an awkward translation, please file an issue or make a PR! Below is the current list of translations along with ones we would like to see added:

  • Vietnamese - #64
  • Spanish - #53
  • French - #41
  • German - #36
  • Esperanto
  • Romanian
  • Igbo
  • Czech
  • Tagalog
  • Swedish
  • Portuguese - #119
  • Polish
  • Italian

Testing on Manjaro OS vs MacOS

I tried to get through the commands on the Manjaro OS and it was fine for building and flashing, but with the microSD section and the ./krux flash-software /Volumes/SD command, it does not copy over the necessary files properly. The contents are the same as what is in the Krux directory.

When I try with MacOS it copies over the necessary python files and directories, and this time when the microSD is loaded into the device it boots successfully.

I have not tested with more popular linux OS's like Ubuntu, PopOS, etc., but hopefully it's not an issue there as well otherwise that might be deterring folks from getting started with Krux because some who uses a linux OS mainly may not have a Mac handy.

Add "printer" implementations that output gcode

This would allow people with CNC machines to mill their QR codes out of wood or steel.

Consider adding two "printers" to choose from:

  • gcode.FilePrinter - Outputs gcode to a .ngc file on a microSD card

  • gcode.GRBLPrinter - Streams gcode to a grbl controller over serial port connection

Change "Check Address" to "Scan Address"

Right now, Check Address scans a QR code of a bitcoin address and begins deriving addresses of the current wallet to look for a match. If it finds a match, it displays the QR code.

I want to tweak this behavior so that it instead:

  1. Verifies it has scanned in a bitcoin address
  2. Immediately generates a QR that is displayed back, along with the (text) address. If you have a printer attached, you could print it on the follow-up screen per usual.
  3. After clicking through, you are asked if you want to check if the address belongs to your wallet, and then the existing check logic is performed.

With this slight change, Krux could act as an intermediary if you wanted to send funds to an address you don't own and would prefer to scan a QR code rather than copy-paste or type out an address on the computer/phone running the wallet coordinator. Scan a QR with Krux, display it back to the coordinator, make a transaction, sign.

This would also let you print copies of arbitrary bitcoin addresses. What could this be used for? Who knows...

Single-key wallet support

Arguments for and against? Leaving this open for comments / reactions to get a feel for how many people would want this added or not.

MaixPy should be a submodule

Copying code in makes code review hard as now the reviewer also has check where that copied code came from and if it was modified. #39 sounds like this issue might be resolved by removal of the code but anyway, for a Bitcoin wallet code auditability is key.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.