top of page


January-May 2023

Project in collaboration with Nefeli Lemessiou

The University of Edinburgh


Brief: Design, program and make a set of connected devices, around the theme of remote experiences

Research demonstrates play is one of the best ways to connect with the people in our lives, including when we sometimes can’t be together physically. And though the advent of mobile and other online games has greatly contributed to this, we wanted to consider this from a more analog perspective.


Milo is a 1v1 colour memorisation game designed as a reimagining of the classic game Simon. It is coded using an M5StickC Plus, and uses an API system to allow for long distance gameplay. This encourages users to implement play into their daily life, and feel close to their loved ones however far they may be.


We decided on a ‘portable’ device with a separate stand as opposed to a larger 'fixed' one, as user testing showed this to be a better option for comfortable gameplay. 


We then iterated on a form and aesthetic that would be reminiscent of childhood play, whilst also appealing to an older audience. We decided on wood and glass as they felt more refined, and paired them with a pastel color scheme for a colourful but more subtle overall look.

(Sketches below by Nefeli Lemessiou)

Game Mechanics

As the game in itself is inspired by ‘Simon’, this was our main source of inspiration in defining the game mechanics. Our main job then was to decide how to turn it into a two person game that would still be as engaging.

Other than adapting the rules, the main departure from the original was separating the light as opposed to having the buttons light up, as we believed this was more interesting from a design perspective.

Coding & Electronics

Once the game mechanics were defined, we were able to create a flowchart for the code. The game was coded using the Arduino IDE and language (a C++ variant), and runs off an M5StickC Plus, which allows for better optimisation as the screen, on/off button and Wifi module are all included inside already. 

We ended up using the following system: Colored buttons being pressed are translated as numbers in a string variable format. The string is sent to the other player through an API, and the other M5 reads through the string, translating it back into colors for the player. The string builds up throughout the round, and is fully reset when a new round starts.


Step 1

Blowing, cutting and sandblasting the glass components.

Step 2

Laser cutting, assembling and painting the base and button caps.

Step 3

Soldering the electronics, and assembling them with the wood and glass components.

bottom of page