Skip to content
DIY Wallet
EN

Install it on the Pi

Make the wallet start by itself, test the screen and buttons, then switch off Wi-Fi.

  • 15 min
  • On your computer
  • On the Pi
Parts and options

The install script sets the Pi up to start the wallet by itself whenever it gets power, turns on the screen and the buttons, and makes the USB port act as a wallet. You run it twice: once with Wi-Fi still on, to check that everything works, and once more to switch the radios off.

First install, Wi-Fi still on

On the Pi
cd ~/wallet
sudo ./diy/install.sh --ram-only --keep-radios
sudo reboot

--ram-only keeps the wallet in memory only, as you chose on Your build. It is gone every time the Pi loses power.

Your SSH window closes when the Pi restarts. After about a minute, the screen lights up and shows Select Language.

Check the screen and buttons

Control What it does
Joystick up and down Move through a list
Joystick right, joystick press, or KEY1 Confirm, next
Joystick left, or KEY3 Back, cancel

Move up and down through the languages to check the joystick, but don’t set anything up yet. That comes in step 7, with the app.

If the picture is upside down, log in again:

On your computer
ssh you@diywallet.local

Then turn it around:

On the Pi
echo DIY_OLED_ROTATE=180 | sudo tee /etc/diywallet.conf
sudo systemctl restart diywallet

If the screen stays dark, see what the wallet reports:

On the Pi
systemctl status diywallet

The most common cause is the screen board not pushed all the way onto the pins.

If the screen says Wallet stopped and Random number generator failed, or the install script stopped with No hardware random number generator found, the wallet couldn’t read the chip’s random number generator, or its output failed a check. It stopped on purpose, rather than create a recovery phrase without it. Check that the board is a Raspberry Pi Zero 2 W and that the card has the Raspberry Pi OS Lite from step 3, then restart the Pi. If it happens again, don’t use this board for a wallet.

Check the random number generator

Your recovery phrase will come from the generator in the Pi’s chip, so test it before you create a wallet. Log in to the Pi again, then run the test. It takes about 30 seconds:

On your computer
ssh you@diywallet.local
On the Pi
sudo /opt/diywallet/hwrng-check --test

The first lines name your generator and its driver, bcm2835-rng, and confirm its settings. The last line should be RESULT: OK. A few failed blocks are normal; the program says how many are acceptable. If it says RESULT: FAILED, don’t use this board for a wallet.

Final install, radios off

Once the screen and buttons work:

On the Pi
cd ~/wallet
sudo ./diy/install.sh --ram-only
sudo reboot

This time the Pi starts with Wi-Fi and Bluetooth disabled, so Linux never switches those chips on. From now on it can’t reach any network, and you can’t log in to it over the network either. To change something later, see Customize.

Checkpoint

The Pi starts by itself when you plug it in and shows Select Language on its screen. Your computer can no longer find diywallet.local.

Done? Go to step 6Build the app

Last checked against the source code on