Heltec Boards über Boardverwalter installieren

Hallo zusammen,

da Heltec vor kurzem die Software für den ESP32 mit LoRa geändert hat möchte ich heute kurz die aktuelle Installationsmethode zeigen.

Früher war es erforderlich den Heltec ESP-Fork über Git zu laden, installieren, updaten und anschließend zu verwalten, für Linux-Benutzer selbstverständlich und für Windows-Einsteiger eine Hürde.

Durch die neue Installation über den Boardverwalter ist das komfortabler geworden, ebenso wurden alle Funktionen (LoRa-OLED) in einer Library zusammengefasst.

Wir starten mit dem eintragen der URL für den Boardverwalter, dazu müssen die Voreinstellungen in der Arduino-IDE geöffnet werden, dazu über Datei-> Voreinstellungen geöffnet werden:

https://docs.heltec.cn/download/package_heltec_esp32_index.json

^^ Eintragen und mit OK bestätigen. Im Anschluss Boardverwalter öffnen und in der Suchleiste Heltec eingeben:

Und die gewünschte Version auswählen und installieren. Jetzt noch die dazugehörige Library nachladen um die Oled und LoRa Funktionen des Boards nutzen zu können. Hierzu wie gewohnt über Sketch -> Bibliothek einbinden -> Bibliotheken verwalten... den Bibliotheksverwalter öffnen und die Library aus dem Screenshot in der gewünschten Version installieren:

Nach dem obligatorischen Neustart der IDE wählen wir das richtige Heltec Board:

Unter Datei -> Beispiele -> Beispiele aus eigenen Bibliotheken ->Heltec ESP32 Dev finden wir die vorkonfigurierten Beispiele für Oled und Lora, sowie einen "Factory Test"

 Der Sketch Factory_Test läuft ohne konfigurieren zu müssen problemlos durch und zeigt zuerst die Verfügbaren Netzte und verschickt im Anschluss LoRa-Pakete:

Viel Spaß mit den Heltec-Boards und bis zum nächsten Beitrag :)

1 Kommentar

Arne Dien

Arne Dien

Hallo,
ich habe gerade versucht mit dem Boardverwalter die Heltec Librarys zu installieren bekomme jedoch einige Fehlermeldungen:
Fehler beim Herunterladen von https://docs.heltec.cn/download/package_heltec_esp32_index.json
Exception in thread “AWT-EventQueue-0” java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
at cc.arduino.contributions.packages.ui.ContributionIndexTableModel.updateIndexFilter(ContributionIndexTableModel.java:54)
at cc.arduino.contributions.ui.InstallerJDialog.updateIndexFilter(InstallerJDialog.java:293)
at cc.arduino.contributions.ui.InstallerJDialog$1.onFilter(InstallerJDialog.java:133)
at cc.arduino.contributions.ui.FilterJTextField.applyFilter(FilterJTextField.java:110)
at cc.arduino.contributions.ui.FilterJTextField.lambda$new$0(FilterJTextField.java:53)
at javax.swing.Timer.fireActionPerformed(Timer.java:313)
at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1084)
at java.awt.Component.show(Component.java:1671)
at java.awt.Component.setVisible(Component.java:1623)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at processing.app.Base.openBoardsManager(Base.java:1414)
at processing.app.Base$10.actionPerformed(Base.java:1441)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Hat heltec da etwas geändert?
LG
Arne Dien

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert