diff --git a/.gitmodules b/.gitmodules
index 4f9bb6b77..f4e35ff4f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,9 +1,7 @@
[submodule "proto"]
path = proto
url = https://github.com/meshtastic/Meshtastic-protobufs.git
-[submodule "sdk-nrfxlib"]
- path = sdk-nrfxlib
- url = https://github.com/nrfconnect/sdk-nrfxlib.git
+ branch = 1.2-legacy
[submodule "design"]
path = design
url = https://github.com/meshtastic/meshtastic-design.git
diff --git a/platformio.ini b/platformio.ini
index 45fd71d55..40ba8830e 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -23,8 +23,10 @@ default_envs = tbeam
;default_envs = t-echo
;default_envs = nrf52840dk-geeksville
;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 = rak4631_5005
+;default_envs = rak4631_5005_eink
+;default_envs = rak4631_19003
+;default_envs = nano-g1
;default_envs = meshtastic-diy-v1
;default_envs = meshtastic-diy-v1.1
@@ -262,6 +264,3 @@ upload_protocol = jlink
monitor_port = /dev/ttyUSB0
; this board's serial chip can only run at 115200, not faster
monitor_speed = 115200
-
-# For experimenting with RAM sizes
-# board_build.ldscript = linker/nrf52840_s140_sim832.ld
diff --git a/proto b/proto
index 2930129e8..c851209e0 160000
--- a/proto
+++ b/proto
@@ -1 +1 @@
-Subproject commit 2930129e8eac348c094bbedeb929d86efafc2b62
+Subproject commit c851209e0b504a73ea3d77366c904ad127ebdaee
diff --git a/src/configuration.h b/src/configuration.h
index 3831e1455..252da74dc 100644
--- a/src/configuration.h
+++ b/src/configuration.h
@@ -230,6 +230,10 @@ along with this program. If not, see .
#define HW_VENDOR HardwareModel_T_ECHO
+#elif defined(NANO_G1)
+
+#define HW_VENDOR HardwareModel_NANO_G1
+
#elif NRF52_SERIES
#define HW_VENDOR HardwareModel_NRF52_UNKNOWN
diff --git a/src/mesh/generated/admin.pb.h b/src/mesh/generated/admin.pb.h
index 77518b60f..92fc2bbd1 100644
--- a/src/mesh/generated/admin.pb.h
+++ b/src/mesh/generated/admin.pb.h
@@ -4,7 +4,6 @@
#ifndef PB_ADMIN_PB_H_INCLUDED
#define PB_ADMIN_PB_H_INCLUDED
#include
-#include "cannedmessages.pb.h"
#include "channel.pb.h"
#include "mesh.pb.h"
#include "radioconfig.pb.h"
@@ -31,20 +30,17 @@ typedef struct _AdminMessage {
bool exit_simulator;
int32_t reboot_seconds;
bool get_canned_message_plugin_part1_request;
- CannedMessagePluginMessagePart1 get_canned_message_plugin_part1_response;
+ char get_canned_message_plugin_part1_response[201];
bool get_canned_message_plugin_part2_request;
- CannedMessagePluginMessagePart2 get_canned_message_plugin_part2_response;
+ char get_canned_message_plugin_part2_response[201];
bool get_canned_message_plugin_part3_request;
- CannedMessagePluginMessagePart3 get_canned_message_plugin_part3_response;
+ char get_canned_message_plugin_part3_response[201];
bool get_canned_message_plugin_part4_request;
- CannedMessagePluginMessagePart4 get_canned_message_plugin_part4_response;
- bool get_canned_message_plugin_part5_request;
- CannedMessagePluginMessagePart5 get_canned_message_plugin_part5_response;
- CannedMessagePluginMessagePart1 set_canned_message_plugin_part1;
- CannedMessagePluginMessagePart2 set_canned_message_plugin_part2;
- CannedMessagePluginMessagePart3 set_canned_message_plugin_part3;
- CannedMessagePluginMessagePart4 set_canned_message_plugin_part4;
- CannedMessagePluginMessagePart5 set_canned_message_plugin_part5;
+ char get_canned_message_plugin_part4_response[201];
+ char set_canned_message_plugin_part1[201];
+ char set_canned_message_plugin_part2[201];
+ char set_canned_message_plugin_part3[201];
+ char set_canned_message_plugin_part4[201];
int32_t shutdown_seconds;
};
} AdminMessage;
@@ -80,13 +76,10 @@ extern "C" {
#define AdminMessage_get_canned_message_plugin_part3_response_tag 41
#define AdminMessage_get_canned_message_plugin_part4_request_tag 42
#define AdminMessage_get_canned_message_plugin_part4_response_tag 43
-#define AdminMessage_get_canned_message_plugin_part5_request_tag 44
-#define AdminMessage_get_canned_message_plugin_part5_response_tag 45
-#define AdminMessage_set_canned_message_plugin_part1_tag 46
-#define AdminMessage_set_canned_message_plugin_part2_tag 47
-#define AdminMessage_set_canned_message_plugin_part3_tag 48
-#define AdminMessage_set_canned_message_plugin_part4_tag 49
-#define AdminMessage_set_canned_message_plugin_part5_tag 50
+#define AdminMessage_set_canned_message_plugin_part1_tag 44
+#define AdminMessage_set_canned_message_plugin_part2_tag 45
+#define AdminMessage_set_canned_message_plugin_part3_tag 46
+#define AdminMessage_set_canned_message_plugin_part4_tag 47
#define AdminMessage_shutdown_seconds_tag 51
/* Struct field encoding specification for nanopb */
@@ -105,20 +98,17 @@ X(a, STATIC, ONEOF, BOOL, (variant,confirm_set_radio,confirm_set_radio)
X(a, STATIC, ONEOF, BOOL, (variant,exit_simulator,exit_simulator), 34) \
X(a, STATIC, ONEOF, INT32, (variant,reboot_seconds,reboot_seconds), 35) \
X(a, STATIC, ONEOF, BOOL, (variant,get_canned_message_plugin_part1_request,get_canned_message_plugin_part1_request), 36) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,get_canned_message_plugin_part1_response,get_canned_message_plugin_part1_response), 37) \
+X(a, STATIC, ONEOF, STRING, (variant,get_canned_message_plugin_part1_response,get_canned_message_plugin_part1_response), 37) \
X(a, STATIC, ONEOF, BOOL, (variant,get_canned_message_plugin_part2_request,get_canned_message_plugin_part2_request), 38) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,get_canned_message_plugin_part2_response,get_canned_message_plugin_part2_response), 39) \
+X(a, STATIC, ONEOF, STRING, (variant,get_canned_message_plugin_part2_response,get_canned_message_plugin_part2_response), 39) \
X(a, STATIC, ONEOF, BOOL, (variant,get_canned_message_plugin_part3_request,get_canned_message_plugin_part3_request), 40) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,get_canned_message_plugin_part3_response,get_canned_message_plugin_part3_response), 41) \
+X(a, STATIC, ONEOF, STRING, (variant,get_canned_message_plugin_part3_response,get_canned_message_plugin_part3_response), 41) \
X(a, STATIC, ONEOF, BOOL, (variant,get_canned_message_plugin_part4_request,get_canned_message_plugin_part4_request), 42) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,get_canned_message_plugin_part4_response,get_canned_message_plugin_part4_response), 43) \
-X(a, STATIC, ONEOF, BOOL, (variant,get_canned_message_plugin_part5_request,get_canned_message_plugin_part5_request), 44) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,get_canned_message_plugin_part5_response,get_canned_message_plugin_part5_response), 45) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,set_canned_message_plugin_part1,set_canned_message_plugin_part1), 46) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,set_canned_message_plugin_part2,set_canned_message_plugin_part2), 47) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,set_canned_message_plugin_part3,set_canned_message_plugin_part3), 48) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,set_canned_message_plugin_part4,set_canned_message_plugin_part4), 49) \
-X(a, STATIC, ONEOF, MESSAGE, (variant,set_canned_message_plugin_part5,set_canned_message_plugin_part5), 50) \
+X(a, STATIC, ONEOF, STRING, (variant,get_canned_message_plugin_part4_response,get_canned_message_plugin_part4_response), 43) \
+X(a, STATIC, ONEOF, STRING, (variant,set_canned_message_plugin_part1,set_canned_message_plugin_part1), 44) \
+X(a, STATIC, ONEOF, STRING, (variant,set_canned_message_plugin_part2,set_canned_message_plugin_part2), 45) \
+X(a, STATIC, ONEOF, STRING, (variant,set_canned_message_plugin_part3,set_canned_message_plugin_part3), 46) \
+X(a, STATIC, ONEOF, STRING, (variant,set_canned_message_plugin_part4,set_canned_message_plugin_part4), 47) \
X(a, STATIC, ONEOF, INT32, (variant,shutdown_seconds,shutdown_seconds), 51)
#define AdminMessage_CALLBACK NULL
#define AdminMessage_DEFAULT NULL
@@ -128,16 +118,6 @@ X(a, STATIC, ONEOF, INT32, (variant,shutdown_seconds,shutdown_seconds),
#define AdminMessage_variant_get_radio_response_MSGTYPE RadioConfig
#define AdminMessage_variant_get_channel_response_MSGTYPE Channel
#define AdminMessage_variant_get_owner_response_MSGTYPE User
-#define AdminMessage_variant_get_canned_message_plugin_part1_response_MSGTYPE CannedMessagePluginMessagePart1
-#define AdminMessage_variant_get_canned_message_plugin_part2_response_MSGTYPE CannedMessagePluginMessagePart2
-#define AdminMessage_variant_get_canned_message_plugin_part3_response_MSGTYPE CannedMessagePluginMessagePart3
-#define AdminMessage_variant_get_canned_message_plugin_part4_response_MSGTYPE CannedMessagePluginMessagePart4
-#define AdminMessage_variant_get_canned_message_plugin_part5_response_MSGTYPE CannedMessagePluginMessagePart5
-#define AdminMessage_variant_set_canned_message_plugin_part1_MSGTYPE CannedMessagePluginMessagePart1
-#define AdminMessage_variant_set_canned_message_plugin_part2_MSGTYPE CannedMessagePluginMessagePart2
-#define AdminMessage_variant_set_canned_message_plugin_part3_MSGTYPE CannedMessagePluginMessagePart3
-#define AdminMessage_variant_set_canned_message_plugin_part4_MSGTYPE CannedMessagePluginMessagePart4
-#define AdminMessage_variant_set_canned_message_plugin_part5_MSGTYPE CannedMessagePluginMessagePart5
extern const pb_msgdesc_t AdminMessage_msg;
diff --git a/src/mesh/generated/cannedmessages.pb.c b/src/mesh/generated/cannedmessages.pb.c
index 16563446e..e36eff981 100644
--- a/src/mesh/generated/cannedmessages.pb.c
+++ b/src/mesh/generated/cannedmessages.pb.c
@@ -6,19 +6,7 @@
#error Regenerate this file with the current version of nanopb generator.
#endif
-PB_BIND(CannedMessagePluginMessagePart1, CannedMessagePluginMessagePart1, AUTO)
-
-
-PB_BIND(CannedMessagePluginMessagePart2, CannedMessagePluginMessagePart2, AUTO)
-
-
-PB_BIND(CannedMessagePluginMessagePart3, CannedMessagePluginMessagePart3, AUTO)
-
-
-PB_BIND(CannedMessagePluginMessagePart4, CannedMessagePluginMessagePart4, AUTO)
-
-
-PB_BIND(CannedMessagePluginMessagePart5, CannedMessagePluginMessagePart5, AUTO)
+PB_BIND(CannedMessagePluginConfig, CannedMessagePluginConfig, 2)
diff --git a/src/mesh/generated/cannedmessages.pb.h b/src/mesh/generated/cannedmessages.pb.h
index 0f1b0786e..ec8a42123 100644
--- a/src/mesh/generated/cannedmessages.pb.h
+++ b/src/mesh/generated/cannedmessages.pb.h
@@ -10,25 +10,12 @@
#endif
/* Struct definitions */
-typedef struct _CannedMessagePluginMessagePart1 {
- char text[200];
-} CannedMessagePluginMessagePart1;
-
-typedef struct _CannedMessagePluginMessagePart2 {
- char text[200];
-} CannedMessagePluginMessagePart2;
-
-typedef struct _CannedMessagePluginMessagePart3 {
- char text[200];
-} CannedMessagePluginMessagePart3;
-
-typedef struct _CannedMessagePluginMessagePart4 {
- char text[200];
-} CannedMessagePluginMessagePart4;
-
-typedef struct _CannedMessagePluginMessagePart5 {
- char text[200];
-} CannedMessagePluginMessagePart5;
+typedef struct _CannedMessagePluginConfig {
+ char messagesPart1[201];
+ char messagesPart2[201];
+ char messagesPart3[201];
+ char messagesPart4[201];
+} CannedMessagePluginConfig;
#ifdef __cplusplus
@@ -36,69 +23,31 @@ extern "C" {
#endif
/* Initializer values for message structs */
-#define CannedMessagePluginMessagePart1_init_default {""}
-#define CannedMessagePluginMessagePart2_init_default {""}
-#define CannedMessagePluginMessagePart3_init_default {""}
-#define CannedMessagePluginMessagePart4_init_default {""}
-#define CannedMessagePluginMessagePart5_init_default {""}
-#define CannedMessagePluginMessagePart1_init_zero {""}
-#define CannedMessagePluginMessagePart2_init_zero {""}
-#define CannedMessagePluginMessagePart3_init_zero {""}
-#define CannedMessagePluginMessagePart4_init_zero {""}
-#define CannedMessagePluginMessagePart5_init_zero {""}
+#define CannedMessagePluginConfig_init_default {"", "", "", ""}
+#define CannedMessagePluginConfig_init_zero {"", "", "", ""}
/* Field tags (for use in manual encoding/decoding) */
-#define CannedMessagePluginMessagePart1_text_tag 1
-#define CannedMessagePluginMessagePart2_text_tag 1
-#define CannedMessagePluginMessagePart3_text_tag 1
-#define CannedMessagePluginMessagePart4_text_tag 1
-#define CannedMessagePluginMessagePart5_text_tag 1
+#define CannedMessagePluginConfig_messagesPart1_tag 11
+#define CannedMessagePluginConfig_messagesPart2_tag 12
+#define CannedMessagePluginConfig_messagesPart3_tag 13
+#define CannedMessagePluginConfig_messagesPart4_tag 14
/* Struct field encoding specification for nanopb */
-#define CannedMessagePluginMessagePart1_FIELDLIST(X, a) \
-X(a, STATIC, SINGULAR, STRING, text, 1)
-#define CannedMessagePluginMessagePart1_CALLBACK NULL
-#define CannedMessagePluginMessagePart1_DEFAULT NULL
+#define CannedMessagePluginConfig_FIELDLIST(X, a) \
+X(a, STATIC, SINGULAR, STRING, messagesPart1, 11) \
+X(a, STATIC, SINGULAR, STRING, messagesPart2, 12) \
+X(a, STATIC, SINGULAR, STRING, messagesPart3, 13) \
+X(a, STATIC, SINGULAR, STRING, messagesPart4, 14)
+#define CannedMessagePluginConfig_CALLBACK NULL
+#define CannedMessagePluginConfig_DEFAULT NULL
-#define CannedMessagePluginMessagePart2_FIELDLIST(X, a) \
-X(a, STATIC, SINGULAR, STRING, text, 1)
-#define CannedMessagePluginMessagePart2_CALLBACK NULL
-#define CannedMessagePluginMessagePart2_DEFAULT NULL
-
-#define CannedMessagePluginMessagePart3_FIELDLIST(X, a) \
-X(a, STATIC, SINGULAR, STRING, text, 1)
-#define CannedMessagePluginMessagePart3_CALLBACK NULL
-#define CannedMessagePluginMessagePart3_DEFAULT NULL
-
-#define CannedMessagePluginMessagePart4_FIELDLIST(X, a) \
-X(a, STATIC, SINGULAR, STRING, text, 1)
-#define CannedMessagePluginMessagePart4_CALLBACK NULL
-#define CannedMessagePluginMessagePart4_DEFAULT NULL
-
-#define CannedMessagePluginMessagePart5_FIELDLIST(X, a) \
-X(a, STATIC, SINGULAR, STRING, text, 1)
-#define CannedMessagePluginMessagePart5_CALLBACK NULL
-#define CannedMessagePluginMessagePart5_DEFAULT NULL
-
-extern const pb_msgdesc_t CannedMessagePluginMessagePart1_msg;
-extern const pb_msgdesc_t CannedMessagePluginMessagePart2_msg;
-extern const pb_msgdesc_t CannedMessagePluginMessagePart3_msg;
-extern const pb_msgdesc_t CannedMessagePluginMessagePart4_msg;
-extern const pb_msgdesc_t CannedMessagePluginMessagePart5_msg;
+extern const pb_msgdesc_t CannedMessagePluginConfig_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
-#define CannedMessagePluginMessagePart1_fields &CannedMessagePluginMessagePart1_msg
-#define CannedMessagePluginMessagePart2_fields &CannedMessagePluginMessagePart2_msg
-#define CannedMessagePluginMessagePart3_fields &CannedMessagePluginMessagePart3_msg
-#define CannedMessagePluginMessagePart4_fields &CannedMessagePluginMessagePart4_msg
-#define CannedMessagePluginMessagePart5_fields &CannedMessagePluginMessagePart5_msg
+#define CannedMessagePluginConfig_fields &CannedMessagePluginConfig_msg
/* Maximum encoded size of messages (where known) */
-#define CannedMessagePluginMessagePart1_size 202
-#define CannedMessagePluginMessagePart2_size 202
-#define CannedMessagePluginMessagePart3_size 202
-#define CannedMessagePluginMessagePart4_size 202
-#define CannedMessagePluginMessagePart5_size 202
+#define CannedMessagePluginConfig_size 812
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/mesh/generated/deviceonly.pb.h b/src/mesh/generated/deviceonly.pb.h
index 22a7c95f3..8c28104a7 100644
--- a/src/mesh/generated/deviceonly.pb.h
+++ b/src/mesh/generated/deviceonly.pb.h
@@ -43,11 +43,6 @@ typedef struct _DeviceState {
uint32_t version;
bool no_save;
bool did_gps_reset;
- char canned_message_plugin_message_part1[200];
- char canned_message_plugin_message_part2[200];
- char canned_message_plugin_message_part3[200];
- char canned_message_plugin_message_part4[200];
- char canned_message_plugin_message_part5[200];
} DeviceState;
@@ -58,11 +53,11 @@ extern "C" {
/* Initializer values for message structs */
#define LegacyRadioConfig_init_default {false, LegacyRadioConfig_LegacyPreferences_init_default}
#define LegacyRadioConfig_LegacyPreferences_init_default {_RegionCode_MIN}
-#define DeviceState_init_default {false, LegacyRadioConfig_init_default, false, MyNodeInfo_init_default, false, User_init_default, 0, {NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default}, 0, {MeshPacket_init_default}, false, MeshPacket_init_default, 0, 0, 0, "", "", "", "", ""}
+#define DeviceState_init_default {false, LegacyRadioConfig_init_default, false, MyNodeInfo_init_default, false, User_init_default, 0, {NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default}, 0, {MeshPacket_init_default}, false, MeshPacket_init_default, 0, 0, 0}
#define ChannelFile_init_default {0, {Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default}}
#define LegacyRadioConfig_init_zero {false, LegacyRadioConfig_LegacyPreferences_init_zero}
#define LegacyRadioConfig_LegacyPreferences_init_zero {_RegionCode_MIN}
-#define DeviceState_init_zero {false, LegacyRadioConfig_init_zero, false, MyNodeInfo_init_zero, false, User_init_zero, 0, {NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero}, 0, {MeshPacket_init_zero}, false, MeshPacket_init_zero, 0, 0, 0, "", "", "", "", ""}
+#define DeviceState_init_zero {false, LegacyRadioConfig_init_zero, false, MyNodeInfo_init_zero, false, User_init_zero, 0, {NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero}, 0, {MeshPacket_init_zero}, false, MeshPacket_init_zero, 0, 0, 0}
#define ChannelFile_init_zero {0, {Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero}}
/* Field tags (for use in manual encoding/decoding) */
@@ -78,11 +73,6 @@ extern "C" {
#define DeviceState_version_tag 8
#define DeviceState_no_save_tag 9
#define DeviceState_did_gps_reset_tag 11
-#define DeviceState_canned_message_plugin_message_part1_tag 13
-#define DeviceState_canned_message_plugin_message_part2_tag 14
-#define DeviceState_canned_message_plugin_message_part3_tag 15
-#define DeviceState_canned_message_plugin_message_part4_tag 16
-#define DeviceState_canned_message_plugin_message_part5_tag 17
/* Struct field encoding specification for nanopb */
#define LegacyRadioConfig_FIELDLIST(X, a) \
@@ -105,12 +95,7 @@ X(a, STATIC, REPEATED, MESSAGE, receive_queue, 5) \
X(a, STATIC, OPTIONAL, MESSAGE, rx_text_message, 7) \
X(a, STATIC, SINGULAR, UINT32, version, 8) \
X(a, STATIC, SINGULAR, BOOL, no_save, 9) \
-X(a, STATIC, SINGULAR, BOOL, did_gps_reset, 11) \
-X(a, STATIC, SINGULAR, STRING, canned_message_plugin_message_part1, 13) \
-X(a, STATIC, SINGULAR, STRING, canned_message_plugin_message_part2, 14) \
-X(a, STATIC, SINGULAR, STRING, canned_message_plugin_message_part3, 15) \
-X(a, STATIC, SINGULAR, STRING, canned_message_plugin_message_part4, 16) \
-X(a, STATIC, SINGULAR, STRING, canned_message_plugin_message_part5, 17)
+X(a, STATIC, SINGULAR, BOOL, did_gps_reset, 11)
#define DeviceState_CALLBACK NULL
#define DeviceState_DEFAULT NULL
#define DeviceState_legacyRadio_MSGTYPE LegacyRadioConfig
@@ -140,7 +125,7 @@ extern const pb_msgdesc_t ChannelFile_msg;
/* Maximum encoded size of messages (where known) */
#define LegacyRadioConfig_size 4
#define LegacyRadioConfig_LegacyPreferences_size 2
-#define DeviceState_size 11014
+#define DeviceState_size 10002
#define ChannelFile_size 832
#ifdef __cplusplus
diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h
index ffdad870f..1a4a4f153 100644
--- a/src/mesh/generated/mesh.pb.h
+++ b/src/mesh/generated/mesh.pb.h
@@ -33,6 +33,7 @@ typedef enum _HardwareModel {
HardwareModel_ANDROID_SIM = 38,
HardwareModel_DIY_V1 = 39,
HardwareModel_RAK11200 = 40,
+ HardwareModel_NANO_G1 = 41,
HardwareModel_PRIVATE_HW = 255
} HardwareModel;
diff --git a/src/mesh/generated/radioconfig.pb.h b/src/mesh/generated/radioconfig.pb.h
index 760d15e2b..731176cc8 100644
--- a/src/mesh/generated/radioconfig.pb.h
+++ b/src/mesh/generated/radioconfig.pb.h
@@ -98,7 +98,8 @@ typedef enum _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType {
RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT22 = 4,
RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_BME280 = 5,
RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_BME680 = 6,
- RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MCP9808 = 7
+ RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MCP9808 = 7,
+ RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_SHTC3 = 8
} RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType;
/* Struct definitions */
@@ -225,8 +226,8 @@ typedef struct _RadioConfig {
#define _InputEventChar_ARRAYSIZE ((InputEventChar)(InputEventChar_KEY_BACK+1))
#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MIN RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_DHT11
-#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MAX RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MCP9808
-#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_ARRAYSIZE ((RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType)(RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MCP9808+1))
+#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_MAX RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_SHTC3
+#define _RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_ARRAYSIZE ((RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType)(RadioConfig_UserPreferences_EnvironmentalMeasurementSensorType_SHTC3+1))
#ifdef __cplusplus
diff --git a/variants/nano-g1/platformio.ini b/variants/nano-g1/platformio.ini
new file mode 100644
index 000000000..a3107423e
--- /dev/null
+++ b/variants/nano-g1/platformio.ini
@@ -0,0 +1,8 @@
+; The 1.0 release of the nano-g1 board
+[env:nano-g1]
+extends = esp32_base
+board = ttgo-t-beam
+lib_deps =
+ ${esp32_base.lib_deps}
+build_flags =
+ ${esp32_base.build_flags} -D NANO_G1 -I variants/nano-g1
\ No newline at end of file
diff --git a/variants/nano-g1/variant.h b/variants/nano-g1/variant.h
new file mode 100644
index 000000000..0915013a0
--- /dev/null
+++ b/variants/nano-g1/variant.h
@@ -0,0 +1,30 @@
+// #define BUTTON_NEED_PULLUP // if set we need to turn on the internal CPU pullup during sleep
+
+#define I2C_SDA 21
+#define I2C_SCL 22
+
+#define BUTTON_PIN 36 // The middle button GPIO on the Nano G1
+//#define BUTTON_PIN_ALT 13 // Alternate GPIO for an external button if needed. Does anyone use this? It is not documented anywhere.
+#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Module.
+
+// common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if
+// not found then probe for SX1262
+#define USE_RF95
+#define USE_SX1262
+
+#define LORA_DIO0 26 // a No connect on the SX1262 module
+#define LORA_RESET 23
+#define LORA_DIO1 33 // SX1262 IRQ
+#define LORA_DIO2 32 // SX1262 BUSY
+#define LORA_DIO3 // Not connected on PCB
+
+#ifdef USE_SX1262
+#define SX126X_CS RF95_NSS // FIXME - we really should define LORA_CS instead
+#define SX126X_DIO1 LORA_DIO1
+#define SX126X_BUSY LORA_DIO2
+#define SX126X_RESET LORA_RESET
+#define SX126X_E22 // Not really an E22
+// Internally the module hooks the SX1262-DIO2 in to control the TX/RX switch (which is the default for the sx1262interface
+// code)
+#endif
+