Praline is a Raspberry Pi based Bitcoin hardware wallet.
You will need:
- Raspberry Pi 2/3 DOES NOT work because they cannot work in USB gadget mode.
- An Adafruit 128x64 OLED Bonnet for Raspberry Pi (optional)
- The hardware wallet will approve transactions automatically if the OLED and the buttons are not available.
- A 2x20-pin Strip Dual Male Header (optional)
- You might also need this if your Raspberry Pi Zero doesn't come with the 2x20 pins, and you will have to solder this manually.
The following steps should be done on the Raspberry Pi Zero. Note: The Praline can work offline, but you will need internet access during the installation.
Run as an USB serial gadget
The Praline talks to the host through USB serial interface
sudo vi /boot/config.txt # Add "dtoverlay=dwc2" as the last line sudo vi /boot/cmdline.txt # Add "modules-load=dwc2,g_serial" after "rootwait"
Read this for detail instructions, but stop after finish step 1, DO NOT enable logging in service on the serial port.
Enable kernel support from the Raspberry Pi config tool
sudo raspi-config # 5 Interfacing Options -> P5 I2C
Read this for detail instructions. Note: the location of I2C was changed, see above.
Install Python scripts
You can install Praline with pip
sudo pip install praline
or install from source
git clone https://github.com/zhouer/Praline cd Praline sudo pip setup.py install
Run scripts at system boot
You can setup running the Python script at system boot by adding it into /etc/rc.local
sudo vi /etc/rc.local # Add a line "/usr/local/bin/praline &" before "exit 0"
Un-plug all micro-USB cords, and plug one micro-USB cord back to the USB (NOT PWR IN) port. It will take about 30 seconds to boot into Linux and run the Python script.
Now, you will need the host-side application Praline-host to talk with the Praline.