{"id":630,"date":"2021-05-28T23:47:00","date_gmt":"2021-05-28T23:47:00","guid":{"rendered":"https:\/\/peterwong.net\/blog\/?p=630"},"modified":"2021-05-29T00:15:36","modified_gmt":"2021-05-29T00:15:36","slug":"playing-with-single-board-computers","status":"publish","type":"post","link":"https:\/\/peterwong.net\/blog\/playing-with-single-board-computers\/","title":{"rendered":"Playing with Single Board Computers"},"content":{"rendered":"<p>2020 sent me working from home.&nbsp; While not being able to physically meet with friends as often as I\u2019d have wanted, I had some spare time to dig deeper into my Raspberry Pi equipment and other single-board computers (SBCs).<\/p>\n<p>My stash included a couple of old Raspberry Pi Model B, a Pi2 Model B, a Pi3 Model B, and a Pi Zero.&nbsp; Over the past few months, I\u2019ve since purchased a bunch of additional Raspberry Pi equipment, including four Raspberry Pi4 boards and cases, several hats, and other single-board computers.<\/p>\n<p><a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200511_105123265.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200511_105123265\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200511_105123265\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200511_105123265_thumb.jpg\" border=\"0\"><\/a>&nbsp;&nbsp;&nbsp;&nbsp; <a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200515_125203134.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200515_125203134\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200515_125203134\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200515_125203134_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>Over the course of 2020, I\u2019ve installed several operating systems on them, including <a href=\"https:\/\/www.freebsd.org\/\" target=\"_blank\" rel=\"noopener\">FreeBSD<\/a> and the beta 64-bit <a href=\"https:\/\/www.raspberrypi.org\/forums\/viewtopic.php?t=275370\" target=\"_blank\" rel=\"noopener\">Raspberry Pi OS<\/a>.&nbsp; I even ventured to re-attempt installing and making use of Windows IoT Core where I was not surprised to see that it was still a frustrating experience.&nbsp; Looks to have been abandoned by Microsoft in favor of <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/arm\/\" target=\"_blank\" rel=\"noopener\">Windows 10 on ARM<\/a>.<\/p>\n<p><a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200405_221506362.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200405_221506362\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200405_221506362\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200405_221506362_thumb.jpg\" border=\"0\"><\/a>&nbsp;&nbsp;&nbsp;&nbsp; <a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200407_010501953.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200407_010501953\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200407_010501953\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200407_010501953_thumb.jpg\" border=\"0\"><\/a>&nbsp;&nbsp;&nbsp;&nbsp; <a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200407_161051677.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200407_161051677\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200407_161051677\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200407_161051677_thumb.jpg\" border=\"0\"><\/a>&nbsp;&nbsp;&nbsp;&nbsp; <a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200407_191420747.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200407_191420747\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200407_191420747\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200407_191420747_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>A few of my new purchases are worth noting.<\/p>\n<p>Buy your microSD cards in bulk.&nbsp; I think I ended up using more than a dozen 32GB cards for use in these tiny computers.&nbsp; It\u2019s not too bad to spare $10 for each SBC, for the convenience of not having to reuse and reformat the same card as I played around with each system.<\/p>\n<p>The <a href=\"https:\/\/www.raspberrypi.org\/products\/raspberry-pi-keyboard-and-hub\/\" target=\"_blank\" rel=\"noopener\">official Raspberry Pi keyboard<\/a> is impressive.&nbsp; It is compact, and also works as a USB hub.&nbsp; Having additional USB ports is quite useful, particularly for the original Pi Zero which didn\u2019t have built-in WiFi.&nbsp; The Pi Zero W has built-in WiFi, which I ended up purchasing a couple of.&nbsp; But with the Raspberry Pi keyboard, I could just plug-in an extra dongle for a cordless mouse and also use other nano adapters.&nbsp; <a href=\"https:\/\/www.amazon.com\/dp\/B0823TCPPP\/\" target=\"_blank\" rel=\"noopener\">Dual-band 802.11ac WiFi adapters<\/a> cost less than $20.<\/p>\n<p>I incorrectly purchased the UK version of the keyboard.&nbsp; That was my mistake, because I suffered several months accidentally hitting that backslash key that was placed beside the left Shift key and reduced the width of that left Shift key.&nbsp; It was only last month that I gave in to frustration and purchased the US version.&nbsp; I suppose you Brits use the right Shift key more often, and the small size of the left Shift key isn\u2019t an irritation.<\/p>\n<p>I remember using the Pi2 Model B for a <a href=\"https:\/\/kodi.tv\/\" target=\"_blank\" rel=\"noopener\">Kodi<\/a> (previously XBMC) media center about 10 years ago.&nbsp; With the arrival of Chromecast, Roku, and Fire stick devices over the past few years, I don\u2019t need the Pi as a media center anymore and can reuse it for other things.<\/p>\n<p>I also tried to use them as a desktop computer, even if it\u2019s just for using the web browser.&nbsp; It is my opinion that only the Pi4 has enough processing power to provide a usable desktop experience.&nbsp; The older models just don\u2019t cut it, with too much lag in the user experience.<\/p>\n<p><a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200515_124454732.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200515_124454732\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200515_124454732\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200515_124454732_thumb.jpg\" border=\"0\"><\/a>&nbsp;&nbsp;&nbsp;&nbsp; <a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200515_123937426_HDR.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200515_123937426_HDR\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200515_123937426_HDR\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200515_123937426_HDR_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>At least one Pi4 is up 24\/7 on my network, serving as an internal Minecraft server, with occasional guest access from the outside.&nbsp; The Pi4 is powerful enough and can have up to 8GB of memory, such that running Docker containers for isolated testing of some applications has not given me any issues.<\/p>\n<p>Speaking of variations on the ad-hoc SBC standard of the Raspberry Pi, I searched for other ARM-based SBCs for comparison with the Pi models.&nbsp; I ended up ordering a few of them, with the intent of cross-compiling other operating systems for the boards.<\/p>\n<p>The first board I set up is a <a href=\"https:\/\/wiki.friendlyarm.com\/wiki\/index.php\/NanoPi_NEO3\" target=\"_blank\" rel=\"noopener\">NanoPi NEO3<\/a>.&nbsp; I ordered the NanoPi NEO3 with the typical enclosure because I\u2019ve planned to place this permanently on my network.&nbsp; Its processor is equivalent to the ARM Cortex-A53 found on the RPi3, it\u2019s got gigabit Ethernet, and it\u2019s got a USB 3.0 port, all on a 48&#215;48 mm form factor.&nbsp; It runs the latest 64-bit UbuntuCore distribution and I use it to test VPN servers <a href=\"https:\/\/openvpn.net\/\" target=\"_blank\" rel=\"noopener\">OpenVPN<\/a> and <a href=\"https:\/\/www.wireguard.com\/\" target=\"_blank\" rel=\"noopener\">WireGuard<\/a>.&nbsp; It performs my periodic DDNS registration and I could probably stick the <a href=\"https:\/\/pi-hole.net\/\" target=\"_blank\" rel=\"noopener\">Pi-hole<\/a> service in there too.&nbsp; It doesn\u2019t have wireless connectivity, but which can be added through one of those tiny USB nano adapters.&nbsp; It also doesn\u2019t have any display ports, though I\u2019m curious if the USB 3.0 port is enough to drive output to one of those <a href=\"https:\/\/www.displaylink.com\/products\/usb-monitors\" target=\"_blank\" rel=\"noopener\">DisplayLink<\/a> USB monitors.<\/p>\n<p><a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/NanoPiNEO3-1.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"NanoPiNEO3-1\" style=\"display: inline; background-image: none;\" alt=\"NanoPiNEO3-1\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/NanoPiNEO3-1_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>The next boards that I bought were a pair of <a href=\"https:\/\/wiki.radxa.com\/RockpiS\" target=\"_blank\" rel=\"noopener\">RockPi S<\/a> boards.&nbsp; The combination of the low cost of these boards ($15 for a 512MB model) with the 64-bit A35-level processor (marketed as a low-power and high-efficient ARMv8 architecture compared to the A53 found on the RPi3) makes these tiny boards more powerful than a similar-sized Raspberry Pi Zero\/W.&nbsp; It has WiFi and Bluetooth 4.0 connectivity.&nbsp; It also has an option of having up t0 1MB of NAND memory which you may be able to squeeze-in a tiny embedded Linux distribution if you don\u2019t want to use a microSD card.&nbsp; One gotcha I encountered on this board is that it doesn\u2019t have a WiFi MAC address stored in hardware\/firmware, so you have to define its WiFi MAC address through a boot configuration file.<\/p>\n<p><a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/RockPiSv13-4.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"RockPiSv13-4\" style=\"display: inline; background-image: none;\" alt=\"RockPiSv13-4\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/RockPiSv13-4_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>Another board that I bought was the <a href=\"https:\/\/www.amazon.com\/dp\/B08M9MWZCQ\" target=\"_blank\" rel=\"noopener\">OrangePi Zero2<\/a>.&nbsp; This board comes in a 53&#215;60 mm form factor, but comparable in specs to the larger RPi3, also with built-in WiFi and Bluetooth 5.0 wireless connectivity.&nbsp; Everything is open-source, with 64-bit Debian, Ubuntu, and Android distributions source available for download <a href=\"http:\/\/www.orangepi.org\/Orange%20Pi%20Zero2\/\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p><a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/OrangePiZero2-1.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"OrangePiZero2-1\" style=\"display: inline; background-image: none;\" alt=\"OrangePiZero2-1\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/OrangePiZero2-1_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>There were other purchases, some of which I have not even gotten to.&nbsp; I bought a few Arduino boards and hats, some XBee connectivity modules, and some ESP32 modules.&nbsp; One of the boards I\u2019m very excited about is the <a href=\"https:\/\/microbit.org\/\" target=\"_blank\" rel=\"noopener\">BBC micro:bit<\/a>.&nbsp; I have both the v1 and v2 boards.&nbsp; My excitement with the micro:bit is its appeal as a programming platform for younger kids who are thinking of pursuing a career in engineering, science, or technology.<\/p>\n<p><a href=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200523_173222875.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"IMG_20200523_173222875\" style=\"display: inline; background-image: none;\" alt=\"IMG_20200523_173222875\" src=\"https:\/\/peterwong.net\/blog\/wp-content\/uploads\/2021\/05\/IMG_20200523_173222875_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>Programming is on track to become a general-purpose skill that every profession would require.&nbsp; I strongly believe that during the years around middle school, kids have so much enthusiasm and interest in learning, that it\u2019s best to introduce them to programming at that time.&nbsp; I hope to contribute driving this interest for these young learners.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>2020 sent me working from home.&nbsp; While not being able to physically meet with friends as often as I\u2019d have wanted, I had some spare time to dig deeper into my Raspberry Pi equipment and other single-board computers (SBCs). My &hellip; <a href=\"https:\/\/peterwong.net\/blog\/playing-with-single-board-computers\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-630","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/posts\/630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/comments?post=630"}],"version-history":[{"count":1,"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/posts\/630\/revisions"}],"predecessor-version":[{"id":631,"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/posts\/630\/revisions\/631"}],"wp:attachment":[{"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/media?parent=630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/categories?post=630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/peterwong.net\/blog\/wp-json\/wp\/v2\/tags?post=630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}