Arbalet Mesh (en)


#1

Arbalet Mesh project
A mobile and handy interface

The Arbalet Mash project is in line with others Arbalet Living Lab’s projects, which is being able to provide an introduction in computer science to everyone, this in a artistic and entertaining environment through large format “Pixel Art”
If you love in Bordeaux, maybe you noticed already the work of our association, such as our collaboration with the , or one the A1 building’s facade in the university campus


We are a team of 7 IT students from ENSEIRB-MATMECA engineering’s school whose decided to join Arbalet Living Lab project to help make the implementation simpler and cheaper to increase the accessibility of this learning tool to everyone.

Pixel Art

“Pixel Art” is an art style which reminds the art style of old-school video game, when the screen resolution didn’t allow back then to show more pixels, thus the drawing were often very minimalists and pixels were very visible, like the drawing below :


Drawing found dribble and Wikipédia

Arbalet Mesh principle

In our case, we are displaying images on very large surface, it is necessary for every pixel to have a micro controller, and so, they need to be synchronize between themselves. Before, it was necessary to link every pixel to a central unit which was responsible to send every pixel the information they need to function. But they were some drawbacks, for instance, every micro controller had to be physically linked to the central unit, which restricted severely the area of effect and caused some infrastructure problems, not to mention the long time it took.

Mesh Topology

The Mesh topology, or network communication system in mesh, is an organisation thought so every dot in the network is connected to his neighbours, here, information will be sent from one dot to his closest neighbour, until every component of the network gets the information. Using this topology has two main advantages :

  • If one the component were to be out of order, we can still communicate with the others components thanks to the re-routing principle.
  • We are not forced to link every component to the main unit, which help reducing the amount of wiring necessary for proper functioning (no network wiring necessary).

Our goal

The goal for us is to find an evolutionary and efficient implementation answering the needs of this project, in order to do this, we have to widen our knowledge about the different technologies and modules the more fitted for the project, from a software point of view (programming language), electronic (extension module and micro controller type) and material. We will have to realize a stable and robust software integration to produce in the end 6 connected pixels in real-time, and, hopefully show the final prototype by summer 2019.


#2

Pixels

Pixels will be installed indoor, on window sills. Moreover, they have to be identical and switchable.
To do so, they need to :

  • communicate with each others using Mesh topology,
  • light up in a selected colour which can change,
  • be powered.

Electronic components

1) Communication and color choice

Pixels communicate with each others by using a WifiMesh network. Each of them is composed of a ESP32 card wich ensure Wifi communication.
ESP32 cards having a microprocesseur and enough memory, they are autosufficient - there is no need of Arduino card nor RasberryPi card.
Their goals are to ensure the network communication and to modify the pixel colour when needed.

2) Lights

The LED strip WS2812B, which is used in other Arbalet Projects, is used once again.
Both his power requirement and logical level are at 5V.

3) Alimentation

A power supply unit provides to a Pixel the required energy.
ESP32 cards and WS2812B strips having different operating voltage (respectively 3,3V and 5V), the power supply has to provide each one of them with the right voltage.

Circuit diagram


#3

First iteration

In this first iteration, we first focused on our material, then decided on simple objectives in order to accustom ourselves with it.

Materials used

For this project, we will use :

  • 6 ESP32 card, each one corresponding to a pixel. They are aquipped with development board, being easier to work with.
  • 6 USB cables, 3 of 20cm lenght, and 3 of 1m length.
  • 2 chargers with USB port
  • 6 Alim 5V 2A
  • 6 femelle adaptator to be weld

We then decided on the objectives of this first iteration, focused on the communication within the network.

The network

Let’s first introduce the structure of the Network. There is the server, to which the clients will connect, which supervises the connexion to the Mesh Network. It selects which informations will be send to the Mesh network, about which pixels to light and how.

This server then relay these information to the mesh Network, composed of several nodes, each one being an ESP32 card. A node has different function :

  • Root node : node located on the entrance of the network, link with the server.
  • Intermediary node : node running code and relaying messages to other nodes.
  • Leaf node : terminal node, not having to relay messages.

The network being able to arrange itself in order to relay messages to all nodes as fast as possible, these roles are interchangeable between nodes, which also help to overcome quickly network failure.

Our objectives

We decided two focus on two main features :

  • Communication server - ESP32. First, we will use serial communication through USB cable. Then, we’ll check if it’s possible to use Wi-Fi connexion without creating interferences with the Mesh network.
  • Communication ESP32 - ESP32, base of the Mesh network. We’ll start by testing how to initialize a connexion between these two cards, then we’ll verify the Mesh network property by distancing them enough so they can’t communicate anymore, and adding a third one between them.

To make sure that all data are send and received properly, cards will send each others number, and a card receiving a number will blink a LED as many times as what they received. The cards will be programmed by using the Arduino IDE, setup to upload code directly on the cards.

Our objective with this is to implement a proof of concept of the Mesh network.