Compare commits

...

16 Commits

Author SHA1 Message Date
Kevin Hester
d248c6be4b Merge pull request #290 from geeksville/master
get ready for release 0.8.1
2020-07-18 13:24:11 -07:00
geeksville
39b0a89821 0.8.1 2020-07-18 13:19:35 -07:00
geeksville
d9f43d3e2f update protobufs related to https://github.com/meshtastic/Meshtastic-device/issues/269 2020-07-18 09:12:51 -07:00
geeksville
08c77caaa9 fix #266 ble forced to re-pair details below
The NVS copies of hte BLE pairing info for clients were getting corrupted
occasionally.  So I went googling and found some plausible bug reports
but nothing that was an exact match.  Then I looked at the arduino-esp32
binaries for the ESP-IDF framework.  They were fairly old (Jan 20).

Looking through the commits on ESP-IDF release3.3 it seems like there have
been a few fixes for mutual exclusion errors wrt bluetooth.  So I punted
and tried updating ESP-IDF to latest and everything seems fairly solid
now.  Currently running a long test run with three nodes.
2020-07-18 08:54:52 -07:00
geeksville
cfedc97cd0 Show NVS flash utilization at boot (for debugging ble things?) 2020-07-18 08:49:42 -07:00
geeksville
cfad226b2b use new ttgo-lora build names 2020-07-17 14:11:27 -07:00
Kevin Hester
4ee35a0612 Merge pull request #280 from aHVzY2g/master
fix #272 add support for tlora-v2-1-1.6
2020-07-16 11:12:40 -07:00
Marlon Spangenberg
44749470a4 fix #272 add support for tlora-v2-1-1.6 2020-07-14 16:16:49 +02:00
Kevin Hester
8fe714d8b1 Merge pull request #278 from geeksville/master
Fix URL
2020-07-13 17:58:42 -07:00
Kevin Hester
22137ff1bd Merge branch 'master' into master 2020-07-13 17:56:08 -07:00
geeksville
da3b6d1958 Fix URL 2020-07-13 17:55:30 -07:00
Kevin Hester
637960edde Merge pull request #277 from geeksville/master
fix doc typo
2020-07-13 17:51:46 -07:00
geeksville
d9209ffaea fix doc typo 2020-07-13 17:47:22 -07:00
Kevin Hester
9fb94796c8 Merge pull request #276 from rezl/master
Added Beginner's Guide to README.md
2020-07-13 17:46:02 -07:00
Rezl
f060f7faad Merge pull request #1 from rezl/rezl-beginners-guide
Added Beginner's Guide
2020-07-13 19:35:09 -05:00
Rezl
55673fcd66 Added Beginner's Guide 2020-07-13 19:34:14 -05:00
8 changed files with 73 additions and 22 deletions

View File

@@ -8,7 +8,7 @@ COUNTRIES="US EU433 EU865 CN JP"
#COUNTRIES=US #COUNTRIES=US
#COUNTRIES=CN #COUNTRIES=CN
BOARDS="ttgo-lora32-v2 ttgo-lora32-v1 tbeam heltec tbeam0.7" BOARDS="tlora-v2 tlora-v1 tlora-v2-1-1.6 tbeam heltec tbeam0.7"
#BOARDS=tbeam #BOARDS=tbeam
OUTDIR=release/latest OUTDIR=release/latest

View File

@@ -1,3 +1,3 @@
export VERSION=0.7.11 export VERSION=0.8.1

View File

@@ -35,6 +35,10 @@ This project is currently in beta testing but it is fairly stable and feature co
This software is 100% open source and developed by a group of hobbyist experimenters. No warranty is provided, if you'd like to improve it - we'd love your help. Please post in the [forum](https://meshtastic.discourse.group/). This software is 100% open source and developed by a group of hobbyist experimenters. No warranty is provided, if you'd like to improve it - we'd love your help. Please post in the [forum](https://meshtastic.discourse.group/).
### Beginner's Guide
For an detailed walk-through aimed at beginners, we recommend [meshtastic.letstalkthis.com](https://meshtastic.letstalkthis.com/).
# Updates # Updates
Note: Updates are happening almost daily, only major updates are listed below. For more details see our forum. Note: Updates are happening almost daily, only major updates are listed below. For more details see our forum.

View File

@@ -90,7 +90,7 @@ build_flags =
# board_build.ldscript = linker/esp32.extram.bss.ld # board_build.ldscript = linker/esp32.extram.bss.ld
lib_ignore = segger_rtt lib_ignore = segger_rtt
platform_packages = platform_packages =
framework-arduinoespressif32 @ https://github.com/meshtastic/arduino-esp32.git#71ed4002c953d8c87f44ed27e34fe0735f99013e framework-arduinoespressif32 @ https://github.com/meshtastic/arduino-esp32.git#7a78d82f1b5cf64715a14d2f096b8dd775948ac1
; The 1.0 release of the TBEAM board ; The 1.0 release of the TBEAM board
[env:tbeam] [env:tbeam]
@@ -115,18 +115,24 @@ build_flags =
extends = esp32_base extends = esp32_base
board = heltec_wifi_lora_32_V2 board = heltec_wifi_lora_32_V2
[env:ttgo-lora32-v1] [env:tlora-v1]
extends = esp32_base extends = esp32_base
board = ttgo-lora32-v1 board = ttgo-lora32-v1
build_flags = build_flags =
${esp32_base.build_flags} -D TTGO_LORA_V1 ${esp32_base.build_flags} -D TLORA_V1
; note: the platformio definition for lora32-v2 seems stale, it is missing a pins_arduino.h file, therefore I don't think it works ; note: the platformio definition for lora32-v2 seems stale, it is missing a pins_arduino.h file, therefore I don't think it works
[env:ttgo-lora32-v2] [env:tlora-v2]
extends = esp32_base extends = esp32_base
board = ttgo-lora32-v1 board = ttgo-lora32-v1
build_flags = build_flags =
${esp32_base.build_flags} -D TTGO_LORA_V2 ${esp32_base.build_flags} -D TLORA_V2
[env:tlora-v2-1-1.6]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${esp32_base.build_flags} -D TLORA_V2_1_16
; The Heltec Cubecell plus ; 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. ; IMPORTANT NOTE: This target doesn't yet work and probably won't ever work. I'm keeping it around for now.

2
proto

Submodule proto updated: ab281311c4...0523977d1f

View File

@@ -211,9 +211,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RF95_IRQ_GPIO 26 #define RF95_IRQ_GPIO 26
#define DIO1_GPIO 35 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number #define DIO1_GPIO 35 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#define DIO2_GPIO 34 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number #define DIO2_GPIO 34 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#elif defined(TTGO_LORA_V1) #elif defined(TLORA_V1)
// This string must exactly match the case used in release file names or the android updater won't work // This string must exactly match the case used in release file names or the android updater won't work
#define HW_VENDOR "ttgo-lora32-v1" #define HW_VENDOR "tlora-v1"
#undef GPS_RX_PIN #undef GPS_RX_PIN
#undef GPS_TX_PIN #undef GPS_TX_PIN
#define GPS_RX_PIN 36 #define GPS_RX_PIN 36
@@ -232,9 +232,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RF95_IRQ_GPIO 26 // IRQ line for the LORA radio #define RF95_IRQ_GPIO 26 // IRQ line for the LORA radio
#define DIO1_GPIO 35 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number #define DIO1_GPIO 35 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#define DIO2_GPIO 34 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number #define DIO2_GPIO 34 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#elif defined(TTGO_LORA_V2) #elif defined(TLORA_V2)
// This string must exactly match the case used in release file names or the android updater won't work // This string must exactly match the case used in release file names or the android updater won't work
#define HW_VENDOR "ttgo-lora32-v2" #define HW_VENDOR "tlora-v2"
#undef GPS_RX_PIN #undef GPS_RX_PIN
#undef GPS_TX_PIN #undef GPS_TX_PIN
@@ -248,14 +248,35 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost #define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost
#define LED_PIN 25 // If defined we will blink this LED #define LED_PIN 25 // If defined we will blink this LED
#define BUTTON_PIN \ #define BUTTON_PIN 0 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one between this pin and ground
0 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one
// between this pin and ground
#define RESET_GPIO 14 // If defined, this pin will be used to reset the LORA radio #define RESET_GPIO 14 // If defined, this pin will be used to reset the LORA radio
#define RF95_IRQ_GPIO 26 // IRQ line for the LORA radio #define RF95_IRQ_GPIO 26 // IRQ line for the LORA radio
#define DIO1_GPIO 35 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number #define DIO1_GPIO 35 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#define DIO2_GPIO 34 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number #define DIO2_GPIO 34 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#elif defined(TLORA_V2_1_16)
// This string must exactly match the case used in release file names or the android updater won't work
#define HW_VENDOR "tlora-v2-1-1.6"
#undef GPS_RX_PIN
#undef GPS_TX_PIN
#define GPS_RX_PIN 36
#define GPS_TX_PIN 39
#define I2C_SDA 21 // I2C pins for this board
#define I2C_SCL 22
#define RESET_OLED 16 // If defined, this pin will be used to reset the display controller
#define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost
#define LED_PIN 25 // If defined we will blink this LED
#define BUTTON_PIN 12 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one between this pin and ground
#define RESET_GPIO 23 // If defined, this pin will be used to reset the LORA radio
#define RF95_IRQ_GPIO 26 // IRQ line for the LORA radio
#define DIO1_GPIO 35 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#define DIO2_GPIO 34 // DIO1 & DIO2 are not currently used, but they must be assigned to a pin number
#endif #endif
#ifdef ARDUINO_NRF52840_PCA10056 #ifdef ARDUINO_NRF52840_PCA10056

View File

@@ -7,6 +7,8 @@
#include "sleep.h" #include "sleep.h"
#include "target_specific.h" #include "target_specific.h"
#include "utils.h" #include "utils.h"
#include <nvs.h>
#include <nvs_flash.h>
bool bluetoothOn; bool bluetoothOn;
@@ -83,13 +85,19 @@ void esp32Setup()
DEBUG_MSG("Total PSRAM: %d\n", ESP.getPsramSize()); DEBUG_MSG("Total PSRAM: %d\n", ESP.getPsramSize());
DEBUG_MSG("Free PSRAM: %d\n", ESP.getFreePsram()); DEBUG_MSG("Free PSRAM: %d\n", ESP.getFreePsram());
nvs_stats_t nvs_stats;
auto res = nvs_get_stats(NULL, &nvs_stats);
assert(res == ESP_OK);
DEBUG_MSG("NVS: UsedEntries %d, FreeEntries %d, AllEntries %d\n", nvs_stats.used_entries, nvs_stats.free_entries,
nvs_stats.total_entries);
// enableModemSleep(); // enableModemSleep();
// Since we are turning on watchdogs rather late in the release schedule, we really don't want to catch any // Since we are turning on watchdogs rather late in the release schedule, we really don't want to catch any
// false positives. The wait-to-sleep timeout for shutting down radios is 30 secs, so pick 45 for now. // false positives. The wait-to-sleep timeout for shutting down radios is 30 secs, so pick 45 for now.
#define APP_WATCHDOG_SECS 45 #define APP_WATCHDOG_SECS 45
auto res = esp_task_wdt_init(APP_WATCHDOG_SECS, true); res = esp_task_wdt_init(APP_WATCHDOG_SECS, true);
assert(res == ESP_OK); assert(res == ESP_OK);
res = esp_task_wdt_add(NULL); res = esp_task_wdt_add(NULL);

View File

@@ -45,6 +45,10 @@ typedef struct _ChannelSettings {
ChannelSettings_ModemConfig modem_config; ChannelSettings_ModemConfig modem_config;
ChannelSettings_psk_t psk; ChannelSettings_psk_t psk;
char name[12]; char name[12];
uint32_t bandwidth;
uint32_t spread_factor;
uint32_t coding_rate;
uint32_t channel_num;
} ChannelSettings; } ChannelSettings;
typedef PB_BYTES_ARRAY_T(240) Data_payload_t; typedef PB_BYTES_ARRAY_T(240) Data_payload_t;
@@ -241,7 +245,7 @@ typedef struct _ToRadio {
#define RouteDiscovery_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}} #define RouteDiscovery_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0}}
#define SubPacket_init_default {0, {Position_init_default}, 0, 0, 0, 0, {0}, 0} #define SubPacket_init_default {0, {Position_init_default}, 0, 0, 0, 0, {0}, 0}
#define MeshPacket_init_default {0, 0, 0, {SubPacket_init_default}, 0, 0, 0, 0, 0} #define MeshPacket_init_default {0, 0, 0, {SubPacket_init_default}, 0, 0, 0, 0, 0}
#define ChannelSettings_init_default {0, _ChannelSettings_ModemConfig_MIN, {0, {0}}, ""} #define ChannelSettings_init_default {0, _ChannelSettings_ModemConfig_MIN, {0, {0}}, "", 0, 0, 0, 0}
#define RadioConfig_init_default {false, RadioConfig_UserPreferences_init_default, false, ChannelSettings_init_default} #define RadioConfig_init_default {false, RadioConfig_UserPreferences_init_default, false, ChannelSettings_init_default}
#define RadioConfig_UserPreferences_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, {0, 0, 0}} #define RadioConfig_UserPreferences_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, {0, 0, 0}}
#define NodeInfo_init_default {0, false, User_init_default, false, Position_init_default, 0, 0} #define NodeInfo_init_default {0, false, User_init_default, false, Position_init_default, 0, 0}
@@ -257,7 +261,7 @@ typedef struct _ToRadio {
#define RouteDiscovery_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}} #define RouteDiscovery_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0}}
#define SubPacket_init_zero {0, {Position_init_zero}, 0, 0, 0, 0, {0}, 0} #define SubPacket_init_zero {0, {Position_init_zero}, 0, 0, 0, 0, {0}, 0}
#define MeshPacket_init_zero {0, 0, 0, {SubPacket_init_zero}, 0, 0, 0, 0, 0} #define MeshPacket_init_zero {0, 0, 0, {SubPacket_init_zero}, 0, 0, 0, 0, 0}
#define ChannelSettings_init_zero {0, _ChannelSettings_ModemConfig_MIN, {0, {0}}, ""} #define ChannelSettings_init_zero {0, _ChannelSettings_ModemConfig_MIN, {0, {0}}, "", 0, 0, 0, 0}
#define RadioConfig_init_zero {false, RadioConfig_UserPreferences_init_zero, false, ChannelSettings_init_zero} #define RadioConfig_init_zero {false, RadioConfig_UserPreferences_init_zero, false, ChannelSettings_init_zero}
#define RadioConfig_UserPreferences_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, {0, 0, 0}} #define RadioConfig_UserPreferences_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, {0, 0, 0}}
#define NodeInfo_init_zero {0, false, User_init_zero, false, Position_init_zero, 0, 0} #define NodeInfo_init_zero {0, false, User_init_zero, false, Position_init_zero, 0, 0}
@@ -271,6 +275,10 @@ typedef struct _ToRadio {
/* Field tags (for use in manual encoding/decoding) */ /* Field tags (for use in manual encoding/decoding) */
#define ChannelSettings_tx_power_tag 1 #define ChannelSettings_tx_power_tag 1
#define ChannelSettings_modem_config_tag 3 #define ChannelSettings_modem_config_tag 3
#define ChannelSettings_bandwidth_tag 6
#define ChannelSettings_spread_factor_tag 7
#define ChannelSettings_coding_rate_tag 8
#define ChannelSettings_channel_num_tag 9
#define ChannelSettings_psk_tag 4 #define ChannelSettings_psk_tag 4
#define ChannelSettings_name_tag 5 #define ChannelSettings_name_tag 5
#define Data_typ_tag 1 #define Data_typ_tag 1
@@ -436,7 +444,11 @@ X(a, STATIC, SINGULAR, BOOL, want_ack, 11)
X(a, STATIC, SINGULAR, INT32, tx_power, 1) \ X(a, STATIC, SINGULAR, INT32, tx_power, 1) \
X(a, STATIC, SINGULAR, UENUM, modem_config, 3) \ X(a, STATIC, SINGULAR, UENUM, modem_config, 3) \
X(a, STATIC, SINGULAR, BYTES, psk, 4) \ X(a, STATIC, SINGULAR, BYTES, psk, 4) \
X(a, STATIC, SINGULAR, STRING, name, 5) X(a, STATIC, SINGULAR, STRING, name, 5) \
X(a, STATIC, SINGULAR, UINT32, bandwidth, 6) \
X(a, STATIC, SINGULAR, UINT32, spread_factor, 7) \
X(a, STATIC, SINGULAR, UINT32, coding_rate, 8) \
X(a, STATIC, SINGULAR, UINT32, channel_num, 9)
#define ChannelSettings_CALLBACK NULL #define ChannelSettings_CALLBACK NULL
#define ChannelSettings_DEFAULT NULL #define ChannelSettings_DEFAULT NULL
@@ -597,12 +609,12 @@ extern const pb_msgdesc_t ManufacturingData_msg;
#define RouteDiscovery_size 88 #define RouteDiscovery_size 88
#define SubPacket_size 274 #define SubPacket_size 274
#define MeshPacket_size 313 #define MeshPacket_size 313
#define ChannelSettings_size 60 #define ChannelSettings_size 84
#define RadioConfig_size 253 #define RadioConfig_size 277
#define RadioConfig_UserPreferences_size 188 #define RadioConfig_UserPreferences_size 188
#define NodeInfo_size 132 #define NodeInfo_size 132
#define MyNodeInfo_size 110 #define MyNodeInfo_size 110
#define DeviceState_size 5403 #define DeviceState_size 5427
#define DebugString_size 258 #define DebugString_size 258
#define FromRadio_size 322 #define FromRadio_size 322
#define ToRadio_size 316 #define ToRadio_size 316