diff --git a/INSTALL.md b/INSTALL.md index 32eb05a76dddcf18868bf828188040d96d0bddeb..81fc15d859d4beafc2c2b7e8d8fb029a4fda6aa7 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,5 +1,39 @@ Installation der Firmware -------------------------- +========================= + +Die Firmware des Zeitwürfels kann entweder über *Arduino IDE* oder *ESP IDF* übersetzt und übertragen werden. + + +Arduino IDE +----------- + +*Arduino* erlaubt einen schnellen Einstieg, allerdings sind erweiterte (stromsparendere) Konfigurationsmöglichkeiten hier nicht möglich. + +### Vorbereitung + + 1. Aktuelle [Arduino IDE](https://www.arduino.cc/en/main/software) installieren + 2. Unter Windows den (unsignierten) [FireBeetle ESP32 Treiber](https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/FireBeetle-ESP32.inf) installieren. + 3. Arduino Umgebung für den FireBeetle ESP32 gemäß [DFRobot Wiki](https://wiki.dfrobot.com/FireBeetle_ESP32_IOT_Microcontroller(V3.0)__Supports_Wi-Fi_&_Bluetooth__SKU__DFR0478) hinzufügen: + * Unter *Datei* / *Voreinstellungen* als *Zusätzliche Boardverwalter-URLs* die Adresse `http://download.dfrobot.top/FireBeetle/package_esp32_index.json` eingeben und mittels *OK* bestätigen + * Unter *Werkzeuge* / *Board: ...* den *Boardverwalter...* öffnen, das automatische Update abwarten und dann den *FireBeetle-ESP32-Mainboard by DFRobot DFRDuino* in einer aktuellen Version (0.0.9) installieren + + +### Verwendung + + 1. Die Arduino IDE starten und `firmware/sketch_timecube/sketch_timecube.ino` öffnen -- weitere Tabs mit den restlichen Dateien werden ebenfalls geladen + 2. Unter *Werkzeuge* / *Board: ...* den *FireBeetle-ESP32* auswählen + 3. Die Datei `config.h` anpassen, ggf. weitere Änderungen vornehmen + 4. Mit *Überprüfen/Kompilieren* unter *Sketch* die getätigten Änderungen prüfen. + 5. Den Zeitwürfel per USB mit dem PC verbinden und unter *Werkzeuge* / *Port* entsprechend auswählen (z.B. `/dev/ttyUSB0`) + 6. Ebenfalls unter *Werkzeuge* den *Uploadspeed* auf `115200` stellen und ebenda *Serieller Monitor* starten + 7. Unter *Sketch* / *Hochladen* das Übertragen der Firmware starten. Und warten. + 8. Auf dem seriellen Monitor erscheint eine Ausgabe nach erfolgreichem Start. + + +ESP IDF +------- + +Das *Espressif IoT Development Framework* ist das offizielle Entwicklungsframework für den ESP32 und erlaubt (durch die Datei `sdkconfig`) eine erweiterte Konfiguration des zugrunde liegenden [FreeRTOS](https://www.freertos.org/)-Kernels, wie z.B. eine niedrigere Taktfrequenz. ### Voraussetzungen @@ -11,6 +45,8 @@ Folgende Komponenten werden benötigt: ### Vorbereitung +Die Konfiguration in der Datei `firmware/main/config.h` muss angepasst werden. + Auf einem debianoiden Linux mit aktueller Version können die benötigten Komponenten wie folgt installiert werden: # Dieses Repo für Firmware rekursiv auschecken @@ -37,9 +73,9 @@ Nach der Vorbereitung im `timecube`-Verzeichnis folgende Schritte ausführen: make -### Flashen des Würfels +### Flashen des Zeitwürfels -Mittels `make flash` kann die Software dann auf den Würfel geflasht werden. +Mittels `make flash` kann die Firmware dann auf den via USB verbundenen Würfel übertragen 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` diff --git a/README.md b/README.md index 79c9d333f8546ec7edf1f42e5790c91ce90f4618..d9cab9a66e625321d26cc01133868a0e4e3f7e76 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,22 @@ Anleitung * [Anleitung zum Bauen der Firmware für den Würfel](INSTALL.md) +Lizenz +------ + +Der Zeitwürfel ist Freie Software: Sie können es unter den Bedingungen +der GNU Affero General Public License, wie von der Free Software Foundation, +Version 3 der Lizenz, weiter verteilen und/oder modifizieren. + +Der Zeitwürfel wird in der Hoffnung, dass es nützlich sein wird, aber +OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite +Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. +Siehe die [GNU Affero General Public License](LICENSE) für weitere Details. + +Sie sollten eine Kopie der GNU Affero General Public License zusammen mit diesem +Programm erhalten haben. Wenn nicht, siehe https://www.gnu.org/licenses/ . + + Grundüberlegungen ----------------- diff --git a/firmware/config.example.h b/firmware/main/config.h similarity index 100% rename from firmware/config.example.h rename to firmware/main/config.h diff --git a/firmware/main/timecube.cpp b/firmware/main/timecube.cpp index 46d12ee48781a731331597b80098665e4373ddf1..c037951051fcb6203843faabac142875086f22d7 100644 --- a/firmware/main/timecube.cpp +++ b/firmware/main/timecube.cpp @@ -11,7 +11,7 @@ #include <driver/rtc_io.h> #include <driver/adc.h> -#include "../config.h" +#include "config.h" #include "accelerometer.h" #include "timelog.h" diff --git a/firmware/sketch_timecube/accelerometer.cpp b/firmware/sketch_timecube/accelerometer.cpp new file mode 120000 index 0000000000000000000000000000000000000000..a10fea9079f94deaada05c6ad4975fe2b77c9266 --- /dev/null +++ b/firmware/sketch_timecube/accelerometer.cpp @@ -0,0 +1 @@ +../main/accelerometer.cpp \ No newline at end of file diff --git a/firmware/sketch_timecube/accelerometer.h b/firmware/sketch_timecube/accelerometer.h new file mode 120000 index 0000000000000000000000000000000000000000..9e2c372da4bd63ccdd8d2368533755a546b4e4b1 --- /dev/null +++ b/firmware/sketch_timecube/accelerometer.h @@ -0,0 +1 @@ +../main/accelerometer.h \ No newline at end of file diff --git a/firmware/sketch_timecube/config.h b/firmware/sketch_timecube/config.h new file mode 120000 index 0000000000000000000000000000000000000000..bb79bec40b174c69c4315f89ce59cda71513d497 --- /dev/null +++ b/firmware/sketch_timecube/config.h @@ -0,0 +1 @@ +../main/config.h \ No newline at end of file diff --git a/firmware/sketch_timecube/sketch_timecube.ino b/firmware/sketch_timecube/sketch_timecube.ino new file mode 120000 index 0000000000000000000000000000000000000000..7cefa8ab5eabd841114817cf47405b1b67b2100b --- /dev/null +++ b/firmware/sketch_timecube/sketch_timecube.ino @@ -0,0 +1 @@ +../main/timecube.cpp \ No newline at end of file diff --git a/firmware/sketch_timecube/timelog.h b/firmware/sketch_timecube/timelog.h new file mode 120000 index 0000000000000000000000000000000000000000..7f09873fcdfd5bc5f0c19a042d1f2cecadb93d2b --- /dev/null +++ b/firmware/sketch_timecube/timelog.h @@ -0,0 +1 @@ +../main/timelog.h \ No newline at end of file