Skip to content

Introduction

Sander edited this page Oct 3, 2018 · 12 revisions

Synchronisation between distributed systems is a returning technical challenge within the ASML embedded software domain. This assignment attempts to challenge you, the competitor, to experience and solve typical problems related with the synchronisation of several individual systems.

The system your team will be creating should eventually display an animation on four individually operating, but Wifi connected LED matrix displays. All displays together need to form a bigger square display of 4x4 LED matrix modules. The 4 individual display bars should work together in harmony to show a synchonized animation spreading over all 4 display bars.

To maximise the robustness of the system, the system should be able to cope with one or two malfunctioning modules and continue to function albeit with a smaller display size.

Facilities

Available Hardware

4 of each:

  • Huzzah Feather ESP8266@80MHz :
    • 80KB user RAM
    • 4MB flash
  • Chain of four MAX7219 8x8 dot matrix LED modules
  • Five wire female-female jumper wires
  • USB A to mirco-USB B cable

The four chained together MAX7219 modules can be connected to the Huzzah Feather as follows:

MAX7219 ESP8266 Description
VCC 3V3 +3.3V (max 400mA)
GND GND Ground (0V)
DIN GPIO13/MOSI Serial Peripheral Interface Data
CS Any GPIO (e.g. GPIO16) except MISO Chip select
CLK GPIO14/SCK Clock pulse

Development environment

The ASML laptop comes pre-installed with the below mentioned software. If problems are encountered you can verify if all these parts are correctly installed and functioning:

  1. USB to UART driver: CP2104 Virtual COM Port
  2. Editor: Visual Studio Code
  3. IoT development environment including necessary cross-compilers and library manager: Platform IO. Visual Studio Code install instructions.
  4. Version control tooling: GIT V2.6.3_X64. Alternative: GitHub desktop

Scope / context

There are no limitations on the use of alternative third party libraries then the once already part of this project.

Clone this wiki locally