v1.2.1: TTGOv1 support (experimental)

This commit is contained in:
Klaus K Wilting 2018-03-20 21:38:41 +01:00
parent 0415496b58
commit 548a1ce22d
7 changed files with 104 additions and 58 deletions

View File

@ -1,6 +1,6 @@
# Paxcounter # Paxcounter
Wifi & Bluetooth driven, LoRaWAN enabled, battery powered mini ESP32 Paxcounter **Wifi & Bluetooth driven, LoRaWAN enabled, battery powered mini ESP32 Paxcounter
built on cheap ESP32 boards built on cheap ESP32 boards**
<img src="img/foto_no_exif.jpg"> <img src="img/foto_no_exif.jpg">
@ -8,6 +8,7 @@ built on cheap ESP32 boards
Currently supported IoT boards: Currently supported IoT boards:
- Heltec LoRa-32 - Heltec LoRa-32
- TTGOv1
- TTGOv2 - TTGOv2
- Pycom LoPy - Pycom LoPy
- Pycom LoPy4 - Pycom LoPy4

View File

@ -9,8 +9,9 @@
; http://docs.platformio.org/page/projectconf.html ; http://docs.platformio.org/page/projectconf.html
[platformio] [platformio]
env_default = heltec_wifi_lora_32 ;env_default = heltec_wifi_lora_32
;env_default = ttgo ;env_default = ttgov2
env_default = ttgov1
;env_default = lopy ;env_default = lopy
;env_default = lopy4 ;env_default = lopy4
@ -34,7 +35,7 @@ build_flags =
;FreeRTOS single core operation, switches off core 1 (see arduino-esp32/cores/esp32/main.cpp) ;FreeRTOS single core operation, switches off core 1 (see arduino-esp32/cores/esp32/main.cpp)
; -DCONFIG_FREERTOS_UNICORE ; -DCONFIG_FREERTOS_UNICORE
[env:ttgo] [env:ttgov1]
platform = espressif32 platform = espressif32
board = esp32dev board = esp32dev
framework = arduino framework = arduino
@ -50,7 +51,28 @@ build_flags =
;override lora settings from LMiC library in lmic/config.h and use main.h instead ;override lora settings from LMiC library in lmic/config.h and use main.h instead
-D_lmic_config_h_ -D_lmic_config_h_
-include "src/main.h" -include "src/main.h"
-include "src/hal/ttgo.h" -include "src/hal/ttgov1.h"
;FreeRTOS single core operation, switches off core 1 (see arduino-esp32/cores/esp32/main.cpp)
; -DCONFIG_FREERTOS_UNICORE
[env:ttgov2]
platform = espressif32
board = esp32dev
framework = arduino
monitor_baud = 115200
lib_deps = U8g2
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/ttgov2.h"
;FreeRTOS single core operation, switches off core 1 (see arduino-esp32/cores/esp32/main.cpp) ;FreeRTOS single core operation, switches off core 1 (see arduino-esp32/cores/esp32/main.cpp)
; -DCONFIG_FREERTOS_UNICORE ; -DCONFIG_FREERTOS_UNICORE

View File

@ -2,8 +2,8 @@
#define HELTEC #define HELTEC
#define HAS_DISPLAY // has OLED-Display #define HAS_DISPLAY // has OLED-Display
#define HAS_LED // has on usable board LED #define HAS_LED // has usable on board LED
#define HAS_BUTTON // has onboard button #define HAS_BUTTON // has usable on board button
#define CFG_sx1276_radio 1 #define CFG_sx1276_radio 1
// re-define pin definitions of pins_arduino.h // re-define pin definitions of pins_arduino.h

22
src/hal/ttgov1.h Normal file
View File

@ -0,0 +1,22 @@
// Hardware related definitions for Heltec TTGOv1 board
#define TTGO
#define HAS_DISPLAY // has OLED-Display
#define CFG_sx1276_radio 1
// re-define pin definitions of pins_arduino.h
#define PIN_SPI_SS 18 // ESP32 GPIO18 (Pin18) -- SX1276 NSS (Pin19) SPI Chip Select Input
#define PIN_SPI_MOSI 27 // ESP32 GPIO27 (Pin27) -- SX1276 MOSI (Pin18) SPI Data Input
#define PIN_SPI_MISO 19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output
#define PIN_SPI_SCK 5 // ESP32 GPIO5 (Pin5) -- SX1276 SCK (Pin16) SPI Clock Input
// non arduino pin definitions
#define RST 14 // ESP32 GPIO14 (Pin14) -- SX1276 NRESET (Pin7) Reset Trigger Input
#define DIO0 26 // ESP32 GPIO26 (Pin15) -- SX1276 DIO0 (Pin8) used by LMIC for detecting LoRa RX_Done & TX_Done
#define DIO1 33 // ESP32 GPIO33 (Pin13) -- SX1276 DIO1 (Pin9) used by LMIC for detecting LoRa RX_Timeout
#define DIO2 32 // ESP32 GPIO32 (Pin12) -- SX1276 DIO2 (Pin10) not used by LMIC for LoRa (Timeout for FSK only)
// Hardware pin definitions for Heltec LoRa-32 Board with OLED SSD1306 I2C Display
#define OLED_RST 16 // ESP32 GPIO16 (Pin16) -- SD1306 Reset
#define OLED_SDA 4 // ESP32 GPIO4 (Pin4) -- SD1306 Data
#define OLED_SCL 15 // ESP32 GPIO15 (Pin15) -- SD1306 Clock

View File

@ -1,48 +1,48 @@
// Hardware related definitions for TTGO V2 Board // Hardware related definitions for TTGO V2 Board
#define TTGO #define TTGO
#define HAS_DISPLAY // has OLED-Display #define HAS_DISPLAY // has OLED-Display
#define CFG_sx1276_radio 1 #define CFG_sx1276_radio 1
// re-define pin definitions of pins_arduino.h // re-define pin definitions of pins_arduino.h
#define PIN_SPI_SS 18 // ESP32 GPIO18 (Pin18) -- SX1276 NSS (Pin19) SPI Chip Select Input #define PIN_SPI_SS 18 // ESP32 GPIO18 (Pin18) -- SX1276 NSS (Pin19) SPI Chip Select Input
#define PIN_SPI_MOSI 27 // ESP32 GPIO27 (Pin27) -- SX1276 MOSI (Pin18) SPI Data Input #define PIN_SPI_MOSI 27 // ESP32 GPIO27 (Pin27) -- SX1276 MOSI (Pin18) SPI Data Input
#define PIN_SPI_MISO 19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output #define PIN_SPI_MISO 19 // ESP32 GPIO19 (Pin19) -- SX1276 MISO (Pin17) SPI Data Output
#define PIN_SPI_SCK 5 // ESP32 GPIO5 (Pin5) -- SX1276 SCK (Pin16) SPI Clock Input #define PIN_SPI_SCK 5 // ESP32 GPIO5 (Pin5) -- SX1276 SCK (Pin16) SPI Clock Input
// non arduino pin definitions // non arduino pin definitions
#define RST LMIC_UNUSED_PIN // not sure #define RST LMIC_UNUSED_PIN // not sure
#define DIO0 26 // wired on PCB #define DIO0 26 // wired on PCB
#define DIO1 33 // needs to be wired external #define DIO1 33 // needs to be wired external
#define DIO2 32 // needs to be wired external (but not necessary for LoRa) #define DIO2 32 // needs to be wired external (but not necessary for LoRa)
// Hardware pin definitions for TTGO V2 Board with OLED SSD1306 0,96" I2C Display // Hardware pin definitions for TTGO V2 Board with OLED SSD1306 0,96" I2C Display
#define OLED_RST U8X8_PIN_NONE // to be checked if really not connected #define OLED_RST U8X8_PIN_NONE // to be checked if really not connected
#define OLED_SDA 21 // ESP32 GPIO4 (Pin4) -- SD1306 Data #define OLED_SDA 21 // ESP32 GPIO4 (Pin4) -- SD1306 Data
#define OLED_SCL 22 // ESP32 GPIO15 (Pin15) -- SD1306 Clock #define OLED_SCL 22 // ESP32 GPIO15 (Pin15) -- SD1306 Clock
/* /*
ESP32 LoRa module (SPI) OLED display (I2C) ESP32 LoRa module (SPI) OLED display (I2C)
--------- ----------------- ------------------ --------- ----------------- ------------------
5 SCK SCK 5 SCK SCK
27 MOSI MOSI 27 MOSI MOSI
19 MISO MISO 19 MISO MISO
18 SS NSS 18 SS NSS
14 RST 14 RST
26 DIO0 26 DIO0
33 DIO1 (see note {1}) 33 DIO1 (see note {1})
32 DIO2 (see note {2}) 32 DIO2 (see note {2})
22 SCL SCL 22 SCL SCL
21 SDA SDA 21 SDA SDA
22 LED (useless, see note {3}) 22 LED (useless, see note {3})
{1} Must be manually wired! {1} Must be manually wired!
DIO1 is wired to a separate pin but is not wired on-board to pin/GPIO33. DIO1 is wired to a separate pin but is not wired on-board to pin/GPIO33.
Explicitly wire board pin labeled DIO1 to pin 33 (see TTGO V2.0 pinout). Explicitly wire board pin labeled DIO1 to pin 33 (see TTGO V2.0 pinout).
{2} Must be manually wired! {2} Must be manually wired!
DIO2 is wired to a separate pin but is not wired on-board to pin/GPIO32. DIO2 is wired to a separate pin but is not wired on-board to pin/GPIO32.
Explicitly wire board pin labeled DIO2 to pin 32 (see TTGO V2.0 pinout). Explicitly wire board pin labeled DIO2 to pin 32 (see TTGO V2.0 pinout).
{3} The on-board LED is wired to SCL (used by display) therefore totally useless! {3} The on-board LED is wired to SCL (used by display) therefore totally useless!
*/ */

View File

@ -326,8 +326,9 @@ void setup() {
ESP_LOGI(TAG, "Starting %s %s", PROGNAME, PROGVERSION); ESP_LOGI(TAG, "Starting %s %s", PROGNAME, PROGVERSION);
tcpip_adapter_init(); // not sure if necessary, but seems needed for TTGOv1
// ESP Event Loop // ESP Event Loop
esp_event_loop_init(NULL, NULL); esp_event_loop_init(NULL, NULL); // not sure if necessary -> to be checked
// Print chip information on startup // Print chip information on startup
#ifdef VERBOSE #ifdef VERBOSE

View File

@ -1,5 +1,5 @@
// program version // program version
#define PROGVERSION "1.2.0" // use max 10 chars here! #define PROGVERSION "1.2.1" // use max 10 chars here!
#define PROGNAME "PAXCNT" #define PROGNAME "PAXCNT"
// Verbose enables serial output // Verbose enables serial output