4 This is a simple C / NON-OS SDK based firmware for the
5 [ESP8266](https://espressif.com/en/products/hardware/esp8266ex/overview)
7 [MAX7219](https://www.maximintegrated.com/en/products/power/display-power-control/MAX7219.html)
8 based display of 4 8x8 LED matrix modules to display a 24 hour clock, synced
11 It uses the ESP8266 SPI interface to talk to the MAX7219, though repurposes
12 MISO to be CS as the MAX7219 isn't strictly an SPI device:
18 GPIO12 (CS) -> LOAD / nCS
24 You will need an xtensa-lx106 toolchain and the Espressif [NONOS
25 SDK](https://github.com/espressif/ESP8266_NONOS_SDK). If the toolchain is in
26 the system path and the SDK resides in `/opt/esp8266-sdk` then a simple `make`
27 should output 2 ROM images (one for each flash slot).
29 If this is the first time you've built the project you'll need to modify
30 `project_config.h` to match your settings - in particular wifi details.
32 You can then flash to your device as follows (these addresses are for a 2MB
33 flash part, change the last 2 addresses to 0xFC000 & 0xFE000 for a smaller 1MB
37 esptool --port /dev/ttyUSB0 --baud 921600 write_flash \
40 0x1FC000 esp_init_data_default_v08.bin \
44 (You might need a `--flash_size` and/or `--flash_mode` parameter to keep your
45 device happy - I found getting this wrong led to a failure to boot correctly.)
50 Basic Over-the-Air upgrade functionality is included; `UPGRADE_HOST` and
51 `UPGRADE_PATH` must be set appropriately to form the base of the URL to check.
52 `version.txt` is looked for at the URL, and a `ESP8266-Upgrade-Version:` header
53 parsed to determine the version available for download. If this is later than
54 the running version then, depending on which flash slot is currently in use,
55 `rom0.bin` or `rom1.bin` will be downloaded into the non-running slot. If this
56 is successful the device will boot into the new image. A check for updated
57 firmware is made every time the wifi is reconnected to.
62 All my code in this project is released under GPLv3 or later.