I was able to source a Raspberry Pi 3B V1.2 locally for a discount. It was discounted as the Mico-SD card slot cover was broken off. I was able to boot regularly by clamping the SD card onto the connectors, but this wasn’t the best. I wanted to boot via USB so it would be usable.

Flashing the Pi

I followed this tutorial from The Pi.

First, I updated the Pi and rebooted it.

sudo apt-get update
sudo apt-get upgrade
sudo reboot

Next, I added the boot option to the config.

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

I did another sudo reboot and checked that the output of vcgencmd otp_dump | grep 17.

Adding the boot option

It contained 3020000a, so it should be done.

I did sudo nano /boot/config.txt to remove the line I added earlier in case I used it in another Pi.

Verifying boot option and removing from config

I flashed a USB drive with Raspbian, but didn’t get any output. This might be due to some USB’s not working. It was a Kingston USB, so I tried a 32 GB Sandisk Cruzer Dial instead. Booting with this resulted in a rainbow screen, and then it started generating SSH keys. However, the screen suddenly went black and after a few minutes I didn’t have any output and it didn’t show up on my network.

I bought a 32 GB SanDisk Ultra Fit USB 3.1 USB since it was small and the low profile would make it less obtrusive. Since I got it from Amazon, I wasn’t sure if the flash drive was genuine or fake. I tested the drive with F3XSwift and it passed.

After writing Raspbian onto the drive, I was able to plug it into the Pi and boot. I saw a rainbow again like last time, but it didn’t go black and continued starting up. I was able to get to the login screen without any issues.


It might not have been worth getting the Pi with its damaged MicroSD slot, but it was interesting learning about USB booting on Pi’s. It’s great to have another Pi for any future projects.