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

Add Arduino Support (again)

parent 8e3ec728
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`
......@@ -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
-----------------
......
......@@ -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"
......
../main/accelerometer.cpp
\ No newline at end of file
../main/accelerometer.h
\ No newline at end of file
../main/config.h
\ No newline at end of file
../main/timecube.cpp
\ No newline at end of file
../main/timelog.h
\ No newline at end of file
Markdown is supported
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