All posts by gbaman

Mozfest 2016

This year once again, I was involved with the Mozilla Festival on the final weekend of October 2016. This year, I was (somehow) persuaded to be a Space Wrangler, alongside Dorine Flies.


The planning process for us started back in May, when along with the other Space Wranglers and Mozilla staff, we traveled to Berlin for a long weekend planning retreat.

While in Berlin, we planned out how we wanted the YouthZone to pan out and started discussing the types of sessions we would love to nab for the space. We also had many interesting conversations with other Wranglers on possible collaborations at the festival.

Festival lead up

Over the next few months in the lead up to the festival, the call for proposals opened and we received well over 100 session proposals. We had painful task of then whittling those down to just over 60 sessions for the weekend. This entire process was done in the open online via the festival proposals Github repository.


The Friday of the festival was the setup and facilitator training day.
At it, we had about 45+ of our fantastic YouthZone facilitators.

The first part of the morning was facilitator training, provided by Mozilla.
After this, all the spaces split off to their respective floors. We got everyone from the YouthZone together and went over specific details for the weekend.

After lunch, we started the logistical nightmare of setting up 64 Raspberry Pis across 2 Pi labs!

Vincent busy doing the initial equipment inventory.
Vincent busy doing the initial equipment inventory.
So many PiTops!
So many PiTops!

The setup process, although a very complex one, was completed in a few hours thanks to help from the large army of volunteers.

The result was a main classroom featuring 38 PiTop Ceeds and a smaller classroom featuring 26 DVI monitors (from Computer Aid International). The entire setup made use of Raspberry Pi 3s (provided by PiTop and Raspberry Pi Foundation), a wired network (with a little help from Ravensbourne and NI Raspberry Jam) and to top it all off, running the next experimental PiNet Jessie.

Bawar running final tests on PiTops
Bawar running final tests on PiTops

Along with setup, some of the team spent the afternoon creating the posters to plaster around the Ravensborune.

We also had the laser team (headed up by Amy Mather) upstairs on the 9th floor getting their lasercutting workshops ready for the weekend.


The festival officially opened on Saturday morning, with the team down for 8am (something that didn’t go down very well earlier when they were told they needed to be down by then).

Throughout the day, the Raspberry Pi volunteer team ran 12 workshops from Dave Hones’s “Code in Space” workshop to 12 year old Elise’s “Spooktacular Sonic Pi” workshop and Femi/Nic’s fantastic Crumble robot workshop!

Frank-Pi Pi-group



In parallel to the Pi workshops, we also had Cat Dunicliff running her VR workshops using kit on loan from Google Expeditions team.



Then, up on the 9th floor, throughout Saturday, Amy Mather and her team ran a series of lasercutting beginners workshops.


Laser-example Amy-laser-kid Amy-laser-laughing

On the Saturday evening, 35 celebrated the success over pizza! Unfortunately due to a minor mixup with the restaurant, we ended up split across 2 of the restaurants across London. Will say though, Franco Mancas pizza was excellent.

"My pizza has arrived!" - Cerys (with slightly tired Amy)
“My pizza has arrived!” – Cerys
(with slightly tired Amy)

Pizza-2 Pizza3


On the Sunday morning, the team had a little longer of a lie in, with them all arriving for 9am.

Once again, we had another fantastic set of workshops with Raspberry Pi based workshops ranging from Edublocks by Josh, Scratching stuff from your kitchen by Aoibheann and automatic twitter powered photobooth by Vincent/Sam.

Amy and the lasercutting team continued another 2 lasercutting workshops on the Sunday and Cat was joined by Pietro from Google to run some Google Expeditions workshops.



Mozfest has been a fantastic journey, starting right back in May, up to now. We have already started discussions for 2017.

Myself and Dorine set out from the start with the mission to provide youth (and the young at heart) the opportunity to learn new skills and discover exciting new technology. We set out to widen what the attendees (especially kids) thought was possible and provide them with opportunities to see that hands on.
These are going to be the digital innovators of tomorrow!

Alongside this mission, we had a 2nd, less shouted about mission. We wanted to provide opportunities and build up the skills/confidence of our amazing volunteer team. Over half of the sessions run at YouthZone were lead by youth. Our youngest facilitator this year at Mozfest was only 10! Of those youth, a majority had never given a proper workshop to a group of complete strangers.
We gave them this opportunity in a safe space, always with someone with a little more experience on hand, just in case. The feedback from them all has been amazing and I am pretty confident we will have over 90% of this years team, applying again to run sessions next year.

Personally, I feel we accomplished both of these over the weekend. There are of course numerous things we could have done better, but on the whole, I think we didn’t do half badly.


To pull off 25 Raspberry Pi based workshops, 4 Google Cardboard workshops and 5 lasercutting workshops, required a heck of a lot of help.

First, I want to say a huge thanks to the army of volunteers that got thrown together over the past few months. Although they all already know it, it is worth saying again… You guys were all awesome! Well over 45 of them showed up over the weekend and were given jobs ranging from lifting monitors, to wrapping cables to counting the exact number of crocodile clips at the end to creating 30+ posters!

The other big thanks I want to make is to our fantastic partners. They provided equipment and staff to make whole thing logistically possible. These include (in no particular order)


Raspberry Pi Zero – Programming over USB! (Part 2)

This is a follow on post from the older, more detailed documentation in an earlier post.


An extremely simple new way to setup Raspberry Pi Zero as a USB virtual network gadget, allowing SSH, SFTP, VNC etc over a single USB cable. All without need of a keyboard, mouse, screen etc to setup!
To make it clear though, this can only work with the Raspberry Pi Zero.

Quick history lesson

So back over Christmas 2015, I had worked on getting the Raspberry Pi Zero OTG/Slave USB mode working and documented. My work was based off the excelent work done by awesome volunteers from the Raspberry Pi community here and here.
Back then, it required you have a screen, keyboard, mouse and internet connection to set everything up from a stock Raspbian image. This was a bit of a pain if all you had was your normal Windows/Mac/Linux computer with downloaded Raspbian, an SD card, Pi Zero and a USB cable.

Then, with the  2016-05-10 release of Raspbian, the required modules and kernel version were included on the stock Raspbian images, but they still required configuring. At least all this could be done with a screen and keyboard plugged into the Pi Zero (no internet required).

Now, after a heck of a lot of Linux Kernel documentation digging/hunting around, I have stumbled across what seems to be a very little known kernel cmdline parameter. This parameter allows us to do all the configuration on the /boot partition, which is formatted FAT32 and readable on Windows/Mac/Linux (vs normal root partition only being readable with Linux).

What does this mean?

You can now set up a virtual network connection between your Raspberry Pi Zero and normal PC using a single USB cable in a matter of seconds, without the need for any extra hardware!
No need for an HDMI screen, keyboard, mouse etc, all with stock Raspbian Jessie lite or full.
You can then SSH into the Raspberry Pi Zero, copy files with SFTP or use VNC (extra installation required).

How do I set it up?

Setup is super simple! Once you have flashed your Raspbian image, should take only a few minutes to set it up! See guide below.

Big Bang Fair 2016

This year, for the first time I got the opportunity to head over the UK Big Bang Fair in Birmingham. I had been meaning to try and get over for few years, but an opportunity arose this year to help out the Raspberry Pi Foundation so thought, why not.

Breathe on this...
Breathe on this…

What is the UK Big Bang Fair?

Big Bang Fairs are science/tech fairs for school ages kids. They are dotted up and down the UK (sometimes under different names). They are excellent as include exhibitors from industry and also usually include regional heats for the National Science + Engineering Competition. Winners of those heats get invited over the finals at the UK Big Bang Fair in Birmingham in mid March each year.

Over the 4 days the fair was running at the NEC, over 70,000 people came through the doors, most being schoolkids and families.


I was there from the Thursday-Saturday volunteering with the Raspberry Pi Foundation with Astro Pi on the UK Space Agency stand.

We had set up 4 Raspberry Pis with Sense HATs, 3 of which were set up with the excellent Pixel Art activity, while one was set up with a humidity reading program.

Over the 3 days I was there, we were constantly inundated with kids! Was great to hear 95% of them were well aware who Tim Peake was and they thought it was pretty cool they could be creating code that could end up in space!

Some students testing the humidity in their breath
Some students testing the humidity in their breath
"Look what I made!"
“Look what I made!”
Trying to beat the humidity record.
Trying to beat the humidity record.
Creating pixel art using the Sense HAT!
Creating pixel art using the Sense HAT!

Plus, of course I ended up in one of the spacesuits on the Saturday!

BBC Microbit with MicroPython

If you haven’t read my initial first impressions of the Microbit blog post, I would suggest have a glance over it first.

This blog post is still a work in progress.

A few months back, I got the opportunity to sit in a meeting with Nicholas Tollervey while at Raspberry Pi on internship. He had with him an item,  rarer at the time than gold dust, an early prototype of a BBC Microbit and he was very excited!
Around then, Damien George (lead developer of MicroPython) had just got a very rough build of MicroPython running on the Microbit.
Nicholas just had a very rough prototype with him which you simple got a REPL (Read Eval Print Loop, type command in, instantly get result) over a serial connection to the Microbit. But, it was enough to get us all very excited!

Since then, the project as a whole has come a huge way including the development of the excellent Mu editor and overall is now generally very stable with an excellent set of documentation.

So why is this exciting?

Although the other platforms built for kids to write code with for the Microbit are great, Python has the massive advantage that kids already learning it.
Python is by far the most popular programming language for schools today. The Microbit will work as a great inroad for schools wanting to teach new students a fun introduction to Python.
For those schools already teaching it Python, those students can go even further using some of the more advanced features and libraries!

Writing your Python code with Mu

Mu editor with the same shake program, written in Python using MicroPython.
Mu editor with the same shake program, written in Python using MicroPython.

One of the extremely exciting additions recently has been the launch of the Mu editor.

Mu is an extremely simple Python editor that has similar features to IDLE, but is far easier to use. It uses the QT platform, allowing single file executables for Windows, Mac and Linux to be built. They just work which is wonderful.
The editor allows you write your Python code, then simply hit the flash button to flash it onto your plugged in Microbit. That is it, no need to download a .hex file and copy it over manually, Mu takes care of it all.

A key feature though of Mu is it is 100% offline. No web access is required which is a very nice feature that I am sure many schools will appreciate. Although it doesn’t include an emulator like the other 3 web based editors, it doesn’t really need it given you can just hit flash and it is on your Microbit, simple.

On top of this, it also includes support for the REPL built in. The REPL commandline can be opened with a single click. This allows you to see any outputs in your script (done with print()) and even get user input using input().
I really love this given it lets you experiment and try stuff out, before writing your main program.

Along with writing your programs in the main editor then flashing them to the Microbit, you can also try out stuff using the REPL.
Along with writing your programs in the main editor then flashing them to the Microbit, you can also try out stuff using the REPL.

Using Mu in schools

Mu is a really cool tool, but I have been getting questions from a stack of teachers about using it in school on locked down school computers.


If you have Windows computers, you can grab Mu (a single .exe file, no installation needed) from the Github page (or a direct link to the downloads page).

If you want to be able to use the REPL (highly recommended) you will also need to download and install mbed driver.
It is well worth it, although you are able to do it without it. You just won’t have access to the REPL.

Mac / Linux

On Mac OS and Linux, you can download the single executable applications from the Github page (or a direct link to the downloads page for Mac OS and Linux).
There is no mbed driver needed for Mac OS/Linux as it is built in, it is built in so you can use the REPL straight away!

Raspberry Pi

There are specific versions of Mu for the Raspberry Pi! So if you want to use the Microbit with a Pi, you will soon be able to simply type “sudo apt-get install mu”, although unfortunately that isn’t ready just yet. The direct link to the Raspberry Pi versions can be found here.
There is no mbed driver needed for Raspberry Pi Linux, it is built in so you can use the REPL straight away!

External hardware

You can do some pretty cool things with MicroPython and the BBC Microbit by connecting other hardware to it.


Everyone loves flashy multicoloured LEDs, right? Well the Microbit can drive a stack of them. In our tests, it can drive at least 256 pixels at one time! I have been working on testing the module and also writing documentation for it.

You can check out the Neopixel module documentation here.


By attaching a simple buzzer to your Microbit, you can get it to play music. In the case below, Amy Mather also made use of Makey Makey style resistive touch to create a music keyboard!

You can check out the music module documentation here.

SPI/I2C modules

Unlike the other programming environments, MicroPython allows more advanced students or developers to interact with additional sensors/modules using the I2C/SPI interface libraries.

This opens up use possibilities for connecting additional modules to the Microbit. For example, you could connect an SPI LCD, an OC2 pressure sensor or even an SPI GSM modem to send text messages from your Microbit!
Is worth keeping in mind, although you could do all this, it isn’t as simple as importing a module. It will require a little work (and datasheet reading), but the important bit is people have the tools to do it.

Other peoples projects

Nicholas has also been making a few videos to demo some new Micropython features.

To conclude

I am extremely excited for MicroPython and Mu. Although there is going to be a simple web based MicroPython editor coming soon, I think many schools will want to use Mu instead given it can be run completely offline and includes awesome extra features like the REPL.

Although the other programming environments are excellent, and I take my hat off to their development teams as they have done a really great job. I still think MicroPython is the one everyone should be keeping an eye on. It has huge potential to be grabbed by students and allow them the true freedom to run with their ideas while learning a useful language at the same time!