aboutsummaryrefslogtreecommitdiff
path: root/build/cheap-portable-pi
diff options
context:
space:
mode:
Diffstat (limited to 'build/cheap-portable-pi')
-rw-r--r--build/cheap-portable-pi/index.html195
1 files changed, 122 insertions, 73 deletions
diff --git a/build/cheap-portable-pi/index.html b/build/cheap-portable-pi/index.html
index 8d49827..5da494c 100644
--- a/build/cheap-portable-pi/index.html
+++ b/build/cheap-portable-pi/index.html
@@ -1,40 +1,53 @@
<!doctype html>
-<html lang="en" id="top">
+<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="data:,">
<title>Portable Pi: Cheap Raspberry Pi Zero Hacker Terminal</title>
- <link href="https://bt.ht/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" />
- <style>*{box-sizing:border-box;}body{font-family:sans-serif;margin:0 auto;max-width:650px;padding:1rem;}img{max-width:100%;}pre{overflow:auto;}table{text-align:left;width:100%;}</style>
+ <link href="/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" />
+ <link href="/rss.xml" type="application/rss+xml" rel="alternate" title="RSS feed for blog posts" />
+<style>*{box-sizing:border-box;}body{font-family:sans-serif;line-height:1.33;margin:0 auto;max-width:650px;padding:1rem;}img{max-width:100%;}pre{border:1px solid;overflow:auto;padding:5px;}table{text-align:left;width:100%;}.footnotes{font-size:90%;}</style>
</head>
<nav>
- <a href="#menu">Menu &darr;</a>
+ <a href="#menu">Menu &darr;</a>
</nav>
<main>
-<h1>Portable Pi: Cheap Raspberry Pi Zero Hacker Terminal</h1>
+<h1 id="portable-pi-cheap-raspberry-pi-zero-hacker-terminal">Portable Pi: Cheap Raspberry Pi Zero Hacker Terminal</h1>
+
<p>2020-09-16</p>
-<p><em>I recently came across <a href="https://n-o-d-e.net/zeroterminal3.html">the incredibly cool design</a> for an "ultimate Raspberry Pi computer"</em> by NODE and was inspired to create my own "portable" Pi device. Although, with my concept, I decided to set a few restrictions on the build:</p>
+
+<p><em>I recently came across <a href="https://n-o-d-e.net/zeroterminal3.html">the incredibly cool design</a> for an &#8220;ultimate Raspberry Pi computer&#8221;</em> by NODE and was inspired to create my own &#8220;portable&#8221; Pi device. Although, with my concept, I decided to set a few restrictions on the build:</p>
+
<ul>
<li>I wanted to keep the total cost as low as possible
+
<ul>
<li>including the Pi Zero <em>and</em> extra hardware</li>
-</ul>
-</li>
+</ul></li>
<li>I wanted to avoid any custom casings or need for 3D printed materials</li>
-<li>I wanted to make the full design extremely portable / lightweight</li>
+<li>I wanted to make the full design extremely portable &#47; lightweight</li>
<li>I wanted to keep the build as user-friendly as possible (no soldering, odd hacks etc.)</li>
</ul>
-<p>With these constraints put in place, I built my very own Raspberry Pi Zero "hacker" terminal. You can see the finished product below:</p>
+
+<p>With these constraints put in place, I built my very own Raspberry Pi Zero &#8220;hacker&#8221; terminal. You can see the finished product below:</p>
+
<p><img src="/public/images/portable-pi-1.webp" alt="Portable Pi front" /></p>
+
<p><img src="/public/images/portable-pi-2.webp" alt="Portable Pi back" /></p>
-<p>I'm pretty happy with the final outcome and best of all - you can easily recreate this yourself with little-to-no effort!</p>
-<p>So enough chit-chat - let's build this bad-boy!</p>
-<blockquote><p><strong>Note:</strong> Most items in the hardware section are Amazon affiliate links</p>
+
+<p>I&#8217;m pretty happy with the final outcome and best of all - you can easily recreate this yourself with little-to-no effort!</p>
+
+<p>So enough chit-chat - let&#8217;s build this bad-boy!</p>
+
+<blockquote>
+<p><strong>Note:</strong> Most items in the hardware section are Amazon affiliate links</p>
</blockquote>
-<h2>Table of Contents</h2>
+
+<h2 id="table-of-contents">Table of Contents</h2>
+
<ol>
<li><a href="#expectations">Setting Expectations</a></li>
<li><a href="#hardware">The Hardware</a></li>
@@ -42,35 +55,51 @@
<li><a href="#setup">Getting Setup</a></li>
<li><a href="#summary">Final Summary</a></li>
</ol>
-<p><h2 id="expectations">Setting Expectations</h2></p>
-<p><strong>This hardware will not</strong> replace your laptop or any other "high-powered" portable device. Honestly, you're mobile phone would (most likely) work better in terms of a compact-sized computer. The concept behind this "portable pi" project was to make something <em>for fun</em>.</p>
-<p>Please reserve any sassy comments about how buying a cheap $50 laptop off eBay would be more efficient than building out something like I have done here. You're missing the point entirely.</p>
-<p>Moving on for those still interested... </p>
-<p><h2 id="hardware">The Hardware</h2></p>
-<p>I live in Canada, so some of the options are based on available hardware near my location. You're likely to find similar hardware close to your own country for better pricing / shipping costs.</p>
-<blockquote><p><strong>Note</strong>: I've decided to use a wireless, USB dongle-based keyboard. You can opt to use a bluetooth-based keyboard, but I just find them more trouble than they are worth (keeping a charge, losing connections, interference from other devices)</p>
+
+<p><strong>This hardware will not</strong> replace your laptop or any other &#8220;high-powered&#8221; portable device. Honestly, you&#8217;re mobile phone would (most likely) work better in terms of a compact-sized computer. The concept behind this &#8220;portable pi&#8221; project was to make something <em>for fun</em>.</p>
+
+<p>Please reserve any sassy comments about how buying a cheap $50 laptop off eBay would be more efficient than building out something like I have done here. You&#8217;re missing the point entirely.</p>
+
+<p>Moving on for those still interested&#8230; </p>
+
+<p>I live in Canada, so some of the options are based on available hardware near my location. You&#8217;re likely to find similar hardware close to your own country for better pricing &#47; shipping costs.</p>
+
+<blockquote>
+<p><strong>Note</strong>: I&#8217;ve decided to use a wireless, USB dongle-based keyboard. You can opt to use a bluetooth-based keyboard, but I just find them more trouble than they are worth (keeping a charge, losing connections, interference from other devices)</p>
</blockquote>
+
<ul>
<li>SBC: <a href="https://amzn.to/3jCVXHG">Raspberry Pi Zero WH</a></li>
-<li>Storage / OS: <a href="https://amzn.to/2GHm01R">64GB Micro SD Card</a> (Always have an SD backup!)</li>
+<li>Storage &#47; OS: <a href="https://amzn.to/2GHm01R">64GB Micro SD Card</a> (Always have an SD backup!)</li>
<li>Battery HAT: <a href="https://amzn.to/3jGq8xp">Li-ion Battery HAT</a></li>
<li>Battery: <em>This depends on your location. I was able to order <a href="https://www.walmart.ca/en/ip/Brand-New-4-Pcs-2500mAh-TR14500-3-7V-Rechargeable-Li-ion-Battery-for-Flashlight-Torch/PRD3Z73LMZZ3VK9">online through Walmart</a>, but if you live in the USA there are plenty of battery-specific vendors available. Find whatever works best for your needs!</em></li>
<li>Display: <a href="https://www.buyapi.ca/product/3-5-inch-raspberry-pi-tft-display/">KeDei 3.5-inch TFT Display</a></li>
<li>Keyboard: <a href="https://amzn.to/2Gqkwt6">Mini USB Wireless Keyboard</a></li>
<li>Adapter: <a href="https://amzn.to/36I6T3c">Micro USB OTG Cable</a></li>
</ul>
-<h4>Raspberry Pi Zero WH</h4>
+
+<h4 id="raspberry-pi-zero-wh">Raspberry Pi Zero WH</h4>
+
<p>You will need a Raspberry Pi Zero W with GPIO header pins already soldered on to the board. (You could also do this yourself manually if you have the tools and skill to do so)</p>
-<h4>Li-Ion Battery HAT</h4>
+
+<h4 id="li-ion-battery-hat">Li-Ion Battery HAT</h4>
+
<p>This HAT holds a single li-ion battery and for our purposes will connect with our Pi Zero via the GPIO header pins. You could also look into double-set battery HATs if that is something you would prefer - for my needs a single rechargeable battery works fine.</p>
-<p>Since our main "OS" is purely terminal based, I find you don't really need a li-ion battery with a massive amount of power storage. 2500mAh will easily last a handful of hours mucking about with emails, files and web browsing. Plus, you can always carry a few extras for swapping out on-the-go.</p>
-<h4>3.5-inch TFT Display</h4>
-<p>A simple and fairly cheap touchscreen display. We won't require our display to render videos or pretty graphics (since we will be entirely terminal-based) so this works just fine for our needs. I am using version 6.3 for this build.</p>
-<h4>Micro USB OTG Adapter</h4>
+
+<p>Since our main &#8220;OS&#8221; is purely terminal based, I find you don&#8217;t really need a li-ion battery with a massive amount of power storage. 2500mAh will easily last a handful of hours mucking about with emails, files and web browsing. Plus, you can always carry a few extras for swapping out on-the-go.</p>
+
+<h4 id="3.5-inch-tft-display">3.5-inch TFT Display</h4>
+
+<p>A simple and fairly cheap touchscreen display. We won&#8217;t require our display to render videos or pretty graphics (since we will be entirely terminal-based) so this works just fine for our needs. I am using version 6.3 for this build.</p>
+
+<h4 id="micro-usb-otg-adapter">Micro USB OTG Adapter</h4>
+
<p>As mentioned above, this item is optional if you feel more comfortable with using a pure bluetooth keyboard. I just personally prefer this method.</p>
-<h4>Wireless Keyboard</h4>
-<p>In my product demo image at the beginning of the article, I'm actually using an old Logitech wireless keyboard since this one still hasn't arrived. I plan to swap them out once I have it - the Logitech is far to large to be deemed "portable".</p>
-<p><h2 id="software">The Software</h2></p>
+
+<h4 id="wireless-keyboard">Wireless Keyboard</h4>
+
+<p>In my product demo image at the beginning of the article, I&#8217;m actually using an old Logitech wireless keyboard since this one still hasn&#8217;t arrived. I plan to swap them out once I have it - the Logitech is far to large to be deemed &#8220;portable&#8221;.</p>
+
<ul>
<li>Operating System: <a href="https://www.raspberrypi.org/downloads/raspberry-pi-os/">Raspberry Pi OS Lite</a></li>
<li>Display Driver: <a href="http://kedei.net/raspberry/raspberry.html">KeDei 3.5 Driver</a></li>
@@ -79,79 +108,99 @@
<li>Text Editor: <a href="https://www.nano-editor.org/">Nano</a></li>
<li>Code Editor: <a href="https://www.vim.org/">Vim</a></li>
</ul>
-<p><h2 id="setup">Getting Setup</h2></p>
-<p>I will be setting up this "portable pi" via <a href="https://www.raspberrypi.org/documentation/configuration/wireless/headless.md">headless installation</a> with my main <a href="https://uglyduck.ca/my-pi-desktop/">Raspberry Pi 4 desktop</a>. Included below are some quick instructions on how to setup the Raspberry Pi Zero for <code>ssh</code> access.</p>
-<h4>Preparing the microSD card</h4>
+
+<p>I will be setting up this &#8220;portable pi&#8221; via <a href="https://www.raspberrypi.org/documentation/configuration/wireless/headless.md">headless installation</a> with my main <a href="https://uglyduck.ca/my-pi-desktop/">Raspberry Pi 4 desktop</a>. Included below are some quick instructions on how to setup the Raspberry Pi Zero for <code>ssh</code> access.</p>
+
+<h4 id="preparing-the-microsd-card">Preparing the microSD card</h4>
+
<ul>
-<li>Use Raspberry Pi Imager to write the Raspberry Pi Lite OS to your microSD card
+<li><p>Use Raspberry Pi Imager to write the Raspberry Pi Lite OS to your microSD card
+
<ul>
<li>Once complete, remove the microSD storage device and then re-connect it</li>
-</ul>
-</li>
-<li>Navigate to the <code>boot</code> folder of the microSD device - we will be adding 2 files here
+</ul></p></li>
+<li><p>Navigate to the <code>boot</code> folder of the microSD device - we will be adding 2 files here
+
<ul>
<li>First add a completely empty file and name it <code>ssh</code> (no file extension)</li>
<li>Next add an empty file named <code>wpa_supplicant.conf</code></li>
-</ul>
-</li>
-<li>Open the <code>wpa_supplicant.conf</code> file in a code / text editor and paste the following (be sure to change <code>country</code> to your proper country code, as well as properly setting your network name / password):</li>
-</ul>
-<pre><code>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
+</ul></p></li>
+<li><p>Open the <code>wpa_supplicant.conf</code> file in a code &#47; text editor and paste the following (be sure to change <code>country</code> to your proper country code, as well as properly setting your network name &#47; password):</p>
+
+<p>ctrl<em>interface=DIR=&#47;var&#47;run&#47;wpa</em>supplicant GROUP=netdev
update_config=1
-country=US
+country=US</p>
-network={
- ssid=&quot;Your network name/SSID&quot;
- psk=&quot;Your WPA/WPA2 security key&quot;
+<p>network={
+ ssid="Your network name&#47;SSID&#8221;
+ psk="Your WPA&#47;WPA2 security key&#8221;
key_mgmt=WPA-PSK
-}
-</code></pre>
-<ul>
-<li>Unmount the microSD device, then place the microSD card in your RPi Zero</li>
-<li>Assemble the Raspberry Pi Zero with the Battery HAT (li-ion battery attached) connected via GPIO pins, and the 3.5 display connected on-top of the battery HAT's pins</li>
-<li>Turn on the battery HAT switch to power the RPi Zero. Give the device roughly 90 seconds to perform the initial boot</li>
+}</p></li>
+<li><p>Unmount the microSD device, then place the microSD card in your RPi Zero</p></li>
+<li><p>Assemble the Raspberry Pi Zero with the Battery HAT (li-ion battery attached) connected via GPIO pins, and the 3.5 display connected on-top of the battery HAT&#8217;s pins</p></li>
+<li><p>Turn on the battery HAT switch to power the RPi Zero. Give the device roughly 90 seconds to perform the initial boot</p></li>
</ul>
-<blockquote><p><strong>Note</strong>: the display will turn on but only show a white screen - this is normal</p>
+
+<blockquote>
+<p><strong>Note</strong>: the display will turn on but only show a white screen - this is normal</p>
</blockquote>
-<h4>Connecting to your Zero via SSH</h4>
+
+<h4 id="connecting-to-your-zero-via-ssh">Connecting to your Zero via SSH</h4>
+
<p>Open the terminal on your Raspberry Pi desktop and enter the following command:</p>
+
<pre><code>ssh pi@raspberrypi.local
</code></pre>
-<p>You will then be asked if you wish to trust this device (say yes), then prompted for the <code>pi</code> user's password - which is <code>raspberry</code>. After a moment you will be directly connected to your Raspberry Pi Zero. Hooray!</p>
+
+<p>You will then be asked if you wish to trust this device (say yes), then prompted for the <code>pi</code> user&#8217;s password - which is <code>raspberry</code>. After a moment you will be directly connected to your Raspberry Pi Zero. Hooray!</p>
+
<p>We just want to make a couple small configuration changes before going forward (mostly for security):</p>
+
<ol>
<li>Run the command <code>sudo raspi-config</code></li>
-<li>Select "Change User Password" from the menu and change the password</li>
-</ol>
-<p> <img src="/public/images/raspi-config.webp" alt="Raspberry config" /></p>
+<li>Select &#8220;Change User Password&#8221; from the menu and change the password
+<img src="/public/images/raspi-config.webp" alt="Raspberry config" /></li>
+<li>After that, select &#8220;Network Options&#8221; and change your device name
-<ol start="3">
-<li>After that, select "Network Options" and change your device name</li>
+<ul>
+<li>This will avoid any conflicts of connecting to newer RPi devices down the line</li>
+</ul></li>
</ol>
-<p> - This will avoid any conflicts of connecting to newer RPi devices down the line</p>
-<p>That's it!</p>
-<h4>Installing display driver</h4>
-<p>Next we will need to download and run the drivers needed for our 3.5-inch display to play nicely with our Pi Zero (just a blank white screen doesn't help us much). While connected to our RPi Zero via SSH, run the following commands:</p>
-<pre><code>wget http://kedei.net/raspberry/v6_1/LCD_show_v6_1_3.tar.gz
+
+<p>That&#8217;s it!</p>
+
+<h4 id="installing-display-driver">Installing display driver</h4>
+
+<p>Next we will need to download and run the drivers needed for our 3.5-inch display to play nicely with our Pi Zero (just a blank white screen doesn&#8217;t help us much). While connected to our RPi Zero via SSH, run the following commands:</p>
+
+<pre><code>wget http:&#47;&#47;kedei.net&#47;raspberry&#47;v6_1&#47;LCD_show_v6_1_3.tar.gz
</code></pre>
+
<p>If you have snail-paced rural internet like I do, now is a good time to go and grab a coffee while this download completes.</p>
+
<p>Once the download has finished, extract the contents and navigate to the new directory and install the driver:</p>
+
<pre><code>sudo tar xzf LCD_show_v6_1_3.tar.gz
cd LCD_show_v6_1_3
-sudo ./LCD35_v
+sudo .&#47;LCD35_v
</code></pre>
+
<p>Once completed, the RPi Zero will reboot and everything should work as expected!</p>
-<h4>Installing software</h4>
-<p>I'm not going to jump into heavy details about installing terminal-based software for this setup. The links I've attached in the software section should provide you with more than enough information to get started. For reference, I'm using a very basic set of applications:</p>
+
+<h4 id="installing-software">Installing software</h4>
+
+<p>I&#8217;m not going to jump into heavy details about installing terminal-based software for this setup. The links I&#8217;ve attached in the software section should provide you with more than enough information to get started. For reference, I&#8217;m using a very basic set of applications:</p>
+
<ul>
<li>Neomutt (emails)</li>
<li>Lynx (quick and simple web browsing)</li>
-<li>Nano (writing notes / blog posts in a hurry)</li>
+<li>Nano (writing notes &#47; blog posts in a hurry)</li>
<li>Vim (making any config edits or project work)</li>
</ul>
-<p><h2 id="summary">Final Summary</h2></p>
-<p>There you have it - a terminal-based, portable Raspberry Pi Zero "hacker" device. </p>
-<p>Is it practical? Not really. Can it replace any other <em>portable</em> device you might own? Probably not. Is it fun to make and experiment on? You bet! And in the end - isn't that what matters most with pet Pi projects?</p>
+
+<p>There you have it - a terminal-based, portable Raspberry Pi Zero &#8220;hacker&#8221; device. </p>
+
+<p>Is it practical? Not really. Can it replace any other <em>portable</em> device you might own? Probably not. Is it fun to make and experiment on? You bet! And in the end - isn&#8217;t that what matters most with pet Pi projects?</p>
<footer role="contentinfo">
<h2>Menu Navigation</h2>
<ul id="menu">