Raspberry Pi 4 review

For Christmas I got a Raspberry Pi 4. I had to order a thermal cooling case as well as a USB-C power lead as well as a microHDMI to HDMI adapter (first one didn’t work, second one did luckily). I got the 4GB version so expect some great performance.

I installed NOOBS on the microSD card. NOOBS is 32-bit and installs 32-bit OSes (sadly) but Raspbian runs great on the Pi 4 despite it having a 64-bit CPU and 4GB RAM, and you’d expect to be performance limited due to 32-bit restrictions. But it runs fine. But when you have a 64-bit CPU and 4GB RAM you want a 64-bit OS that utilises this. So I choose Debian 64-bit, for which there are several forks out there, but I decided to manually build my own image with qemu-user-static, debootstrap, and loopback devices and images. It was a long process but worked. I was able to install 64-bit Debian Buster onto my Pi 4.

I chose a desktop environment to install: XFCE. I wanted to remain light on the Pi’s resources. However, XFCE just didn’t look attractive for me. I decided to flash a fresh image and choose KDE Plasma instead.

KDE Plasma ran incredibly laggy, to which I later found out I had to enable the graphics acceleration overlay by adding dtoverlay=vc4-fkms-v3d to config.txt. After that KDE Plasma ran smooth.

I installed some stuff (some games, coding utilities, and graphics programs) and they all ran smoothly. Even 3D games like GLtron ran wonderfully. Graphics programs were quick to load, and coding on the Pi 4 felt like an amazing and responsive experience.

Your experience may depend on your variant. The Pi 4 has a 1GB RAM variant costing £35, but even an extra £10 for the 2GB variant at £45 would be worth it as 1GB just doesn’t hold up anymore. The 4GB version is £55, which is worth the money to get the extra performance and multitasking benefits.

It’s recommended to use a case with the Pi 4, as when I tried it without it became very hot and slow. A case with a fan is recommended, I bought a GeeekPi transparent case which looks nice and cools the Pi 4 right down.

Can it replace your desktop PC? Yes, but also not fully. There are lots of games that are still too intensive even for the new BCM2711 SoC to handle. Not to mention it’s still ARM, meaning not all programs can run that require x86 or x64. ARM’s a good thing though, however, as it keeps the price down whilst keeping good performance. If the Raspberry Pi Foundation wanted x86 or x64, they’d have to put in something cheap like a Celeron or Atom which just isn’t as good as the ARM CPUs provided by Broadcom.

However, for some open source Linux games, which can still be incredibly fun, as well as word processing, web browsing, and media editing, the Pi 4 is up to the task of replacing that old Windows 7 desktop you are still clinging onto (and I’m warning you right now that W7 support ends on 14th January so you may want to look at upgrading).

The Raspberry Pi has came far from that £30 SBC that ran slowly back in 2012 made to inspire young people coding to a capable desktop replacement. It’s original purpose still stands however, and the Pi 4 is an amazing device to use for coding purposes.

Why I’m not upgrading my S9 to Android 10

Android 10 for Galaxy flagships is a trending topic right now, with the stable update having been released for Note10, S10, and now Note9, with the S9 stable update not too far away. However, I have not installed the beta, and will not be installing the stable either. Here’s why.

In November 2018, Samsung announced Linux on DeX, a feature for DeX users to be able to run Linux images and programs. It was initially exclusive to the Note9 and Tab S4. But in April 2019, support for the S10, S9, and Tab S5e on Android Pie was implemented. We were all expecting for Samsung to support the Note10 and Tab S5 (which actually turned out to be the Tab S6) with Linux on DeX when these devices were released. But they didn’t.

In November 2019, Samsung announced that the Linux on DeX beta program has come to an end and that the app would not run on any devices running Android 10. Linux on DeX will continue to work on compatible devices on Android 9.

I’ve been using Linux on DeX on my S9 since support was added for it. I enjoy using it as it opens my device up to more program options as I can now use Linux programs too. However, when I found out that Linux on DeX wouldn’t support Android 10, I knew I couldn’t lose this functionality.

Android 10 for Samsung devices isn’t as big an update as Android 9 was. Android 9 brought the new OneUI which changed the user interface a lot. Although Android 10 does have some cool new features, Android 9 is still perfectly adequate and still works with Linux on DeX.

How long I’ll hold out on upgrading is unknown for now. If Samsung announce that Linux on DeX will be released as stable for Android 10 later on I’ll consider upgrading, but for now I’m staying on Android 9. Linux on DeX is crucial functionality for me and I don’t want to lose it.

Happy New Year

Happy New Year everyone! Let’s do a quick recap on everything that has happened on this blog over this year.

This year I returned from my absence on this blog in September so there isn’t really anything blog relevant before that. In September after looking at my blog for nostalgia purposes and realising that I still have time to make an amazing comeback I decided to return.

I decided to change the theme and make a few tweaks as well as start Python code tutorials, and in case you’re waiting impatiently for the next tutorial, there will be tutorials to come this year. I will also be working more with my new Pi 4 next year, and doing Pi OS reviews.

I’ll also be posting more gaming posts next year so stay tuned for those too. I may also be giving my blog a makeover next year to really modernise it.

Happy new year everyone! And bye 2019!

-Chas 😎

Merry Christmas

Merry Christmas everyone, sorry I haven’t been active recently, I will be delivering you amazing Python and Raspberry Pi tutorials soon! I got a Raspberry Pi 4 (4GB RAM) for Christmas, but do not have a microHDMI to HDMI adapter or power lead for it so I can’t write about it at the moment. Soon, however, I will purchase those two things and set it up, hopefully on a 64-bit OS to make good use of the RAM, then I can write a review as well as a lot of tutorials to come.

Merry Christmas everybody!

-Chas 🎅

Python tutorials #1 – basic calculator

This is the first of my Python tutorials! Python is a programming language but unlike C++ and Java, is easier to learn but can still be used to create amazing programs such as web browsers, calculators, word processors, and more. But unlike Scratch, a GUI used to make games and other projects aimed at beginners and young children, you still must master Python to create amazing applications using it.

So, here’s my first tutorial: a basic calculator that can be used to add, subtract, multiply, and divide two numbers. Unlike the calculator app preloaded on your PC or phone however, it is CLI based so you won’t have a friendly GUI calculator but rather one where you type two numbers, what you want to do with them, then get the result printed to the screen.

This guide assumes that you are using the newer Python 3.x. The code may work on Python 2.x, but has not been tested, so if you need to stick to Python 2.x for some reason, you may have to make adaptations to the code for it to work properly.

Fire up your Python IDE (such as IDLE3 or Geany) and enter in the following code:


first_number = input("Enter in first number: ")
second_number = input("Enter in second number: ")
print(int(first_number) + int(second_number))

This basic block of code will ask you to enter in the first number, then store that first number, then enter the second number, store that second number, and then show the answer. The int around the variables converts them into intergers so they can be added together as numbers, not as characters. Without this 5 + 10 would equal 510, not 15.

This, however, is a little restricted. You can only add the two numbers, not subtract, multiply, or divide. Asking the user for what they want to do with the two numbers and then doing that expands the calculator’s functionality. For example:


first_number = input("Enter in first number: ")
second_number = input("Enter in second number: ")
option_choice = input("Add, subtract, multiply, or divide? ")
if 'dd' in option_choice:
print(int(first_number) + int(second_number))
elif 'ubtract' in option_choice:
print(int(first_number) - int(second_number))
elif 'ultiply' in option_choice:
print(int(first_number) * int(second_number))
elif 'ivide' in option_choice:
print(int(first_number) / int(second_number))

We are not doing if statements to see if, for example, option_choice equals ‘add’ as Python is case sensitive in this area. Checking for ‘dd’ (end of ‘add’) ensures that the program will work regardless of whether A is capital or not.

So there you have it! A basic calculator made in Python. Currently lacks support for decimals however, so if you try entering decimals the program will error out. This guide is aimed at beginners, so this calculator will likely be expanded on in a future guide. Enjoy!

-Chas 😎

Sorry

I’ve been a little less active recently but promise I won’t fall into inactivity like I did last year. I’ll be blogging frequently again when I have some ideas on blog post topics!

-Chas 😎

Do you need a custom ROM on your device?

When I first bought my Nexus 7 (2012), it was on Android 5.1 and was really slow. I downgraded it to the official Android 4.4.4 firmware, but when apps started showing incompatibility, I asked myself: is now the time for a custom ROM?

After searching around, it turns out the slow performance on the Nexus 7 (2012) was only affected by Android 5.x, with people reporting much better performance on Android 6.0 and 7.x based ROMs. So I decided to give one a try.

My first pick was Unlegacy Android, based on Android 7.1. I was forced to use the pico package for OpenGAPPS, which only included the Play Store and other services needed for it to function as the system partition couldn’t squeeze in Android 7.1 and all the Google apps.

UA 7.1 would freeze up randomly sometimes for me. It would sometimes stutter when switching between apps, but it was still better than Android 5.1. I decided that I needed a more stable ROM so I tried LineageOS 15.1, recently released and based on Android Go for a more smooth experience.

LineageOS 15.1 required me to use OpenGAPPS pico as it was based on Android 8.1 Oreo. It was slow. A little faster than Android 5.1, but slower than Unlegacy Android 7.1 and stock 4.4.

I then decided to try Unlegacy Android again, only this time it was based on Android 6.0 instead of 7.1. Frustratingly, I still had to use OpenGAPPS pico, explaining why Google did not release Android 6.0 to the Nexus 7 (2012) as they would be unable to fit all their services and apps in as well as the Android 6.0 system.

UA 6.0 ran much better. It was smooth, no stuttering, and never froze up. However, there was something wrong. What made the Nexus 7 so special was that it was Google branded. It was running on stock Android, just like Unlegacy Android does. But I missed all the Google apps other than the core Google Play functionality. Sure, I could just install them all from the Play Store. But that’s time consuming. I like having them all there.

I’m currently running, yes you heard right, stock Android 4.3 on my Nexus 7. I decided I want the fast performance and Google app presence associated with the stock firmware, so I switched back. The apps I want such as Minecraft and Crossy Road still install and almost all incompatible apps such as YouTube have an older version available. It’s fast for my Nexus and its perfect.

Do you need a custom ROM for your device? Maybe. As a power user for my Lenovo Tab 4 8 Plus, I do run a custom ROM based on Android 9.0 and quite enjoy it. But if your device’s firmware is still adequate for your usage and custom ROMs just don’t mix well with it then maybe staying on stock is better.

Nexus 7 (2012) – why are there no Android 10 or 9 ROMs available and why has the only Android 8.1 ROM available only been released recently?

Why you can’t find any Android 9 or 10 ROMs for the Nexus 7 (2012)

The Nexus 7 (2013) has a ROM for every Android version since the version it first launched with. Even when support for it was discontinued when Android 7.0 Nougat was released, the development community were quick to make ports of it. A port of Android 10 has recently been released.

The year older Nexus 7 (2012) only had ROMs going up to Android 7.1.2 until recently where a LineageOS 15.1 ROM was released. How come the Nexus 7 (2012) has a lot less ROM treatment than the one year newer model?

First of all, let’s start with hardware. The Nexus 7 (2012) has 1GB RAM and a Nvidia Tegra3 CPU, whilst the 2013 variant has 2GB RAM and a Snapdragon S4 Pro. That’s a noticeable difference in speed and performance just there. The Nexus 7 (2012) was good back in its day, and even now, if you choose the correct ROM, can make a good tablet, but Android 9 and 10 just won’t run very well on it. On LineageOS 15.1 and Unlegacy Android 7.1.2, I experienced lag but on stock 4.3, 4.4, and Unlegacy Android 6.0, it was perfectly acceptable for every day use.

Android Go was announced by Google a while back providing an optimised Android version for low end devices such as the Galaxy J2 Core. LineageOS 15.1 appears to use Go’s optimisation for the Nexus 7 (2012) but a 2019 low end smartphone may just be that little bit faster than a mid-range tablet from 2012.

Let’s not forget the system partition. When I tried Unlegacy Android 6.0, 7.1.2, and LineageOS 15.1, I had to use the minimal GAPPS package (pico) only including the Play Store and basic Google functionality. The Nexus 7 (2013) has a resize method available but it appears to be hard to use and you risk messing up the partition table resulting in an unrecoverable device. There is no such method for the Nexus 7 (2012). Recent Android versions take up more space and on the Nexus 7 (2013), the only currently available Android 10 ROM requires a resize before it can be installed.

Can we expect Android 9 or 10 ROMs for the Nexus 7 (2012)? Probably not. Unless a resize method is found for the system partition, there’s little chance of it and even if it was made, it probably wouldn’t run very well. Luckily, Android 6.0 or 7.1 is still adequate and a great majority of apps still work fine on it so if you’re looking for a good ROM to revive your tablet, look there instead of hoping for a ROM which could put the tablet past its limits.

What ROM do you have on your Nexus 7 and how does it run? Tell me down below in the comments section!

-Chas 😎

Galaxy J3 (2016) LineageOS development cancelled

In an earlier blog post, I mentioned that I was going to start development of a LineageOS 15.1 (Android 8.1 Oreo) ROM for the Galaxy J3 (2016). A couple of weeks later after testing and error fixing attempts throughout the build (which have failed or led to more errors which are harder to fix), I regret to inform you that development of this ROM port is coming to an end.

It appears that currently the J3 device tree for LineageOS 15.1 is still unstable and still being worked on, explaining the errors and also the fact that a developer who promised a LineageOS 15.0 ROM a couple of years back never posted it, probably because it errored out or they got it to build but it was way too unstable for general use.

I can say that I will attempt to make other ROMs for other devices, such as the Nexus 7 and Lenovo Tab4 8 Plus. But sadly, all the J3 ROM slots have been taken and porting newer Android ROMs to this device is incredibly hard.

I hope that I can announce the development of a new Android ROM for another device but at the moment I’ll just be playing around to see what I can get to work before testing anything.

Sorry for this, but Oreo for the J3 (2016) doesn’t seem possible just yet.

-Chas 😎