Third party cookies may be stored when visiting this site. Please see the cookie information.

Home Family Days Out Raspberry Pi & Electronics Blog

Stewart's Blog

Stewart Watkiss website to the world ...

(Children, computing, first aid and other ramblings ...)

Pi-Top Raspberry Pi laptop computer

October 1st, 2016

During my visit to the Raspberry Pi factory arranged by RS I also entered into a competition to win a Pi-Top computer. After a close run vote, I won. So I now have a Pi-Top Raspberry Pi laptop.

Pi-top Raspberry Pi laptop computer

The Pi-Top is a similar size to a regular laptop, but involves some assembly and uses a Raspberry Pi for it’s motherboard. As well as a laptop they also sell the Pi-Top CEED which is a screen with built-in Raspberry Pi, which you connect your own mouse and keyboard. Both are available in black or a colourful bright green.

The Pi-Top does involve some assembly to put it together. This is not too difficult and it’s fully explained in the guide, but a little fiddly at times. Essentially each part is modular and it’s a case of putting them together and connecting the wires and connectors. No special tools are required other than a supplied allen key (hex key). One problem I had was that I believe the screws for the screen hinge were screwed down too tight as the instructions assume that they are fully loosened off, but I was able to get the screen connected eventually. The assembly should not put anyone off as the sort of people looking for a Raspberry Pi laptop are also the sort of people that shouldn’t be too afraid of assembling the Pi-Top.

Once assembled the Pi-top functions much like a normal laptop. It has a long battery life (approx 10 hours) and is expandable through an innovative plug-in system. The optional expansion includes speakers (available as a single mono speaker, or buy two for full stereo) and a prototyping board which can be used for making your own circuits or for connecting HATS to the Raspberry Pi.

The Pi-top can be used with the normal Raspbian OS supported by the Raspberry Pi foundation or the Pi-top’s own Pi-top OS. I have mainly used the standard Raspbian, but the Pi-top OS does include some additional integration with some of the peripherals and is tailored especially for use in education. The Pi-Top OS also includes CEEDuniverse which is an interactive game to teach computer programming to children.
I have been through some of the activities with CEEDuniverse, which are very good, but I haven’t actually tried that to teach programming to children yet.

I’ve also had an opportunity to see the Pi-top CEED being used to teach programming to children at the PyconUK kids day where they worked really well.

The main benefit for the pi-top is that it integrates everything needed to get started with the Raspberry Pi without losing any of the expandability and access to the GPIO ports. All the workings of the Raspberry Pi and expansion board are hidden under a plastic cover which just slides out of the way when you want to get inside. In fact using the pi-topProto board the GPIO pins are conveniently placed in the centre of the Pi-top which works really well.

Pi-top Raspberry Pi laptop with electronic circuit on proto board

The pi-top has been really convenient for taking along to Raspberry Jams and similar events as it saved having to borrow screens from the desktop computers in the classroom.

There are a few little things I would have liked to see. It would have been nice to be able to get to the HDMI port to connect to a projector, although I think that is quite a big ask. It’s beyond what the pi-top is supposed to be, but would be a nice feature.
Also the keyboard feels a little soft to type on and when touch-typing it occasionally misses a key press. On the plus side it is available as a UK keyboard, and for the target audience of use in schools and for school children then they will probably not have that problem.

There are other cases that integrate the Raspberry Pi with a screen and/or a keyboard and touch pad, but as far as I am aware this is the only one that integrates them into a single laptop and it does the job really well. If you are looking to equip a class with Raspberry Pi computers then the Pi-Top CEED may be a better fit (as it’s even cheaper), but I’d highly recommend the Pi-Top especially if looking for a more portable solution.

Visit to Sony Raspberry Pi Factory Wales

May 27th, 2016

I’ve recently been to visit the Sony UK factory where the Raspberry Pi is made. This was made possible thanks to RS Components and a competition to win a tour around the site.

The site known as the Sony UK Technology Centre is based in Pencoed Wales. At the site they manufacture high-end video cameras used in the broadcasting industry, it is also a Sony customer service repair centre and along with the Raspberry Pi they perform manufacturing for other companies.

Factory tour

Much of the manufacturing is fully automated. The line that we went along was adding components to the second side of the board. The boards had solder applied through a mask and then the SMT (Surface Mount Technology) components placed using pick and place machines such as the machine below:

Pick and place machines making Raspberry Pi 3

The boards then go through an oven where the solder is melted attaching the components to the board.

Freshly baked Raspberry Pi 3 coming out of the re-flow oven

After automated testing of the solder joints the Raspberry Pi boards are ready for the final components to be inserted by hand (the chunky bits like the Ethernet and USB connectors) which are then soldered by machine.

The finished boards were then tested using this impressive testing jig created by Sony specifically for the Raspberry Pi.

Testing the finished Raspberry Pi 3 at Sony UK factory Wales

The testing stage was the part that impressed me the most as that is something that is often done by hand due to the complexity and unique nature. In this case though the testing was performed much faster than could possibly be achieved by hand.

Raspberry Pi computers at Raspberry Pi Factory Pencoed Wales

We also got to see how a robot is being trained to help with some of the components that are currently inserted by hand. Contrary to some of the scare stories this was not a case of people getting the sack to make the way for robots. The robots were making the process more efficient and increasing the number of Raspberry Pis that were being made, which then makes the staff available to perform tasks where they could provide more value-add. Robots and humans working side-by-side to build Raspberry Pis.

I see this as a positive thing as it means that manufacturing can be done in the same country as the computer was designed. Without the level of automation achieved then it’s hard to see how manufacturing can survive in countries like the UK where the cost of workforce is relatively high. It also provides other jobs in the local area included in the supply chain.


During the afternoon we then got to have a go with the Pi-Top and Pi-Top CEED, which are laptops and computers based around the Raspberry Pi.

Pi-top Raspberry Pi laptop

This was run as an educational activity where we got to experience the education software (which they are currently getting certified through OCR) and then to program Minecraft in Python. This finished with a programming challenge where we were challenged with creating a sculpture in Minecraft combining art and programming. I created a flashing lighthouse using Python to switch between diamond and air blocks to make the flashing light.
After a close run vote I won first prize which was my very own Pi-Top! I’ll be writing more about the Pi-Top in the future and plan to take it along to some future STEM Ambassador activities I’m involved with.

Thank You

I really enjoyed visiting the factory. A big thank you to all those involved in the day including:

Simple RFID using Python3 on a Raspberry Pi 2 – RC522 SPI RFID module

May 8th, 2016

RFID (Radio Frequency Identification) and NFC (Near Field Communication) provide the ability for devices to talk to each other by touching them together. This could be between two smart devices or between a smart device to a simple tag embedded into a card or sticker.

In my case my requirements were quite basic as I just wanted to be able to read the unique ID on a RFID tag. I then store all the information on the Raspberry Pi rather than trying to read and write additional information onto the RFID tag.

RFID tag reader connected to Raspberry Pi 2 with display screen

There are a few different devices that are compatible with the Raspberry Pi which vary greatly in cost. As my needs were fairly simple I went for an inexpensive RFID reader/writer based around the RC522 which is available for a few pounds. I bought mine through RyanTeck, it’s also available through other suppliers. This is often advertised as being for the Arduino, but it just uses standard SPI so can be connected directly to the Raspberry Pi SPI connection on the GPIO port.

Wiring up the Raspberry Pi to the RFID module

The RFID module was supplied with header pins, but these had to be soldered on. I used header pins with a 90° bend so that the wires do not protrude upwards. I then used female-to-female jumper leads to connect from the RFID module to the Raspberry Pi GPIO connector.

The diagram below shows the connections between the RFID connections and the GPIO ports on the Raspberry Pi.

Raspberry Pi 2 - RFID RC522 - SPI Python control NFC

The connections are:

RFID Raspberry Pi GPIO phys pin Wire colour
SDA/SS* CE0 24 Green
SCK SCLK 23 Blue
Gnd Gnd 6 Black
RST GPIO 25 22 Brown
3.3V 3.3V 1 Red

* The pin is labelled as SDA which relates to it’s alternative use if using I2C, but is being used as SPI SS (slave select).

The colours shown relate to the multi-way jumper cables I had available, any colour can be used instead.

Setting up the Raspberry Pi

There are a few configuration changes that are needed to allow the Raspberry Pi to communicate with the RFID module. These relate to enabling the SPI drivers and downloading the Python code.

First go into the Raspberry Pi configuration application and from the Interfaces tab enable SPI.
(Also available using sudo raspi-config to configure in a terminal)
Say no to rebooting, as we need to make further changes that also need a reboot.

Edit /boot/config.txt using your favourite editor eg.:
sudo nano /boot/config.txt

Add the following entry to the end of the file:

Install the SPI-Py library

git clone
cd SPI-Py 
sudo python3 install

Download the pi-rc522 files using

cd ~
git clone

I have updated this code through a pull-request to work with Python 3.

If you haven’t rebooted since adding the entry to config.txt then you should now reboot the Raspberry Pi.

Basic code to read the RFID UID

The code below shows the steps required to check for a card and read the UID. The UID is made up of a list of 4 values which are printed on a single line.

import sys
sys.path.insert(0, "/home/pi/pi-rc522/ChipReader")
import RFID
import signal
import time

rdr = RFID.RFID()
util = rdr.util()
util.debug = False

while True:
    #Request tag
    (error, data) = rdr.request()
    if not error:
        print ("\nDetected")

        (error, uid) = rdr.anticoll()
        if not error:
            #Print UID
            print ("Card read UID: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3]))


This can be used with rfid cards, key-ring style tags, and NFC stickers.

Raspberry Pi Disco Lights – Pi Birthday 2016 and 2017

March 4th, 2016

Disco Lights Presentation

Click the image above for the slides for the Disco Light talk at the Pi Birthday 2016.

Worksheet for Raspberry Pi NeoPixel practical session 2017

Below is a worksheet giving hands-on with connecting up NeoPixels to a Raspberry Pi using a breadboard.

This uses breadboard NeoPixels. These do need a little soldering initially, but once soldered can be easily connected to the breadboard and reused as required. Note that some breadboard NeoPixels use a different pin layout, so you may need to modify your design accordingly.

The following is an alternative using through-hole NeoPixel LEDs with no soldering required.

Important Update!

There is a potential problem with NeoPixels due to an incompatibility between the sound driver and the code used to control the NeoPixels. This can be avoided by blacklisting the sound driver to prevent it from loading. The worksheets above include the following instructions, but older versions of the worksheet may not.

To disable the sound driver create a new file called /etc/modprobe.d/snd-blacklist.conf

sudo nano /etc/modprobe.d/snd-blacklist.conf

Add a single entry
blacklist snd_bcm2835

Now reboot the Raspberry Pi before running the test program.

More information

For more information see the NeoPixels page in Penguintutor electronics information.

Controlling a Raspberry Pi robot using the micro:bit accelerometer

December 21st, 2015

The BBC micro:bit includes an accelerometer which allows you to track the movement of the micro:bit. This means that it can be used to as a controller similar to how the Wii remote control tracks it’s movement through the air. For this project I used the micro:bit as a wired device to control my existing Raspberry Pi robot. In theory it should be possible to have it communicating via the built-in bluetooth v4 controller (also known as Bluetooth Low Energy / BLE).

As I didn’t want to be physically tethered to the robot I used another computer to act as a proxy / relay server to receive the status of the micro:bit and then pass it on to the Raspberry Pi on the robot. This computer could be any Linux computer, such as another Raspberry Pi (or a PiZero, but that will require a USB hub).

The messages between the micro:bit and the Raspberry Pi were passed using a serial connection. I had already included a web interface on the Raspberry Pi robot, I had the relay perform a url-get against the web page of the Robot using the python urllib module.

BBC Micro:bit running MicroPython controlling a Raspbhttp://erry Pi robot

Most of the code to read the status of the accelerometer and convert that into something the Raspberry Pi could understand has been written in MicroPython on the micro:bit. It may have been slightly easier to have the proxy computer perform that, but this was more of an exercise in programming the micro:bit.

There is little to no error checking in this, which is something that should be considered in future. The serial communication did work OK most of the time, but would occasionally drop some of the information resulting in an error message.

The source code is available from github at: penguintutor github MicroPython on the BBC micro:bit. There are two files, which should be installed on the micro:bit (converted to a hex file first) and which runs on the Linux computer (may need to be run as root using sudo – or setup appropriate dialout permissions).

Communicating between Raspberry Pi and Micro:Bit using pyserial

December 18th, 2015

One of the things I’ve been doing with the micro:bit is to have it relay messages to a connected host computer.

This is fairly easy within python on a Linux computer (such as the Raspberry Pi) thanks to the pyserial module which supports sending and receiving serial communication over a serial USB device. It’s even easier on the micro:bit where the USB port is used for the console allowing it to be accessed through stdin and stdout.

First let’s see how to get talking between a computer and the micro:bit.

Open up a terminal and run


This shows the kernel ring buffer (any messages logged by the kernel – which is the core of the operating system).

Look for an entry with tty, which assuming you have just plugged in your micro:bit should be near the bottom. With the micro:bit as as the only connected serial device then it’s likely to be ttyACM0 eg.

[171769.685287] cdc_acm 1-1.2:1.1: ttyACM0: USB ACM device

this says that it’s connected as a serial device on port ‘/dev/ttyACM0’. If there is already a serial device connected then it will be ttyACM1 etc.

One of the easiest ways of testing this is to use the screen utility to connect to the serial port. It’s not installed by default on many systems so first install using:

sudo apt-get install screen

You can run the screen utility by following it with a port to connect to (ie. the tty ACM device) and the baud (communication speed).

The default speed (baud rate) for the micro:bit is 115200 bits/sec so connect using:

sudo screen /dev/ttyACM0 115200

Note you may not need sudo if you are in the dialout group, but sudo should work regardless.

Now any messages the the micro:bit sends to stdout (standard output) eg. by using a print statement will be shown. This is particularly useful if you have a bug in your code as it will then MicroPython will output the error message to the console (which gives more information than the scrolling message on the front of the micro:bit).
Also anything you type in at the keyboard will be sent to stdin (standard input) which can be read from within your program using readline().

On the Raspberry Pi or Linux computer then the pyserial package needs to be installed. On the Raspberry Pi the pyserial package is already installed, but on other Linux distributions it may be necessary to install pyserial. On Ubuntu that can be achieved using
sudo apt-get install python-pyserial
sudo apt-get install python3-pyserial
as appropriate.

Microbit with serial connection to a Raspberry Pi linux computer

The code to communicate via serial interface is:

import serial

ser = serial.Serial('/dev/ttyACM0', 115200, timeout=1)

while True:
    rcv = ser.readline()
    cmd = rcv.decode('utf-8').rstrip()

ser.write() is used to send data to the micro:bit.

Note that this code does not include any error checking. Although most messages were received OK I did find occasionally that a line would terminate prematurely, so it would be a good idea to check that the entire message is received.

Microbit with serial connection to a Raspberry Pi linux computer

Disco Lights controlled by a Micro:Bit running Micro Python

December 17th, 2015

I’ve been playing around with a BBC Micro:Bit for the last few days. You can see my first adventures in programming MicroPython on the Micro:Bit using a Raspberry Pi 2.

One of the first things that you normally do when learning electronics is to light up an LED. It gives an immediate output and adds a bit of a wow factor as the student feels they’ve accomplished something. All well and good, but a little red LED is not that impressive. So I thought what about a bigger LED, what above a bright LED would that be a bit more impressive? What if they were mini-theatre lights bright enough to make an impact at your school disco!

Here they are – PAR16 mini-theatre lights controlled by a Micro:Bit.

LED PAR 16 disco lights controlled by a micro:bit programmed using MicroPython from a Raspberry Pi


A quick word of warning. If you create this the way that I have then these are pretty safe, but if you try and do something silly (like use mains powered lights) then you could cause serious injury or cause a fire.

  • Do NOT use mains voltage lights – PAR 16 lights are available in two types. The one I used is designed for low voltage (12v) bulbs. Do NOT attempt this with ones designed for mains voltages (eg. 110V or 230V).
  • Use LED bulbs – I used 12V MR16 LED bulbs. These use the same connection as halogen bulbs, but take a lot less current. If you use halogen bulbs then you need to take additional precautions due to the current and the heat generated – so I recommend only using LED bulbs of around 5 Watts or less. Also check that the LED bulbs work with DC.
  • Make sure that the power supply is safe – It should be the correct voltage – 12V output, DC (not AC) and enough current for all the LEDS you will use at once. Assuming 5W LEDs then a 12V 5Amp DC power supply would easily cope with 8 Lights. Make sure it complies with local country safety regulations (eg. CE or FCC) and includes short circuit and overheating protection.

Video of Disco Lights in action


Below is the circuit showing one of the connections (on PIN 2). This would be repeated for each light.

Micro:Bit disco light circuit on a breadboard

There are 3 connectors on the micro:bit that can be connected directly using crocodile clips. If you need more than 3 lights then you will need to use a microbit breakout board to access more of the pins on the micro:bit. The breakout board is also included in the micro:bit inventors kit.

MicroPython code

The following is the code to make 4 lights flash in sequence. This uses pins 0 to 2 which are the ones that can be connected using a crocodile clip and pin 3 which is the left-most connector on the edge connector. You will likely need a breakout board to access that connection.

To use just three lights then you can delete the lines referring to pin 3.

from microbit import *

while True:

Note that this code is pretty long for just turning for lights on and off – imagine if there were 8 lights instead. Can you think of a way to simplify it?


This is a simple circuit that can have a big impact. The code is very basic and there are lots of ways it can be improved and to add different sequences etc. A good point to start experimenting.

Programming the BBC Micro:Bit using a Raspberry Pi 2

December 16th, 2015

The BBC Micro:Bit will be going out to school children in the UK during 2016. In the meantime I have been given a sneak peek as part of the microbit world tour.

The aim is to put the micro:bit into the hands of some Python programmers that can find out what is possible and create some useful code using micropython.

I only have the micro:bit for one week but hope to be able to try out a few things before I pass it on. The first thing I have done is to see how it can be programmed using the Raspberry Pi. I expect that there will be a number of Children that are given a micro:bit that already have a Raspberry Pi that they’d like to program it with. The process is not too difficult, the main part is installing the Chromium web browser which makes it easier to create the hex files that need to be transferred to the micro:bit.

In theory these instructions should work on any Raspberry Pi, but for performance reasons I suggest using a Raspberry Pi 2 if possible. This is based upon the Jessie version of Raspbian which is the current version when downloaded during December 2015.

See the video below which walks through the steps.

The link to the forum entry for Chromium is at: The editor that I used is available from, although I expect in future this will be available online direct from the Micro:Bit website.

The code that I write as part of this will be available at my GitHub page for Micro:Bit micropython

Details of the API for MicroPython on the Micro:Bit


Now you know how to program the micro:bit using MicroPython checkout these projects.

The Raspberry Pi $5 PiZero – the cost is only half the story

November 29th, 2015

The Raspberry Pi foundation has made a new Raspberry Pi computer called the PiZero. It’s a smaller version of the version 1 Raspberry Pi that’s been stripped back to the bare essentials with price that’s an amazing $5 (currently £4 in the UK including VAT). Not only that but they are so inexpensive they’ve been giving it away with print copies of The MagPi magazine (priced just £5.99).

Raspberry Pi - PiZero $5 computer

As you could predict this was an immediate success with the magazine selling out within a matter of hours in most places and most UK resellers selling out by about lunchtime. This has been picked up by the UK press and all over social media most of which have been understandably focusing on the price. It’s completely understandable why the price would be dominating the headlines. This is a huge achievement and brings the cost of a computer down pocket money size for children who may otherwise be excluded from the fun of computing and programming.

The fact that they were then able to give the computer away with a magazine is something I’m still trying to get my head around. If someone had told me 5 years ago that in the future computers would be so cheap you would find one free with a magazine I’d would have probably laughed in their face.

The computer may not be particularly powerful (the Raspberry Pi 2 will significantly out perform the PiZero), but it still has the same processor as the original Raspberry Pi and whilst you wouldn’t use it to replace a modern PC it’s a great little computer.

But there’s more to it than just the cost.

When the first Raspberry Pi was made available then the cost was a significant factor in it’s success, but so too was the GPIO header. This connector provides a way to add add-on boards or to connect your own electronic circuits to the Raspberry Pi. This was a real game changer, it made it possible to connect a computer direct to the physical world in a way that was not possible before *.

The PiZero still has the GPIO ports, although it doesn’t have any header pins. Fortunately it’s not too difficult to solder header pins on the board. See my video guide to soldering the GPIO header pins onto the Raspberry Pi PiZero.

The big think about the PiZero (or rather the significant small thing) is the size. It’s much smaller than the previous Raspberry Pi. This got me thinking back to a session from the PyCon UK education day that I’d attended with my children. The session was called Internet of Toys and was led by Alan O’Donohoe (@teknoteacher). The session was about getting children excited about programming and physical computing through “hacking” toys. The session started with Alan showing off a number of potentially “hackable” toys he’d picked up cheaply from a car boot sale. The thing about the toys is that they were all large enough to have a Raspberry Pi installed into them or could have one connected to them. With the size of the new PiZero then the number of toys that it could fit in is increased greatly.

Take a look at the photo below which shows a Lego train locomotive alongside a PiZero and a Raspberry Pi model B computer. Now there is already scope for controlling the train with the Raspberry Pi using infrared (which is something I’m currently working on), but the regular Raspberry Pi is too big to consider including it within the train itself. With the PiZero the board is now small enough to include within the Lego toy itself.

Raspberry Pi, pizero and a lego train

The fact that the PiZero is so cheap is remarkable and I see it being really useful for those wanting to get started with physical computing on a pocket money budget. The cost is not the only thing that makes this computer so special. I have some ideas of my own and I’m looking forward to seeing how it will be used by in projects in the future.

We live in exciting times for computing.

* Arguably the Arduino made this possible before the Raspberry Pi, but needing to use and program a separate micro-controller added more complexity and cost compared to being able to handle this directly from a host computer. In particularly the Raspberry Pi made it much more accessible to regular users.

When it’s time to re-install Ubuntu / Kubuntu Linux

November 17th, 2015

One of the benefits of a Debian based Linux operating system is how easy it is to upgrade. In the case of Ubuntu and the KDE version Kubuntu then there is a new release every 6 months providing. This provides a way to get the latest versions of all the software with minimal fuss. For those that prefer a more stable system there are long term support (LTS) versions that just need the usual security updates to be applied, but I prefer to be a little closer to the cutting edge with new software updates.

I first got my current Dell laptop during 2013 and installed Ubuntu 13.10. Since then I have successfully upgraded the operating system 3 times including a change from the Unity desktop to KDE window manager. Unfortunately the 4th time was not so successful. The operating system appeared to be working at first, but the touchpad became erratic and the system slowed considerably.

The latest upgrade included the update to systemd based operating system. This is perhaps one of the most significant changes to Linux in the past few years (and arguably one of the most controversial). I believe systemd does bring many benefits, but it may have been a contributing factor to the problems that occurred after the upgrade.

I therefore took the non-trivial decision to re-install the operating system from scratch, and it now performs so much better. Not only that, but the clickpad (soft touchpad) that caused me many problems before was properly detected and configured by the operating system and the same with the power indicator which had also been a problem when the laptop was new. Whilst in theory it should have been possible to upgrade all the appropriate components, it looks like it was a good time to re-install rather than upgrade.

Screenshot Kubuntu 15.10

Upgrade steps

There are several things that can be done to make upgrades go more smoothly. Although one of these depends upon certain choices being made during the initial install of Linux.

Create a separate home folder

If you follow the default install for most Linux distributions then you will end up with a single filesystem which contains the programs and data. This is similar to Windows having a single C: drive for both data and applications.

If however you choose custom network partitioning during the install then you can split the physical disk into one partition for the programs and system configuration files which is the root filesystem (/); then add a separate file system called /home where user data is stored.
This means that you can upgrade the operating system and reformat the root filesystem without deleting your user data.

If you haven’t done this already then you may want to look at performing a backup and restore to manage the upgrade, but it’s a useful thing to consider during the re-install.

Create a backup

Hopefully you have a backup of your important data already, but it’s especially important that you have your backup when you are performing a re-install. All going well then you shouldn’t need the backups, but if you choose the wrong option or if there is a power cut during the install then there is a risk of data loss, so make sure that you have an up-to-date backup before starting.

How to make the backup is personal preference, but I bought a 5TB external disk drive so that I can backup all my data. I formatted my external disk drive as a Ext4 Linux file system, this has the advantage of preserving all file permissions, but does prevent accessing the data from a non-Linux computer (not a problem in my house). I used a file manager to drag and drop the contents of my home directory onto a directory on the external disk drive.

As well as creating the backup it’s also important to validate that the backup was performed correctly. How this is done depends upon the risk you are will to take vs the time to validate the data. Ideally you would want to run a full checksum across all the files and compare them with the local disk, but as it already took about 12 hours to copy the data (left running overnight) the time to validate that would be too long. I therefore made a simple check using du. The du command reports on “disk usage” and so gives me an idea if the backup copy is approximately the same size as the original.

du -h --max-depth=0 /home/stewart
compared with
du -h --max-depth=0 /media/diskname/stewart-backup

At first it came up that the backup was significantly smaller – which I realised was due to it not copying hidden files and directories. Lucky that I checked as this includes my email archives etc., although fortunately the upgrade went successfully anyway.

I therefore used Konqueror to copy the hidden files by enabling view hidden / system files first.

Move the home folder

Although it would be possible to use the same home folder I wanted this to be a clean install without any of my old configuration options. I therefore renamed my home folder prior to the upgrade so that I could then selectively copy the data into the new folder. I did this by booting into a Live USB stick (running Kubuntu 15.10), mounted the home file system (though the file manager) and then renamed the folder to add “.old” to the end. I then moved the appropriate data into the /home/stewart folder that is created by the installer.

Don’t format the home drive

To ensure that I kept my old data on the home folder I chose the custom partition open. I chose to use the old home directory and entered /home as the mount-point but ensured that the format option was NOT checked before starting the install.

Adding applications back

There is plenty of software installed by default, including LibreOffice (free Office Suite), Firefox web browser and various KDE applications. But there’s also lots more than can be installed for free which typically involves a few clicks of the mouse or running a command in the terminal. The following is a partial list of some of the most useful applications that I installed after the re-install or plan to do soon.

GIMP (advanced image editor)
Konqueror (Web browser, which I mainly for ftp and ssh transfers)
Thunderbird (my personal preference for email client)
KeepassX (password safe application)
Epson printer drivers
JEdit (portable Java based text editor)
OpenBox (virtual machine software)
Steam (Games platform)
Dropbox (sync files across computers)
Scratch (programming language used for teaching programming to children)
Openssh server (allows secure remote connection, control and file transfer)
Kdenlive (Advanced non-linear editor for creating videos)
Mixxx (DJ music software)
Terminator (split window terminal application)
vim (Hardcore shell text editor)
kubuntu-restricted-extras followed by running sudo /usr/share/doc/libdvdread4/ (restricted audio and video codecs required for playing DVDs etc.)
Handbrake (Use for converting DVDs for Kodi)*

Summary – when to re-install vs upgrade

Normally I perform a live upgrade whenever a new version of Ubuntu / Kubuntu comes out, which is every 6 months. This mostly works, but is not infallible. My own stance is that whenever a new version comes out I find a convenient time to upgrade (sometime I’m not going to be hitting a deadline on an assignment where I need my laptop working) and try a regular system update. If that should fail, or result in a poorly performing system (as in this case) then it’s time to re-install. Whilst a re-install is very time consuming with the proper backups it should be possible to do so without any loss of data.

* Note in some countries it is illegal to copy DVDs, whereas other countries permit copying for backups and to allow it to be played on a different media player (eg. Kodi / XBMC). Please check you local country laws before copying copyright DVDs.

Twitter Status - follow stewartwatkiss

UK days out, children and holiday information is also available on the Days Out Diary web site
Linux, LPI and the Quiz / Test Program posts are also available on the Penguin Tutor website
First Aid Information, first aid games and first aid practice test / quiz entries are also available on the First Aid Quiz Web site