Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
SeedSigner committed Jan 15, 2021
1 parent 6ae6309 commit 3e0b7f1
Showing 1 changed file with 63 additions and 22 deletions.
85 changes: 63 additions & 22 deletions README.md
@@ -1,33 +1,59 @@
Hello World!

Here is a simple program to calculate the word 24 checksum from the first 23 words of a bitcoin wallet seed phrase!

(Newest Feature: Generate a seed phrase with entropy from rolled dice)

![Image of SeedSigner running on a Raspberry Pi Zero](https://github.com/SeedSigner/seedsigner/blob/main/Assembled_SeedSigner.JPG)

More functionality will be added over time, but for now you can calculate word 24 on a very low-cost system without wireless capability -- no need to worry about bluetooth, airplane mode, web caching, etc. etc.

The code is designed to ultimately be run on a Raspberry Pi Zero (version 1.3 with no wireless capability) with a Waveshare 1.3" 240x240 pxl LCD (more info at https://www.waveshare.com/wiki/1.3inch_LCD_HAT).

The easiest way to get it up and running is to install using an internet-connected Raspberry Pi 2/3/4 or Zero W, and then remove the MicroSD card and install it in the Raspberry Pi Zero 1.3 with the Waveshare 1.3" LCD hat installed. Seedsigner will run when the Zero 1.3 is powered on, and a soft shutdown of the Pi can be done within the interface.

A preconfigured Raspberry Pi image can be found in the releases section. Download the seedsigner.zip file, and unzip to obtain the image.

The image can be written to a 4GB (or larger) MicroSD card, then installed in a Raspberry Pi 2/3/4 or Zero.

The steps to install using an internet-connected Raspberry Pi 2/3/4 or Zero W are as follows:
Build your own offline, airgapped Bitcoin transaction signing device for less than $35! Also generate seed word 24 or generate a seed phrase from dice rolls!

![Image of SeedSigner in an Orange Pill enclosure](https://github.com/SeedSigner/seedsigner/blob/main/Orange_Pill.JPG)

The code is designed to ultimately be run on a Raspberry Pi Zero (version 1.3 with no wireless capability) with a Waveshare 1.3" 240x240 pxl LCD (more info at https://www.waveshare.com/wiki/1.3inch_LCD_HAT) and a Pi Zero-conpatible camera (tested to work with the Aokin 5MP 1080p with OV5647 Sensor Video Camera Module; other brands with that sensor module may work as well).

The easiest way to get the signer up and running is to downloaded the "seedsigner_0_1_0.zip" file in the current release, extract the "seedsigner_0_1_0.img" file, and write it to a MicroSD card (at least 4GB in size or larger). Then install the MicroSD in the assembled hardware and off you go.

Newest Added Features:
. Native Segwit Multisig Xpub generation w/ QR display
. Scan and Parse transaction data from animated QR codes
. Sign transactions & transfer xpub data using animated QR codes
. New extensible menu system
. Improved letter entry responsiveness
. Various UX improvements
. Various code optimizations
. Project donation information
. ORANGE text! (looks great with orange pill enclosure!)

Considerations:
. Built to be compatible with Specter-desktop Bitcoin wallet
. Be patient, it takes a couple of minutes for the menu to come up after applying power to the Pi Zero
. For now, ALWAYS opt to use animated QR codes in Specter-desktop
. Make sure your seed is correct (no error checking currently implemented)
. Mainnet is only option; test with SMALL AMOUNTS of bitcoin
. Currently ONLY generating Native Segwit Multisig Xpubs
. Scanning animated QRs into a PC is tricky, be aware of ambient light, glare and focus
. (Holding the screen upside-down significantly reduces glare for some reason)
. Display text is small; comes with 240x240 territory but ever trying to optimize
. Check out our "seedsigner" telegram community for community help / feedback: (https://t.me/joinchat/GHNuc_nhNQjLPWsS)
. If you think SeedSigner adds value to the Bitcoin ecosystem, please help me spread the word! (tweets, pics, videos, etc.)

Coming Improvements/Functionality:
. Add support for single QR codes
. Support for 12 word seeds
. Reduce signed xpub data to decrease required QR images
. Support for single signature Xpub key generation
. Select from different display colors
. Generate seed from internal entropy (maybe)
. Other optimizations based on user feedback!

The software can also be installed using an internet-connected Raspberry Pi 2/3/4 or Zero W are as follows:

Install the Raspberry Pi Lite operating system (https://www.raspberrypi.org/software/operating-systems/) on a MicroSD card and install the card in a Raspberry Pi 2/3/4 or Zero W.

Connect a keyboard & monitor, or SSH into the Pi if you're familiar with that process.

* `sudo raspi-config`
(set your localization options, configure WiFi if necessary, but most important: navigate to the "interface options" and enable the "SPI" interface)

(set your localization options, configure WiFi if necessary, but most important: navigate to the "interface options" and enable the "SPI" interface; also make sure to enable the camera interface in raspi-config)

Reboot when prompted within the raspi-config interface

Install these:
Install these dependencies:
* `sudo apt-get update`
* `sudo apt-get install wiringpi`
* `sudo apt-get install python3-pip`
Expand All @@ -36,6 +62,9 @@ Install these:
* `sudo apt-get install libopenjp2-7`
* `sudo apt-get install ttf-mscorefonts-installer`
* `sudo apt-get install git`
* `sudo apt-get install python3-opencv`
* `sudo apt-get install libzbar0`
* `sudo apt-get install python3-picamera`

Install this:
* `wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz`
Expand All @@ -50,21 +79,33 @@ Install these python dependencies:
* `sudo pip3 install --verbose RPi.GPIO`
* `sudo pip3 install --verbose pillow`
* `sudo pip3 install --verbose embit`
* `sudo pip3 install --verbose qrcode`
* `sudo pip3 install --verbose imutils`
* `sudo pip3 install --verbose pyzbar`
* `sudo pip3 install --verbose argparse`
* `sudo pip3 install --verbose imutils`

Download SeedSigner
* `sudo git clone https://github.com/SeedSigner/seedsigner`

Modify the system config to run SeedSigner at boot:
* `sudo nano /etc/rc.local`
add `sudo python3 /home/pi/seedsigner/seedsigner.py &`
add `sudo python3 /home/pi/seedsigner/main.py &`
to the line above `exit 0`

Use Control + O, then [enter], to write the file.
Then use Control + X, to exit the program.

(Optional) Modify the system swap configuration to disable virtual memory:
* `sudo nano /etc/dphys-swapfile`
add `CONF_SWAPSIZE=100` to `CONF_SWAPSIZE=0`

Use Control + O, then [enter], to write the file.
Then use Control + X, to exit the program.

To shut down the pi:
* `sudo shutdown --poweroff now`

Now either move the MicroSD card to a Pi Zero 1.3 with the 1.3-inch LCD Hat installed, or the LCD Hat will also run fine on a Raspberry Pi 2/3/4 or Zero W; just remember to disable networking if you want to run the software in network isolation.
Now either move the MicroSD card to a Pi Zero 1.3 with the 1.3-inch LCD Hat and camera installed, or the LCD Hat will also run fine on a Raspberry Pi 2/3/4 or Zero W; just remember to disable networking if you want to run the software in isolation.

It will take a minute or so after the Pi is powered on for the GUI to launch.
It will take a couple of minutes after the Pi is powered on for the GUI to launch -- be patient!

0 comments on commit 3e0b7f1

Please sign in to comment.