From aff7ff9444cb472435860c5144ddf86835857577 Mon Sep 17 00:00:00 2001 From: Klaus K Wilting Date: Tue, 27 Mar 2018 14:34:37 +0200 Subject: [PATCH 1/8] change LoPy/LoPy4 RGB-LED --- src/hal/lopy.h | 1 + src/hal/lopy4.h | 1 + src/hal/ttgov2.h | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hal/lopy.h b/src/hal/lopy.h index cead7c0a..00a6be4d 100644 --- a/src/hal/lopy.h +++ b/src/hal/lopy.h @@ -1,6 +1,7 @@ // Hardware related definitions for Pycom LoPy Board (not: LoPy4) #define CFG_sx1272_radio 1 +#define HAS_RGB_LED 0 // WS2812B RGB LED // Hardware pin definitions for Pycom LoPy board #define PIN_SPI_SS 17 diff --git a/src/hal/lopy4.h b/src/hal/lopy4.h index 38f49bca..6ca8ef21 100644 --- a/src/hal/lopy4.h +++ b/src/hal/lopy4.h @@ -1,6 +1,7 @@ // Hardware related definitions for Pycom LoPy Board (not: LoPy4) #define CFG_sx1276_radio 1 +#define HAS_RGB_LED 0 // WS2812B RGB LED // Hardware pin definitions for Pycom LoPy4 board #define PIN_SPI_SS 18 diff --git a/src/hal/ttgov2.h b/src/hal/ttgov2.h index beae5675..aeaaebbe 100644 --- a/src/hal/ttgov2.h +++ b/src/hal/ttgov2.h @@ -3,7 +3,7 @@ #define CFG_sx1276_radio 1 // HPD13A LoRa SoC #define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C -//#define HAS_LED NOT_A_PIN // on-board LED is wired to SCL (used by display) therefore totally useless +#define HAS_LED NOT_A_PIN // on-board LED is wired to SCL (used by display) therefore totally useless // disable brownout detection (needed on TTGOv2 for battery powered operation) #define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature From 84d3c284c721ee792261551f95573dd97f93a325 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 28 Mar 2018 01:30:28 +0200 Subject: [PATCH 2/8] Added lolin32lite_lora board --- platformio.ini | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 75a8b218..3c95c6b8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -15,7 +15,8 @@ ;env_default = ttgov2 ;env_default = lopy ;env_default = lopy4 -env_default = lolin32_lora +env_default = lolin32lite_lora +;env_default = lolin32_lora [env:heltec_wifi_lora_32] platform = espressif32 @@ -126,6 +127,29 @@ build_flags = ;FreeRTOS single core operation, switches off core 1 (see arduino-esp32/cores/esp32/main.cpp) ; -DCONFIG_FREERTOS_UNICORE +[env:lolin32lite_lora] +platform = espressif32 +board = lolin32 +framework = arduino +monitor_baud = 115200 +lib_deps = + U8g2 + ESP32 BLE Arduino@>=0.4.9 +; NeoPixelBus +build_flags = +;set log level, we need build_flag for this, otherwise we can't use ESP_LOGx in arduino framework + -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE +; -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_NONE +;needed for ESP32 BLE Ardunio v0.4.9 + -fexceptions + -std=c++11 +;override lora settings from LMiC library in lmic/config.h and use main.h instead + -D_lmic_config_h_ + -include "src/main.h" + -include "src/hal/lolin32lite_lora.h" +;FreeRTOS single core operation, switches off core 1 (see arduino-esp32/cores/esp32/main.cpp) +; -DCONFIG_FREERTOS_UNICORE + [env:lolin32_lora] platform = espressif32 board = lolin32 @@ -135,6 +159,7 @@ upload_speed = 921600 lib_deps = U8g2 ESP32 BLE Arduino@>=0.4.9 +; NeoPixelBus build_flags = ;set log level, we need build_flag for this, otherwise we can't use ESP_LOGx in arduino framework -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE From d35ae40b322e898745f4a5352e91a983299bf87b Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 28 Mar 2018 01:30:47 +0200 Subject: [PATCH 3/8] Creation --- src/hal/lolin32lite_lora.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/hal/lolin32lite_lora.h diff --git a/src/hal/lolin32lite_lora.h b/src/hal/lolin32lite_lora.h new file mode 100644 index 00000000..698ec60e --- /dev/null +++ b/src/hal/lolin32lite_lora.h @@ -0,0 +1,33 @@ +// Hardware related definitions for lolin32 lite loraNode32 shield +// See https://github.com/hallard/LoLin32-Lite-Lora + +// disable brownout detection (avoid unexpected reset on some boards) +#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature + +#define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C // OLED-Display on board +#define HAS_LED NOT_A_PIN // Led os on same pin than Lora SS pin, to avoid pb, we don't use it + // Anyway shield is on over the LoLin32 board, so we won't be able to see this LED +#define HAS_RGB_LED 13 // ESP32 GPIO13 (pin13) On Board Shield WS2812B RGB LED +#define HAS_BUTTON 15 // ESP32 GPIO15 (pin15) Button is on the LoraNode32 shield +#define BUTTON_PULLUP 1 // Button need pullup instead of default pulldown + +#define CFG_sx1276_radio 1 // RFM95 module + +// re-define pin definitions of pins_arduino.h +#define PIN_SPI_SS 5 // ESP32 GPIO5 (Pin5) -- SX1276 NSS (Pin19) SPI Chip Select Input +#define PIN_SPI_MOSI 23 // ESP32 GPIO23 (Pin23) -- SX1276 MOSI (Pin18) SPI Data Input +#define PIN_SPI_MISO 19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output +#define PIN_SPI_SCK 18 // ESP32 GPIO18 (Pin18 -- SX1276 SCK (Pin16) SPI Clock Input + +// non arduino pin definitions +#define RST 25 // ESP32 GPIO25 (Pin25) -- SX1276 NRESET (Pin7) Reset Trigger Input +#define DIO0 27 // ESP32 GPIO27 (Pin27) -- SX1276 DIO0 (Pin8) used by LMIC for detecting LoRa RX_Done & TX_Done +#define DIO1 26 // ESP32 GPIO26 (Pin26) -- SX1276 DIO1 (Pin9) used by LMIC for detecting LoRa RX_Timeout +#define DIO2 4 // ESP32 GPIO4 (Pin4) -- SX1276 DIO2 (Pin10) not used by LMIC for LoRa (Timeout for FSK only) +#define DIO5 35 // ESP32 GPIO35 (Pin35) -- SX1276 DIO5 not used by LMIC for LoRa (Timeout for FSK only) + +// Hardware pin definitions for LoRaNode32 Board with OLED I2C Display +#define OLED_RST U8X8_PIN_NONE // Not reset pin +#define OLED_SDA 14 // ESP32 GPIO14 (Pin14) -- OLED SDA +#define OLED_SCL 12 // ESP32 GPIO12 (Pin12) -- OLED SCL + From b9d80f98ce8de971f7d5a66532e9a122e7045a9f Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 28 Mar 2018 01:31:00 +0200 Subject: [PATCH 4/8] Updated comment --- src/hal/lolin32_lora.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/hal/lolin32_lora.h b/src/hal/lolin32_lora.h index 632c5dda..e446f28b 100644 --- a/src/hal/lolin32_lora.h +++ b/src/hal/lolin32_lora.h @@ -24,6 +24,7 @@ #define DIO0 27 // ESP32 GPIO27 (Pin27) -- SX1276 DIO0 (Pin8) used by LMIC for detecting LoRa RX_Done & TX_Done #define DIO1 26 // ESP32 GPIO26 (Pin26) -- SX1276 DIO1 (Pin9) used by LMIC for detecting LoRa RX_Timeout #define DIO2 4 // ESP32 GPIO4 (Pin4) -- SX1276 DIO2 (Pin10) not used by LMIC for LoRa (Timeout for FSK only) +#define DIO5 35 // ESP32 GPIO35 (Pin35) -- SX1276 DIO5 not used by LMIC for LoRa (Timeout for FSK only) // Hardware pin definitions for LoRaNode32 Board with OLED I2C Display #define OLED_RST U8X8_PIN_NONE // Not reset pin From 49cbbf56910aae61c634fc6bbb3282d52868a7f0 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 28 Mar 2018 01:34:37 +0200 Subject: [PATCH 5/8] Added LoLin32 Lite board --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b56caabd..b1a60afb 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Currently supported IoT boards: - Pycom LoPy - Pycom LoPy4 - LoLin32 with [LoraNode32 shield](https://github.com/hallard/LoLin32-Lora) +- LoLin32 Lite with [LoraNode32-Lite shield](https://github.com/hallard/LoLin32-Lite-Lora) Target platform must be selected in [platformio.ini](https://github.com/cyberman54/ESP32-Paxcounter/blob/master/platformio.ini).
Hardware dependent settings (pinout etc.) are stored in board files in /hal directory.
@@ -39,6 +40,7 @@ Hardware dependent settings (pinout etc.) are stored in board files in /hal dire - LoPy with expansion board: ~530mW - LoPy pure, without expansion board: ~460mW - LoLin32 with [LoraNode32 shield](https://github.com/hallard/LoLin32-Lora): TBD +- LoLin32 Lite with [LoraNode32-Lite shield](https://github.com/hallard/LoLin32-Lite-Lora): TBD These results where metered with software version 1.2.0 during active wifi scan, no LoRa TX’ing, OLED display off, 5V USB powered. From b325d005ba1a857656833fc1a800c24231de462e Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 28 Mar 2018 02:03:37 +0200 Subject: [PATCH 6/8] Fixed Max Upload Speed for LoLin32 Lite --- platformio.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/platformio.ini b/platformio.ini index 3c95c6b8..6d8b072f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -132,6 +132,7 @@ platform = espressif32 board = lolin32 framework = arduino monitor_baud = 115200 +upload_speed = 256000 lib_deps = U8g2 ESP32 BLE Arduino@>=0.4.9 From b5f3079f1d2df3fbc7aca937ec8af69234aac792 Mon Sep 17 00:00:00 2001 From: Klaus K Wilting Date: Wed, 28 Mar 2018 19:34:45 +0200 Subject: [PATCH 7/8] increased upload speed for Heltec + TTGOv2 --- platformio.ini | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index 6d8b072f..88ba9fc3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,12 +10,12 @@ ; ---> SELECT TARGET PLATFORM HERE! <--- [platformio] -;env_default = heltec_wifi_lora_32 +env_default = heltec_wifi_lora_32 ;env_default = ttgov1 ;env_default = ttgov2 ;env_default = lopy ;env_default = lopy4 -env_default = lolin32lite_lora +;env_default = lolin32lite_lora ;env_default = lolin32_lora [env:heltec_wifi_lora_32] @@ -23,6 +23,7 @@ platform = espressif32 board = heltec_wifi_lora_32 framework = arduino monitor_baud = 115200 +upload_speed = 921600 lib_deps = U8g2 ESP32 BLE Arduino@>=0.4.9 @@ -68,6 +69,7 @@ platform = espressif32 board = esp32dev framework = arduino monitor_baud = 115200 +upload_speed = 921600 lib_deps = U8g2 build_flags = ;set log level, we need build_flag for this, otherwise we can't use ESP_LOGx in arduino framework @@ -91,6 +93,7 @@ monitor_baud = 115200 lib_deps = U8g2@>2.21.7 ESP32 BLE Arduino@>=0.4.9 + ; NeoPixelBus build_flags = ;set log level, we need build_flag for this, otherwise we can't use ESP_LOGx in arduino framework -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE @@ -113,6 +116,7 @@ monitor_baud = 115200 lib_deps = U8g2@>2.21.7 ESP32 BLE Arduino@>=0.4.9 + ; NeoPixelBus build_flags = ;set log level, we need build_flag for this, otherwise we can't use ESP_LOGx in arduino framework -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE From 4e0cae7ec336aca96d059c7f5c5e441625cb6610 Mon Sep 17 00:00:00 2001 From: Verkehrsrot <10289836+cyberman54@users.noreply.github.com> Date: Fri, 30 Mar 2018 11:56:51 +0200 Subject: [PATCH 8/8] Update README.md Upload instructions added. --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index b1a60afb..df368dfa 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,13 @@ Use PlatformIO with your preferred IDE for Before compiling the code, create file loraconf.h in the /src directory from the template [loraconf.sample.h](https://github.com/cyberman54/ESP32-Paxcounter/blob/master/src/loraconf.sample.h) and populate it with your personal APPEUI und APPKEY for the LoRaWAN network. Only OTAA join is supported, not ABP. The DEVEUI will be derived from the device's MAC adress during device startup and is shown as well on the device's display (if it has one) as on the serial console for copying it to your LoRaWAN network server settings. If you enter a DEVEUI in loraconf.h it will be used instead. +# Uploading + +To upload the code to your ESP32 board this needs to be switched from run to bootloader mode. Boards with USB bridge like Heltec and TTGO usually have an onboard logic which allows soft switching by the upload tool. In PlatformIO this happenes automatically.

+The LoPy/LoPy4 board needs to be set manually. See these +instructions how to do it.

+For the LoPy/LoPy4 the original Pycom firmware is not needed here, so there is no need to update it before flashing Paxcounter. Just flash the paxcounter code on your LoPy/LoPy4. If you want to go back to the Pycom firmware, no problem. Download the firmware from Pycom and flash it over. + # Legal note **Depending on your country's laws it may be illegal to sniff wireless networks for MAC addresses. Please check and respect your country's laws before using this code!**