On this post we will be building a SeedSigner an off line, air-gapped bitcoin transaction signing device with off the shelf components for around $50. Price will vary depending on where you get the parts and when as currently prices for everything are just rising like crazy.
Parts requirements and prices:
- Raspberry Pi Zero version 1.3: $12.75
- Raspberry Pi camera module: $8.93
- Waveshare 240×240 1.3 inch IPS LCD display HAT: $16.55
- 4GB micro SD card (I used one that was laying around 16GB)
- 2×20 pin raspberry Pi Zero GPIO: approx $7.44 for a 10 pieces package
- Open pill case: $5 from a friend that printed it for me, you could also get one @ BTCwares.com
- Grand Total: $50.67
All of the parts that listed above I got on Ebay.
This build will be a two part first we will start with the software and following that we will do the hardware.
The first thing we need is to download and write the latest version of SeedSigner system at the time of my build this was 0.4.4, below we will have this process detailed.
- Go to SeedSigner Github and download the current latest release ie. seedsigner_X_X_X,img.zip.
After the image has been downloaded it needs to be burned into the SD card using an app like Raspberry Pi Imager or Balena Etcher in this case we will be using Raspberry Pi Imager when it comes to operating system installations for the Pi this is my go to.
2. Open Imager and click on CHOOSE OS button
3. On the operating system popup scroll to the bottom and select USE CUSTOM.
4. A new window will popup on this window you need to navigate to the location where you downloaded the file and select it.
5. Once selected you will return to the imager window and will need to select the sd card that you would like to install seedsigner onto. Please ensure you select the correct storage as any data on it will be deleted.
6. Once the storage has been selected and confirmed select WRITE and let Imager write the image to the SD and verify the install, after this is completed you can eject the SD card and you are ready to go software wise.
Hardware Build two parts
Software/Hardware test build:
The first thing will do to avoid any unknowns is to do an assembly and test run in order to test all components prior to installation in the open pill.
- First thing I did was to ensure that the camera module has the correct ribboncable installed for the RPi zero, in my case the module came with two cables one for the RPi 4 (preinstalled) and one for the RPi 0 in the box, the RPi 0 cable is the thinner of the two and and it has a golden color.
2. Next I connected the camera module ribbon cable to the Pi, to do this first you need to release the lock bar in the pi camera connector to do this just pull back with your fingers even on both ends this should not take a lot of pressure.
3. Next connect the camera module ribbon cable to the Pi, to do this insert the cable into the pi (ensure the contacts on the cable are facing the board and not the connector), once orientation is correct insert the cable into the connector and push the lock bar back in.
4. Next install the LCD hat onto the Pi, to do this align the pins on the Pi with the connector on the LCD hat and press firmly on either side of the screen with your thumbs evenly, for this test you do not need to push the hat all the way down onto the pins.
5. Now that we have all the pieces snapped together is time to install the SD card that we have previously installed the SeedSigner software and connect power, once power is connected if all went well the system will boot up please be patient and allow up to 45 seconds.
- When the system is live scroll down to Settings using the joystick on the left and select it pressing down.
- Once inside the settings menu select Input/Output Tests, once you have reached the Input/Output Test section verify the functionality of all the buttons by cycling thru all of the positions including the camera functionality by scanning a QR code this QR does not need to be bitcoin address any QR code will do. The SeedSigner software will provide feedback by highlighting in orange the positions you have selected, for the camera once a QR code has been scanned the text will change from “Scan ANY QR code” to “QR scanned”
- Once you have completed this checks and all works as it should press the exit button to go back in the menu.
6. This concludes our test software/hardware assembly, now we need to disassemble it all in order to start to build in the open pill case, 1. disconnect the camera cable from the Pi, 2. remove the LCD hat, 3. remove the SD card.
Final assembly using open pill case:
Now that we have that the components and the software work good we will be assembling the final product using the open pill case, components fit tightly in this case having to remove them due to something not working correctly after assembly may cause some damage due to the amount of force it will take to get them removed this is the reason we did a try run.
1. We will need the open pill case and the camera module to start our final build with.
You will need to insert the camera module under the tabs on one of the sides and once in place push on the opposite side to snap the module in place, please pay particular attention to ensure the cable is towards the cutout for the SD card, once the camera module is firmly in place and prior to continue assembly turn the case around and verify that the camera lens is properly aligned with the case.
2. Next we will need the pi zero to have the camera cable connected to it. As before release the lock bar on the pi if not already done insert the cable with the contacts facing the board and lock the tab.
3. We now need to insert the Pi into the case this is the portion that needs more attention on the assembly process to ensure cable for the camera is not kinked to avoid issues after assembly has been completed, we also need to properly align the Pi ports.
- Flip the Pi around from the position we had it before so that the pins are now on the up side and line up the pi with the end of the open pill case and ensure the cable looks like below and there are not tight looks on the cable.
- Next lower the Pi down and angle down the ports side in order to slide the Pi under the locking tabs and align the ports at the same time.
- Once in this position verify the aliment of the ports and that the cable is not kinked, the extra cable at the end is normal and that will be stored under the display hat.
- After verification of the ports aliment and the cable is good go ahead and snap the other side of the Pi into the locking tabs it should take some force and you should hear positive feedback sound once it snaps.
4. With the Pi securely in place we need to install the last piece of hardware to finalize our SeedSigner.
- Align the display HAT connector with the Pi pins.
- Once verified press the HAT on each side of the screen in order to have the pins properly inserted on the HAT connector, there are two large tabs for supporting the HAT on the other side of the pins you can see those on the picture above.
5. With all of the above completed lets go ahead and insert the SD card power the device and do another operational check like we did before.
Congratulations we made it to the end we now have a fully functional SeedSigner device and for around $50 (at the time of writing) we have a secure device to manage our bitcoin transactions.
If you would like to learn more about SeedSigner you can visit the project website https://seedsigner.com, this guide is based on a SeedSigner video you can find at https://www.youtube.com/watch?v=gXPFJygZobE.
This can also be built using the Orange Pill case but at the time of writing I am have some issues locating some of the hardware for the build once I am able to get my hands on the spacers I will try and build a guide to assemble the SeedSigner using the Orange Pill case. See image of printed case parts below.