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