Compare commits

..

No commits in common. "master" and "v4.2.0-1" have entirely different histories.

9 changed files with 27 additions and 32 deletions

View File

@ -74,10 +74,12 @@ extern "C" void app_main(void)
// Initialize SPI bus // Initialize SPI bus
spi_bus_config_t spi_bus_config; spi_bus_config_t spi_bus_config;
memset(&spi_bus_config, 0, sizeof(spi_bus_config));
spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO; spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO;
spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI; spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI;
spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK; spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK;
spi_bus_config.quadwp_io_num = -1;
spi_bus_config.quadhd_io_num = -1;
spi_bus_config.max_transfer_sz = 0;
err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN); err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN);
ESP_ERROR_CHECK(err); ESP_ERROR_CHECK(err);

View File

@ -14,7 +14,6 @@
#include "esp_event.h" #include "esp_event.h"
#include "driver/gpio.h" #include "driver/gpio.h"
#include "nvs_flash.h" #include "nvs_flash.h"
#include <string.h>
#include "TheThingsNetwork.h" #include "TheThingsNetwork.h"
@ -82,10 +81,12 @@ extern "C" void app_main(void)
// Initialize SPI bus // Initialize SPI bus
spi_bus_config_t spi_bus_config; spi_bus_config_t spi_bus_config;
memset(&spi_bus_config, 0, sizeof(spi_bus_config));
spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO; spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO;
spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI; spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI;
spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK; spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK;
spi_bus_config.quadwp_io_num = -1;
spi_bus_config.quadhd_io_num = -1;
spi_bus_config.max_transfer_sz = 0;
err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN); err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN);
ESP_ERROR_CHECK(err); ESP_ERROR_CHECK(err);

View File

@ -14,7 +14,6 @@
#include "driver/gpio.h" #include "driver/gpio.h"
#include "esp_event.h" #include "esp_event.h"
#include "nvs_flash.h" #include "nvs_flash.h"
#include <string.h>
#include "TheThingsNetwork.h" #include "TheThingsNetwork.h"
@ -75,10 +74,12 @@ extern "C" void app_main(void)
// Initialize SPI bus // Initialize SPI bus
spi_bus_config_t spi_bus_config; spi_bus_config_t spi_bus_config;
memset(&spi_bus_config, 0, sizeof(spi_bus_config));
spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO; spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO;
spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI; spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI;
spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK; spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK;
spi_bus_config.quadwp_io_num = -1;
spi_bus_config.quadhd_io_num = -1;
spi_bus_config.max_transfer_sz = 0;
err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN); err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN);
ESP_ERROR_CHECK(err); ESP_ERROR_CHECK(err);

View File

@ -14,7 +14,6 @@
#include "esp_event.h" #include "esp_event.h"
#include "driver/gpio.h" #include "driver/gpio.h"
#include "nvs_flash.h" #include "nvs_flash.h"
#include <string.h>
#include "TheThingsNetwork.h" #include "TheThingsNetwork.h"
@ -63,12 +62,12 @@ void printRFSettings(const char* window, const TTNRFSettings& settings)
} }
else if (settings.spreadingFactor == kTTNFSK) else if (settings.spreadingFactor == kTTNFSK)
{ {
printf("%s: FSK, BW %dkHz, %ld.%ld MHz\n", printf("%s: FSK, BW %dkHz, %d.%d MHz\n",
window, bw, settings.frequency / 1000000, (settings.frequency % 1000000 + 50000) / 100000); window, bw, settings.frequency / 1000000, (settings.frequency % 1000000 + 50000) / 100000);
} }
else else
{ {
printf("%s: SF%d, BW %dkHz, %ld.%ld MHz\n", printf("%s: SF%d, BW %dkHz, %d.%d MHz\n",
window, sf, bw, settings.frequency / 1000000, (settings.frequency % 1000000 + 50000) / 100000); window, sf, bw, settings.frequency / 1000000, (settings.frequency % 1000000 + 50000) / 100000);
} }
} }
@ -114,10 +113,12 @@ extern "C" void app_main(void)
// Initialize SPI bus // Initialize SPI bus
spi_bus_config_t spi_bus_config; spi_bus_config_t spi_bus_config;
memset(&spi_bus_config, 0, sizeof(spi_bus_config));
spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO; spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO;
spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI; spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI;
spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK; spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK;
spi_bus_config.quadwp_io_num = -1;
spi_bus_config.quadhd_io_num = -1;
spi_bus_config.max_transfer_sz = 0;
err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN); err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN);
ESP_ERROR_CHECK(err); ESP_ERROR_CHECK(err);

View File

@ -15,7 +15,6 @@
#include "esp_sleep.h" #include "esp_sleep.h"
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
#include "nvs_flash.h" #include "nvs_flash.h"
#include <string.h>
#include "TheThingsNetwork.h" #include "TheThingsNetwork.h"
@ -71,10 +70,12 @@ extern "C" void app_main(void)
// Initialize SPI bus // Initialize SPI bus
spi_bus_config_t spi_bus_config; spi_bus_config_t spi_bus_config;
memset(&spi_bus_config, 0, sizeof(spi_bus_config));
spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO; spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO;
spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI; spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI;
spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK; spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK;
spi_bus_config.quadwp_io_num = -1;
spi_bus_config.quadhd_io_num = -1;
spi_bus_config.max_transfer_sz = 0;
err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN); err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN);
ESP_ERROR_CHECK(err); ESP_ERROR_CHECK(err);

View File

@ -14,7 +14,6 @@
#include "driver/gpio.h" #include "driver/gpio.h"
#include "esp_event.h" #include "esp_event.h"
#include "nvs_flash.h" #include "nvs_flash.h"
#include <string.h>
#include "TheThingsNetwork.h" #include "TheThingsNetwork.h"
@ -66,11 +65,12 @@ extern "C" void app_main(void)
// Initialize SPI bus // Initialize SPI bus
spi_bus_config_t spi_bus_config; spi_bus_config_t spi_bus_config;
memset(&spi_bus_config, 0, sizeof(spi_bus_config));
spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO; spi_bus_config.miso_io_num = TTN_PIN_SPI_MISO;
spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI; spi_bus_config.mosi_io_num = TTN_PIN_SPI_MOSI;
spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK; spi_bus_config.sclk_io_num = TTN_PIN_SPI_SCLK;
spi_bus_config.quadwp_io_num = -1;
spi_bus_config.quadhd_io_num = -1;
spi_bus_config.max_transfer_sz = 0;
err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN); err = spi_bus_initialize(TTN_SPI_HOST, &spi_bus_config, TTN_SPI_DMA_CHAN);
ESP_ERROR_CHECK(err); ESP_ERROR_CHECK(err);

View File

@ -152,7 +152,6 @@ void init_io(void)
ESP_LOGI(TAG, "IO initialized"); ESP_LOGI(TAG, "IO initialized");
} }
__attribute__((weak)) // duplicate this symbol if your pin is controlled by e.g. I2C
void hal_pin_rxtx(u1_t val) void hal_pin_rxtx(u1_t val)
{ {
if (pin_rx_tx == LMIC_UNUSED_PIN) if (pin_rx_tx == LMIC_UNUSED_PIN)
@ -161,7 +160,6 @@ void hal_pin_rxtx(u1_t val)
gpio_set_level(pin_rx_tx, val); gpio_set_level(pin_rx_tx, val);
} }
__attribute__((weak)) // duplicate this symbol if your pin is controlled by e.g. I2C
void hal_pin_rst(u1_t val) void hal_pin_rst(u1_t val)
{ {
if (pin_rst == LMIC_UNUSED_PIN) if (pin_rst == LMIC_UNUSED_PIN)
@ -254,7 +252,6 @@ void hal_spi_read(u1_t cmd, u1_t *buf, size_t len)
ESP_ERROR_CHECK(err); ESP_ERROR_CHECK(err);
} }
void IRAM_ATTR assert_nss(spi_transaction_t* trans) void IRAM_ATTR assert_nss(spi_transaction_t* trans)
{ {
gpio_set_level(pin_nss, 0); gpio_set_level(pin_nss, 0);
@ -308,7 +305,7 @@ int64_t os_time_to_esp_time(int64_t esp_now, uint32_t os_time)
return esp_time; return esp_time;
} }
int64_t IRAM_ATTR get_current_time() int64_t get_current_time()
{ {
return esp_timer_get_time() + time_offset; return esp_timer_get_time() + time_offset;
} }

View File

@ -291,8 +291,8 @@ bool join_core(void)
xQueueReset(lmic_event_queue); xQueueReset(lmic_event_queue);
waiting_reason = TTN_WAITING_FOR_JOIN; waiting_reason = TTN_WAITING_FOR_JOIN;
config_rf_params();
LMIC_startJoining(); LMIC_startJoining();
config_rf_params();
hal_esp32_wake_up(); hal_esp32_wake_up();
hal_esp32_leave_critical_section(); hal_esp32_leave_critical_section();

View File

@ -28,8 +28,6 @@
#define NVS_FLASH_KEY_CHUNK_3 "chunk3" #define NVS_FLASH_KEY_CHUNK_3 "chunk3"
#define NVS_FLASH_KEY_TIME "time" #define NVS_FLASH_KEY_TIME "time"
static struct lmic_t tmp_LMIC;
void ttn_nvs_save() void ttn_nvs_save()
{ {
nvs_handle handle = 0; nvs_handle handle = 0;
@ -84,21 +82,21 @@ bool ttn_nvs_restore(int off_duration)
goto done; goto done;
size_t len1 = LMIC_DIST(radio, pendTxData); size_t len1 = LMIC_DIST(radio, pendTxData);
res = nvs_get_blob(handle, NVS_FLASH_KEY_CHUNK_1, &tmp_LMIC.radio, &len1); res = nvs_get_blob(handle, NVS_FLASH_KEY_CHUNK_1, &LMIC.radio, &len1);
if (res != ESP_OK) if (res != ESP_OK)
goto done; goto done;
memset(LMIC.pendTxData, 0, MAX_LEN_PAYLOAD); memset(LMIC.pendTxData, 0, MAX_LEN_PAYLOAD);
size_t len2 = LMIC_DIST(pendTxData, frame) - MAX_LEN_PAYLOAD; size_t len2 = LMIC_DIST(pendTxData, frame) - MAX_LEN_PAYLOAD;
res = nvs_get_blob(handle, NVS_FLASH_KEY_CHUNK_2, (u1_t *)&tmp_LMIC.pendTxData + MAX_LEN_PAYLOAD, &len2); res = nvs_get_blob(handle, NVS_FLASH_KEY_CHUNK_2, (u1_t *)&LMIC.pendTxData + MAX_LEN_PAYLOAD, &len2);
if (res != ESP_OK) if (res != ESP_OK)
goto done; goto done;
memset(LMIC.frame, 0, MAX_LEN_FRAME); memset(LMIC.frame, 0, MAX_LEN_FRAME);
size_t len3 = sizeof(struct lmic_t) - LMIC_OFFSET(frame) - MAX_LEN_FRAME; size_t len3 = sizeof(struct lmic_t) - LMIC_OFFSET(frame) - MAX_LEN_FRAME;
res = nvs_get_blob(handle, NVS_FLASH_KEY_CHUNK_3, (u1_t *)&tmp_LMIC.frame + MAX_LEN_FRAME, &len3); res = nvs_get_blob(handle, NVS_FLASH_KEY_CHUNK_3, (u1_t *)&LMIC.frame + MAX_LEN_FRAME, &len3);
if (res != ESP_OK) if (res != ESP_OK)
goto done; goto done;
@ -117,14 +115,8 @@ bool ttn_nvs_restore(int off_duration)
done: done:
nvs_close(handle); nvs_close(handle);
if (res == ESP_OK) { if (res != ESP_OK)
// copy temporary data to actual memset(&LMIC.radio, 0, sizeof(LMIC) - LMIC_OFFSET(radio));
memcpy(&LMIC.radio, &tmp_LMIC.radio, LMIC_DIST(radio, pendTxData));
memcpy((u1_t *)&LMIC.pendTxData + MAX_LEN_PAYLOAD, (u1_t *)&tmp_LMIC.pendTxData + MAX_LEN_PAYLOAD,
LMIC_DIST(pendTxData, frame) - MAX_LEN_PAYLOAD);
memcpy((u1_t *)&LMIC.frame + MAX_LEN_FRAME, (u1_t *)&tmp_LMIC.frame + MAX_LEN_FRAME,
sizeof(struct lmic_t) - LMIC_OFFSET(frame) - MAX_LEN_FRAME);
}
return res == ESP_OK; return res == ESP_OK;
} }