Setting up Eduroam on Raspberry Pi

Anyone who has ever used Eduroam on a Raspberry pi will know that it’s no easy task to set it up. Fortunately, it is possible, it just takes a lot of trial and error.

This has been tested on a Pi2, Pi3, and a model b+ with a WiFi adapter.

How to set up an Eduroam WiFi connection on Raspberry pi:

Firstly, you will need to find out your university’s network information – this will vary depending on which university you are at. As this guide is made (and tested) for Plymouth University, you may have to find your own university’s information. In this case, the information was readily available on the university’s website — you will need to look this up in case there are any differences (this part is up to you!).

Before you start, you may need to stop network connections:

sudo service networking stop

Warning:  This will disable any currently open network connections – if you are using your Raspi with SSH, this will disconnect it, so be sure to do this using a mouse/keyboard/screen.


If you have used WiFi on a Raspberry Pi before, you may have noticed your password is stored in plain text – this is not okay! We can combat this by hashing it. You can convert your password by opening a command prompt and typing in:

read -s input ; echo -n $input | iconv -t utf16le | openssl md4

then type in your password. It will feed back a hashed version of your password. This needs to be added to the the ‘wpa_supplicant.conf’ file as indicated later.


Editing the Config files

The two files we need to edit are ‘/etc/wpa_supplicant/wpa_supplicant.conf’ and ‘/etc/network/interfaces’. What you put into these files depends on your university’s network.

The first can be edited in the terminal by typing:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

in ‘wpa_supplicant’:

   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
scan_ssid=1 scan_ssid=1
pairwise=CCMP TKIP pairwise=CCMP TKIP

where <eduroam username> is your usual eduroam login and <eduroam password> is the hashed password.

Next, edit ‘interfaces’ by typing into the terminal:

sudo nano /etc/network/interfaces

and adding in:

 auto lo wlan0
     iface lo inet loopback
     iface eth0 inet dhcp
     iface wlan0 inet dhcp
        wpa-driver wext
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
     iface default inet dhcp


You may also need your university’s security certificate – this can usually be found with the other details for manually connecting to your university’s WiFi. Once you have found it, add it to the folder ‘/etc/ssl/certs/’ and then link back to it from within your ‘wpa_supplicant.conf’ file by adding:


where ‘/etc/certs/<NameofCert>’ is the name/location of the certificate needed.

Once this is done, you will need to run wpa_supplicant:

sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

You may need to reboot to get it to connect.


You may find that your Raspberry pi resets key_mgmt to “none” on connecting to Eduroam and lists as “disassociated from Eduroam” – if this is the case, you may find it easier to work on a copy and overwriting the original with the Eduroam version.

Useful links

Eduroam for RasPi at Bristol University

Eduroam for RasPi at Cambridge University


Digital Cities: The future of urban life

In the modern age, everything is becoming smart. From phones, televisions and even home appliances. But the ‘Smart movement’ is also taking place on a much bigger scale; whole cities are becoming smart.

But what is a smart city? Whilst there is no complete definition as to what a smart city is, they are based around using technology to create solutions to modern life problems. For example, Barcelona has introduced ‘smart traffic lights‘ that provide “Green light corridors” to emergency service vehicles, as well as introducing new bus services that use technology to ‘ensure the system is managed effectively’.

I created this short video to give a basic explanation of smart cities and their aims:

Creating my Digital City Visualizations

Because of the lack of local data available, I had to use mock data & data from other cities to test my app – In this case Bristol.

I made 2 visualizations using PHP – one takes percentages of residents happy with their local green areas and represents it with the number of living and dead flowers in a field, the other takes the number of shopping trolleys found in rivers and represents that as dead fish in a river.

Building the Automated Home


Raspberry Pi checking weather

Next I made a miniature model of a house fitted with a Raspberry pi & Arduino. The Arduino was wired up to a selection of sensors and servo motors, with a small screen on top. I programmed the Raspberry Pi to read in live online data, such as weather, sunset, and temperature. If the weather was bad, the servo motors would spin and the windows would shut, and if the weather was dry and sufficiently warm, the windows would open.

The Raspberry Pi was connected to a Unicorn Hat, which I setup to scroll text across according to the weather data, for example, if it was rainy, it would scroll the word “Rain” in blue.


Rain Sensor allowing for viewer interaction


The house was also wired up with sensors that would override the online data inputs, such as in the case of unexpected rain showers. This also allowed for viewer interaction during exhibition.

Related Links

News Report: Bristol UK’s leading Digital City outside London

Bristol Open Data

3D Modelling for the Immersive Vision Theatre

We were tasked with creating a 10 second animation in Blender for the Immersive Vision Theatre. We had roughly 2 weeks to create it, so we had to keep it simple yet still demonstrate our knowledge of Blender and 3D modelling.

We all decided to create a different game each. Meg (View her website Here!) created Space Chess, Jack made Space invaders, Rachel made Pac-Man, Harry made Tetris, James made Monopoly, and I made first-person Sonic, as I felt this would work well in the IVT.

I decided to go for a low-poly aesthetic as we had limited time, so I needed to keep it simple whilst still making it look good. Having previous experience of Blender, I was able to easily create assets for my animation such as springs, rocks and spikes.


Work in progress

To render for the dome,we had to use Blender’s fish eye camera. We also had to take into account the angle of the screen, which means we have to angle the camera roughly 25º down.

sonic test0205.png

One of the frames from my animation, rendered in Fisheye.

Because the Dome is truncated, we had to edit it to fit in After Effects to crop 20% off the top. We also took this as an opportunity to add transitions and audio to make our work flow better.

My part of the animation, ready to be put together with the rest in After Effects ready for our presentation.

Combining Art & Technology: The Painting Robot

Our Latest project, dubbed ‘Pip3tt3’, involved creating a robot that takes virtual data and represents it in the physical world, using a Raspberry Pi and/or Arduino

In this instance, three of us came together to create three different methods – and a different colour for each; Blue for tweets to #pipblue on Twitter (Meg’s part), Green for social media notification noises (Jack’s part), and purple for live webpage hits (My part).


My part of the ‘robot’ used live web hits on my server web page to tell the robot to paint. To do this, I used a Raspberry Pi with Apache and PHP installed. I used a backwards SSH tunnel from my server that activated when a script was run on my Pi.


The first prototype using a relay switch and small solenoid – which turned out to be too small!

To get the messages from point A to point B I used Beanstalk – which has the capabilities to take on multiple ‘jobs’, so it could deliver messages to multiple different Arduinos, however, in this case, it only needs to tell one to switch on!

pi gotjob

Using Beanstalk to send jobs via the Raspberry Pi.

The Arduino part, however, uses the same code as the other 3 parts of the robot. It takes an input, in this case ‘on’, which tells it to use the attached solenoid to release some paint.


The wiring of the robot is actually quite simple – as seen above – it uses one 9v battery, a relay switch, and a 12v 1kg force solenoid (smaller ones were too weak to squeeze the pipette!). It is housed neatly inside a wooden box with a 3D printed holder for the pipettes.


pi cam

The Pi Camera, which we used to record the painting process.


First Tester painting created by the robot


Final painting created by the robot during presentation