From e3d9b943676dd1de8c1009635bd3d7e8361c877b Mon Sep 17 00:00:00 2001 From: Vladislav Osmanov <7123463+osmanovv@users.noreply.github.com> Date: Sun, 19 Sep 2021 16:05:21 +0300 Subject: [PATCH 1/4] New device board - [Meshtastic DIY v1] by @NanoVHF Schematic based on ESP32-WROOM-32 (38 pins) devkit & EBYTE E22 SX1262/SX1268 module Subproject reference: https://github.com/NanoVHF/Meshtastic-DIY --- platformio.ini | 12 ++++++++++- src/configuration.h | 39 ++++++++++++++++++++++++++++++++++++ src/mesh/generated/mesh.pb.h | 3 ++- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index f43323452..16d73dee3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [platformio] -default_envs = tbeam +;default_envs = tbeam ;default_envs = tbeam0.7 ;default_envs = heltec-v2.0 ;default_envs = tlora-v1 @@ -21,6 +21,7 @@ default_envs = tbeam ;default_envs = native # lora-relay-v1 # nrf52840dk-geeksville # linux # or if you'd like to change the default to something like lora-relay-v1 put that here ;default_envs = rak4631 ;default_envs = rak4630 +default_envs = meshtastic-diy-v1 [common] ; common is not currently used @@ -190,6 +191,15 @@ board = ttgo-lora32-v1 build_flags = ${esp32_base.build_flags} -D TLORA_V2_1_16 +; Meshtastic DIY v1 by Nano VHF Schematic based on ESP32-WROOM-32 (38 pins) devkit & EBYTE E22 SX1262/SX1268 module +[env:meshtastic-diy-v1] +extends = esp32_base +board = esp32doit-devkit-v1 +build_flags = + ${esp32_base.build_flags} + -D DIY_V1 + -D EBYTE_E22 + ; The Heltec Cubecell plus ; IMPORTANT NOTE: This target doesn't yet work and probably won't ever work. I'm keeping it around for now. ; For more details see my post in the forum. diff --git a/src/configuration.h b/src/configuration.h index 23eab0bf5..1563f4544 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -226,6 +226,45 @@ along with this program. If not, see . #define GPS_RX_PIN 12 #define GPS_TX_PIN 15 +#elif defined(DIY_V1) +// This string must exactly match the case used in release file names or the android updater won't work +#define HW_VENDOR HardwareModel_DIY_V1 + +// For OLED LCD +#define I2C_SDA 21 +#define I2C_SCL 22 + +#define BUTTON_PIN 39 // The middle button GPIO on the T-Beam + +#define LORA_DIO0 26 // a No connect on the SX1262/SX1268 module +#define LORA_RESET 23 // RST for SX1276, and for SX1262/SX1268 +#define LORA_DIO1 33 // IRQ for SX1262/SX1268 +#define LORA_DIO2 32 // BUSY for SX1262/SX1268 +#define LORA_DIO3 // Not connected on PCB, but internally on the TTGO SX1262/SX1268, if DIO3 is high the TXCO is enabled + +#define RF95_SCK 5 +#define RF95_MISO 19 +#define RF95_MOSI 27 +#define RF95_NSS 18 + +// supported modules list +#define USE_SX1262 +#define USE_SX1268 + +// common pinouts for SX126X modules +#define SX126X_CS 18 // NSS for SX126X +#define SX126X_DIO1 LORA_DIO1 +#define SX126X_BUSY LORA_DIO2 +#define SX126X_RESET LORA_RESET +#define SX126X_RXEN 14 +#define SX126X_TXEN 13 + +#ifdef EBYTE_E22 +// Internally the TTGO module hooks the SX126x-DIO2 in to control the TX/RX switch +// (which is the default for the sx1262interface code) +#define SX126X_E22 +#endif + #elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V2) // the default ESP32 Pin of 15 is the Oled SCL, set to 36 and 37 and works fine. diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h index 35c2d04c9..59182230f 100644 --- a/src/mesh/generated/mesh.pb.h +++ b/src/mesh/generated/mesh.pb.h @@ -29,7 +29,8 @@ typedef enum _HardwareModel { HardwareModel_GENIEBLOCKS = 35, HardwareModel_NRF52_UNKNOWN = 36, HardwareModel_PORTDUINO = 37, - HardwareModel_ANDROID_SIM = 38 + HardwareModel_ANDROID_SIM = 38, + HardwareModel_DIY_V1 = 39 } HardwareModel; typedef enum _Constants { From c61bfae7853da37960363671877948884cfc9123 Mon Sep 17 00:00:00 2001 From: Vladislav Osmanov <7123463+osmanovv@users.noreply.github.com> Date: Sun, 19 Sep 2021 16:26:39 +0300 Subject: [PATCH 2/4] update protos --- proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto b/proto index f5b3d0643..e24fa8c6e 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit f5b3d0643bdd53aa9082c26e17e9f73946697a14 +Subproject commit e24fa8c6edd46c2bf66005f45d2547ebd15887c1 From bc7d1a4ef0714dbc7db8086c0f97809c3f620d63 Mon Sep 17 00:00:00 2001 From: Vladislav Osmanov <7123463+osmanovv@users.noreply.github.com> Date: Sat, 25 Sep 2021 00:28:01 +0300 Subject: [PATCH 3/4] redefine GPS TX pin for DIY schematic --- src/configuration.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/configuration.h b/src/configuration.h index 1563f4544..84df2ed6a 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -234,6 +234,12 @@ along with this program. If not, see . #define I2C_SDA 21 #define I2C_SCL 22 +// GPS +//#undef GPS_RX_PIN +//#define GPS_RX_PIN 12 // not connected +#undef GPS_TX_PIN +#define GPS_TX_PIN 15 + #define BUTTON_PIN 39 // The middle button GPIO on the T-Beam #define LORA_DIO0 26 // a No connect on the SX1262/SX1268 module From 92edfd32174afc49bb991ba27a681b5153daffd7 Mon Sep 17 00:00:00 2001 From: Vladislav Osmanov <7123463+osmanovv@users.noreply.github.com> Date: Fri, 8 Oct 2021 21:17:05 +0300 Subject: [PATCH 4/4] fix: GPS RX/TX pins mismatch --- src/configuration.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/configuration.h b/src/configuration.h index 84df2ed6a..8231d5551 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -235,10 +235,10 @@ along with this program. If not, see . #define I2C_SCL 22 // GPS -//#undef GPS_RX_PIN -//#define GPS_RX_PIN 12 // not connected -#undef GPS_TX_PIN -#define GPS_TX_PIN 15 +#undef GPS_RX_PIN +#define GPS_RX_PIN 15 +//#undef GPS_TX_PIN +//#define GPS_TX_PIN 12 // not connected #define BUTTON_PIN 39 // The middle button GPIO on the T-Beam