Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin-Anpassungen für Heltec Lora Devices #15

Open
wants to merge 112 commits into
base: main
Choose a base branch
from

Conversation

SBajonczak
Copy link

Habe hier die Pinbelegung für Lora Geräte entsprechend angepasst.

Um das Wiring für HELTEC zu verwenden, sollte lediglich das LORAHELTEC Define einfach eingebunden werden.

Das Wiring bzw die zu verwendenten Pins habe ich in der Readme.md definiert.

no more needed with the latest commits at the original HX711 lib from bodge
added hint to updated HX711 lib
copy in other folder
copy in other folder
copy in other folder
copy in other folder
copy in other folder
move historic files to new directory
delet test file
ClemensGruber and others added 4 commits January 7, 2021 21:28
images added
This will automatically run the build on GitHub Actions.
Thus, it will improve confidence for the authors regarding
all further contributions.
added `^` for 

> any compatible version (new functionality in a backwards compatible manner and patches are allowed, 1.x.x). **RECOMMENDED**

recommended via: https://docs.platformio.org/en/latest/core/userguide/lib/cmd_install.html#description
amotl and others added 4 commits January 8, 2021 16:38
- A PlatformIO CI badge to show that the build is passing successfully
- A GitHub tag badge to show the most recent release version tag
This uses the most recent versions of the U8g2 and ESP32Servo libraries.

Both libraries are well maintained by their respective authors and
maintainers, so we should use them in favour of outdated libraries
which are no longer maintained.

A little adjustment has been made to one #include statement. The
updated library header file is now called "ESP32Servo.h" instead
of "ESP32_Servo.h".

Also, the servo default settings for the non-"SERVO_ERWEITERT" branch
have been adjusted.
Add badges for PlatformIO CI and GitHub tag
@amotl
Copy link
Member

amotl commented Jan 8, 2021

Hallo Sascha,

vielen Dank fuer Deinen Beitrag. Ich habe ein paar Anmerkungen dazu.

a) Koenntest Du die Aenderungen an den Dateien unter .vscode wieder rausnehmen und dafuer .vscode in die .gitignore-Datei eintragen? So rutschen diese Dateien nicht versehentlich wieder mit in den commit rein.

b) Weitere Kommentare kommen inline.

Viele Gruesse,
Andreas.

- Fortschrittsanzeige eingebaut
- Servo-Bibliothek geändert, jetzt ESP32Servo aus dem Bibliotheksverwalter und Servo-defaults für die neue Bibliothek angepasst
- PlatformIO-Support an neue Servo-Bibliothek angepasst
@andreash-esp
Copy link
Collaborator

Wenn ich das recht lese, dann ist mit dieser Änderung der HARDWARE_LEVEL 1 nicht mehr brauchbar für den normalen Heltec!

@SBajonczak
Copy link
Author

Hi @amotl habe deine Anpassungen eingefügt.

Ich würde dann auf die Inlinekommentare warten.

@andreash-esp ich hab jetzt den Hardware Level 1 nicht angepasst, weil ich wollte so wenig Eckpunkte wie nur möglich haben.
Aber du hast mich auf die Idee gebracht, dort ein ENUM zu verwenden, welches wir in einer Header Datei definieren können.

Generell wäre das bestimmt nett, die Einstellungen in einer Header Datei zu überführen, so dass auch Personen die nicht gleich die Entwickler sind, auch mal Einstellungen vornehmen können.

@amotl
Copy link
Member

amotl commented Jan 15, 2021

Hallo Sascha,

herzlichen Dank, ich schau gleich nochmal durch. Unabhaengig davon, dass .vscode nun in der .gitignore steht, sind die entsprechenden Dateien aber immer noch im Patch und muessten per git rm .vscode/* entfernt werden. Danke!

Viele Gruesse,
Andreas.

Copy link
Member

@amotl amotl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hallo Sascha,

ich bin mal schnell alles durchgegangen, was mir auf die Schnelle auffiel.

Vielleicht wollen @ClemensGruber oder @andreash-esp bei der Gelegenheit auch noch einmal drueber schauen? Ich muss zugeben, dass ich die Firmware selbst nicht einsetze, deswegen sind meine Kommentare ein wenig mit Vorbehalt zu betrachten ;].

Herzliche Gruesse,
Andreas.

hani-mandl.ino Outdated
Comment on lines 169 to 178
const int switch_vcc_pin = 22; // <- Vcc
const int switch_setup_pin = 21;
const int switch_vcc_pin = 16; // <- Vcc
const int switch_setup_pin = 22;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mit der HARDWARE_LEVEL-Definition ist ja scheinbar bereits vorgesehen, mit der gleichen Firmware verschiedene Hardware-Layouts beackern zu koennen, richtig?

Nimm doch Deine Hardware-Variante als weiteres HARDWARE_LEVEL == 3 hinzu? Oder aber kopple es ebenfalls an die LORAHELTEC-Definition?

hani-mandl.ino Outdated
Comment on lines 191 to 200
const int hx711_dt_pin = 5;

const int hx711_dt_pin = 2;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Evtl. ebenfalls an HARDWARE_LEVEL == 3 oder LORAHELTEC koppeln?

hani-mandl.ino Outdated
Comment on lines 2097 to 2105
rotating = true; // debounce Management
//rotating = true; // debounce Management
Copy link
Member

@amotl amotl Jan 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dies hier evtl. im Originalzustand lassen oder ebenfalls an eine neue #define-Konstante koppeln?

hani-mandl.ino Outdated
#define SERVO_ERWEITERT // definieren, falls die Hardware mit dem alten Programmcode mit Poti aufgebaut wurde oder der Servo zu wenig fährt
//#define SERVO_ERWEITERT // definieren, falls die Hardware mit dem alten Programmcode mit Poti aufgebaut wurde oder der Servo zu wenig fährt
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kannst Du das ebenfalls im Originalzustand belassen?

hani-mandl.ino Outdated
Comment on lines 116 to 117
//#define isDebug 3 // serielle debug-Ausgabe aktivieren. Mit >3 wird jeder Messdurchlauf ausgegeben
#define isDebug 3 // serielle debug-Ausgabe aktivieren. Mit >3 wird jeder Messdurchlauf ausgegeben
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dito.

hani-mandl.ino Outdated
Comment on lines 159 to 166
const int outputA = 33;
const int outputA = 33; // DT
#ifdef LORAHELTEC
const int outputB = 39; // CLK
#else
const int outputB = 26;
const int outputSW = 32;
#endif
const int outputSW = 32; // SQ
Copy link
Member

@amotl amotl Jan 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Schreibe das ruhig ausfuehrlicher, dann ist fuer das Verstaendnis und etwaige weitere Hardwarevarianten-Erweiterungen weniger Hirnverzwirnung notwendig.

#ifdef LORAHELTEC
const int outputA  = 33; // DT
const int outputB  = 39; // CLK
const int outputSW = 32; // SQ
#else
const int outputA  = 33; // DT
const int outputB  = 26; // CLK
const int outputSW = 32; // SQ
#endif

readme.md Outdated
Comment on lines 199 to 215
## Binär-Datei `hani-mandl.bin`

Die Datei `hani-mandl.bin` wurde mit folgenden Parametern für das Board Heltec ESP32 Arduino > Wifi Kit 32 compiliert:

```
#define HARDWARE_LEVEL 2 // 1 = originales Layout mit Schalter auf Pin 19/22/21
// 2 = Layout für V2 mit Schalter auf Pin 23/19/22
#define SERVO_ERWEITERT // definieren, falls die Hardware mit dem alten Programmcode mit Poti aufgebaut wurde oder der Servo zu wenig fährt
// Sonst bleibt der Servo in Stop-Position einige Grad offen! Nach dem Update erst prüfen!
#define ROTARY_SCALE 2 // in welchen Schritten springt unser Rotary Encoder.
// Beispiele: KY-040 = 2, HW-040 = 1, für Poti-Betrieb auf 1 setzen
#define USE_ROTARY // Rotary benutzen
#define USE_ROTARY_SW // Taster des Rotary benutzen
```

Eine Anleitung zum Flashen der Binär-Datei gibt es unter
http://hanimandl.de/2020/12/23/firmware-binary-flashen/
Copy link
Member

@amotl amotl Jan 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dieser Bereich, der in der README hinzugekommen ist, darf ruhig bleiben. Vielen Dank!

@amotl amotl mentioned this pull request Jan 16, 2021
@amotl
Copy link
Member

amotl commented Jan 16, 2021

Hallo Sascha,

mit #21 bringen wir nun generellen Multiboard-Support in den Code. So koennen die von Dir gewuenschten Aenderungen bzgl. der Pin-Anpassungen deutlich besser aufgenommen werden, ohne dass wir dafuer separate HARDWARE_LEVEL == 3 oder eigene LORAHELTEC #define-Konstanten einfuehren muessen.

Herzlichen Dank fuer Deinen Impuls.

Viele Gruesse,
Andreas.

@ClemensGruber
Copy link
Collaborator

Hi Sascha / @SBajonczak, vielen Dank für den Input hier und deinen pull request, Andreas / @amotl hat das zum Anlass genommen die board-Unterstützung grundlegen zu implementieren und dabei auch auf Variablen zuzugreifen die (automatisch) über die board definitions da sind wenn man über den Board-Verwalter die entsprechenden boards installiert, siehe #21

Wenn man die Heltec-Boards installiert gibt es vom LoRa-Board zwei Versionen:

  • HELTEC_WIFI_LORA_32
  • HELTEC_WIFI_LORA_32_V2

welches hast denn du verwendet und weißt du zufällig was da der Unterschied ist?

@amotl
Copy link
Member

amotl commented Jan 16, 2021

Hi Sascha,

mit #22 habe ich nun Deine Verbesserungen auf Basis von #21 eingebracht, dabei jedoch nicht zwischen Heltec WiFi LoRa 32 vs. Heltec WiFi LoRa 32 V2 unterschieden.

Vielleicht kannst Du da noch einmal drueberschauen und uns Rueckmeldung geben, ob das so klappen koennte?

Viele Gruesse,
Andreas.

@andreash-esp
Copy link
Collaborator

Funktioniert das, wenn die Pins 14, 27 und 5 bereits vom Lora-Board verwendet werden? Da steht im Pinout ja explizit "they must not be used for other purposes unless you know what you are doing"

@SBajonczak
Copy link
Author

@andreash-esp ich habe den hier im Einsatz. Bisher konnte ich keine Probleme sehen. Aber davon ab, ich verwende auch das Lora Device nicht aktiv. Ich vermute das es zu Problemen kommen wird, wenn man es aktiviert. Das habe ich nämlich mit der originalen Pinbelegung gemerkt. Dann konnte ich den Poti halt nicht gescheit verwenden :)

@SBajonczak
Copy link
Author

@ClemensGruber Ich habe den V2 im Einsatz. Genau sowas hatte ich auch schon im Kopf gehabt, wenn Andreas jetzt zuvor gekommen war dann ist das ja perfekt 👍 .

Ich bin nicht sicher, aber wenn ich mir meinen Heltec anschaue hab ich direkt ein Antennenanschluss on board (Antenne lag auch bei).

Wenn ich mit die V1 anschaue (https://www.banggood.com/SX1278-LoRa-ESP32-0_96-Inch-Blue-OLED-Display-bluetooth-WIFI-Lora-Kit-32-Module-p-1238495.html?utm_source=googleshopping&utm_medium=cpc_organic&gmcCountry=DE&utm_content=minha&utm_campaign=minha-de-en-pc&currency=EUR&cur_warehouse=CN&createTmp=1&utm_source=googleshopping&utm_medium=cpc_bgs&utm_content=frank&utm_campaign=frank-ssc-de-css-all-newcustom-ncv90-0623&ad_id=443949120684&gclid=Cj0KCQiA3Y-ABhCnARIsAKYDH7vHkbZc2TwGkZN7hKmqy7O505JTTErCA3_KCv3C-MvArU9rFyLqxNMaAimLEALw_wcB) dann scheint der ein größeren Flashspeicher zu haben als die V2 (https://heltec.org/project/wifi-lora-32/). Wieso man aber in V2 weniger verbaut, ist mir schleierhaft.

@ClemensGruber
Copy link
Collaborator

ClemensGruber commented Jan 18, 2021

Funktioniert das, wenn die Pins 14, 27 und 5 bereits vom Lora-Board verwendet werden? Da steht im Pinout ja explizit "they must not be used for other purposes unless you know what you are doing"

Wenn es bei Sascha mit der Doppelbelegung funktioniert LoRa-Modul / HaniMandl funktionier ist das schon mal gut, wie verwenden das LoRa-Modul ja nicht was elektronisch passiert wenn wir das LoRa-Modul nicht per Software initialisiert haben weiß ich nicht. Input-Pins des LoRa-Moduls sollten kein Problem sein, wenn wir dei ebenfalls als Heltec output nutzen, ausser wir triggern damit irgendwas was wir nicht wollen. output des LoRa-Moduls, die erratisch dann doch einen impuls abgeben könnten für uns problematisch sein, wenn bei uns da z.B. ein Taster dranhängt und das (LoRa-Modul-)Signal dann fälschlicherweise als Tastendruck interpretiert wird. Sicher ist es auch nicht gut für die Hardware wenn wir auf einen output vom LoRa-Modul einen output des HaniMandl legen und den mit Signalen / Strom beschießen. Daher ist der Hinweis "unless you know what you are doing" schon ganz gut und wir sollten da nochmal genau schauen, falls du, Sascha / @SBajonczak das nicht schon getan hast. Der Heltec mit dem LoRa-Modul ist für den HaniMandl immer nur eine Notlösung und für Leute gedacht, die nur an das Board rankommen oder einfach falsch bestellt haben und nicht nochmal drei Wochen auf die nächste Lieferung warten möchten.

@andreash-esp
Copy link
Collaborator

Der Heltec mit dem LoRa-Modul ist für den HaniMandl immer nur eine Notlösung und für Leute gedacht, die nur an das Board rankommen oder einfach falsch bestellt haben und nicht nochmal drei Wochen auf die nächste Lieferung warten möchten.

Da wäre ich vorsichtig. Wenn der LORA im stable-Code drinsteht, dann wird das auch als "offiziell unterstützte" Hardware gesehen. Vermutlich passiert wirklich nix, wenn man die LORA-Hardware nicht anspricht, aber ich kann auf jeden Fall von mir nicht behaupten, dass ich wüßte, was ich da tue :-)

@SBajonczak
Copy link
Author

Das kann ja alles gut sein.

Aktuell läuft es ja mit dem v2 Heltect. Ich bin mir nicht sicher, ob ihr Lora noch verwenden wollt, Jedoch würde es ja keinen verünftigen Grund haben 😊.

Daher gehe ich mal davon aus das es sann weniger eine Rolle spielt. Es sei denn jemand verwendet die Quellen und kombiniert das mit was anderem. Doch dann ist es ja wieder nicht mehr supported oder?

Derzeit ist es halt ein Benefit, man muss es ja nicht aufnehmen. Kann das auch bei mir belassen und Anpassungen vom main übernehmen. Mir hat es halt geholfen, Daher wollte ich es halt contributen 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants