Commit d641aa12 authored by Bernhard Heinloth's avatar Bernhard Heinloth
Browse files

Firmware: Renamed, improved doc, added CI

parent 2af3435e
variables:
GIT_SUBMODULE_STRATEGY: recursive
firmware:
image: debian:stable
before_script:
- ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime
- export DEBIAN_FRONTEND=noninteractive
- apt-get update -qq && apt-get install -y -qq make git wget libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache
- git submodule update --init --recursive
- git clone --depth=1 --recursive --branch v3.3 https://github.com/espressif/esp-idf.git
- export IDF_PATH="$(readlink -f esp-idf)"
- wget -qO- https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz | tar xvz
- export PATH="$PATH:$(readlink -f xtensa-esp32-elf/bin)"
script:
- mkdir -p firmware/build
- cp firmware/config.example.h firmware/config.h
- cd firmware/build
- cmake ..
- make
- make flash || true
artifacts:
paths:
- firmware/build/bootloader/bootloader.bin
- firmware/build/partition_table/partition-table.bin
- firmware/build/timecube.bin
- firmware/components/arduino/tools/esptool.py
......@@ -14,5 +14,5 @@
path = server/www/assets/apexcharts.js
url = https://github.com/apexcharts/apexcharts.js.git
[submodule "sketch_timecube/arduino"]
path = timecube/components/arduino
path = firmware/components/arduino
url = https://github.com/espressif/arduino-esp32.git
Bauen und Flashen der Würfelsoftware
====================================
Voraussetzungen
---------------
Auf dem Rechner müssen folgende Komponenten installiert sein:
* xtensa-esp32-Toolchain, siehe https://docs.espressif.com/projects/esp-idf/en/latest/get-started/linux-setup.html
* das ESP IDF *in Version 3.3* (die verwendeten Arduino-Erweiterungen kommen aktuell mit neuen Versionen nicht zurecht): https://github.com/espressif/esp-idf
Bauen der Software
------------------
```
mkdir build
cd build
cmake ..
make
make flash
```
Flashen des Würfels
-------------------
Mittels `make flash` kann die Software dann auf den Würfel geflasht werden.
Hat man mehr als einen ESP32 angeschlossen, dann kann/muss man mittel Umgebungsvariable `ESPPORT` angeben, welcher Chip geflasht werden soll:
`ESPPORT=/dev/ttyUSB5 make flash`
Installation der Firmware
-------------------------
### Voraussetzungen
Folgende Komponenten werden benötigt:
* [xtensa-esp32-Toolchain](https://docs.espressif.com/projects/esp-idf/en/release-v3.3/get-started/linux-setup.html)
* [ESP IDF *in Version 3.3*](https://github.com/espressif/esp-idf) (die verwendeten Arduino-Erweiterungen kommen aktuell mit neuen Versionen nicht zurecht)
### Vorbereitung
Auf einem debianoiden Linux mit aktueller Version können die benötigten Komponenten wie folgt installiert werden:
# Dieses Repo für Firmware rekursiv auschecken
git clone https://gitlab.cs.fau.de/heinloth/timecube.git
cd timecube
git submodule update --init --recursive
# Benötigte Pakete installeiren
sudo apt-get install make git wget libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache
# ESP IDF Version 3.3 rekursiv auschecken
git clone --depth=1 --recursive --branch v3.3 https://github.com/espressif/esp-idf.git
export IDF_PATH="$(readlink -f esp-idf)"
# xtensa-esp32-Toolchain laden (URL von der linux-setup Webseite)
wget -qO- https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz | tar xvz
export PATH="$PATH:$(readlink -f xtensa-esp32-elf/bin)"
### Bauen der Firmware
Nach der Vorbereitung im `timecube`-Verzeichnis folgende Schritte ausführen:
mkdir build
cd build
cmake ..
make
### Flashen des Würfels
Mittels `make flash` kann die Software dann auf den Würfel geflasht werden.
Hat man mehr als einen ESP32 angeschlossen, dann kann/muss man mittel Umgebungsvariable `ESPPORT` angeben, welcher Chip geflasht werden soll:
`ESPPORT=/dev/ttyUSB5 make flash`
......@@ -24,9 +24,8 @@ Die Zeiterfassung soll dabei helfen das Verhältnis der verschiedenen Tätigkeit
Anleitung
---------
[Detaillierte und bebilderte Montageanleitung](MONTAGE.md)
[Anleitung zum Bauen der Würfelsoftware](CODE_CUBE.md)
* [Detaillierte und bebilderte Montageanleitung](MONTAGE.md)
* [Anleitung zum Bauen der Firmware für den Würfel](INSTALL.md)
Grundüberlegungen
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment