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. diff --git a/platformio.ini b/platformio.ini index 75a8b218..6d8b072f 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,30 @@ 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 +upload_speed = 256000 +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 +160,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 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 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 +