From 5cfd7a513f1fb7c3adaf0d289cde986505334fcc Mon Sep 17 00:00:00 2001 From: Alex Mikhalev Date: Thu, 20 Dec 2018 19:26:59 -0800 Subject: [PATCH] start work on sx127x driver --- main/CMakeLists.txt | 4 +- main/sx127x_driver/sx127x_driver.c | 92 +++++++ main/sx127x_driver/sx127x_driver.h | 42 +++ main/ugv_main.c | 222 +++++++++++++--- sdkconfig.old | 403 ----------------------------- uas-ugv.code-workspace | 8 +- 6 files changed, 336 insertions(+), 435 deletions(-) create mode 100644 main/sx127x_driver/sx127x_driver.c create mode 100644 main/sx127x_driver/sx127x_driver.h delete mode 100644 sdkconfig.old diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index ab30bee..3c0afc8 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,4 +1,4 @@ -set(COMPONENT_SRCS "ugv_main.c") -set(COMPONENT_ADD_INCLUDEDIRS "") +set(COMPONENT_SRCS "ugv_main.c" "sx127x_driver/sx127x_driver.c") +set(COMPONENT_ADD_INCLUDEDIRS "." "./sx127x_driver") register_component() \ No newline at end of file diff --git a/main/sx127x_driver/sx127x_driver.c b/main/sx127x_driver/sx127x_driver.c new file mode 100644 index 0000000..a74df15 --- /dev/null +++ b/main/sx127x_driver/sx127x_driver.c @@ -0,0 +1,92 @@ +#include "sx127x_driver.h" + +#include "esp_log.h" + +const char *SX127X_TAG = "sx127x"; + +#define SX127X_CHECK(check, str, ret_val, ...) \ + if (!(check)) \ + { \ + ESP_LOGE(SX127X_TAG, "%s(%d): " str, __FUNCTION__, __LINE__, ##__VA_ARGS__); \ + return (ret_val); \ + } + +#ifdef NODEBUG +#define SX127X_ERROR_CHECK(ret, fun) \ + { \ + esp_err_t _error_code = (ret); \ + if (_error_code != ESP_OK) \ + { \ + return _error_code; \ + } \ + } +#else +#define SX127X_ERROR_CHECK(ret, fun) \ + { \ + esp_err_t _error_code = (ret); \ + if (_error_code != ESP_OK) \ + { \ + const char *_error_name = esp_err_to_name(_error_code); \ + ESP_LOGE(SX127X_TAG, "%s(%d): " fun ": %s (%d)", \ + __FUNCTION__, __LINE__, _error_name, _error_code); \ + return _error_code; \ + } \ + } +#endif + +esp_err_t sx127x_init(sx127x_config_t *config, sx127x_t *handle) +{ + esp_err_t ret; + + handle->rst_io_num = config->rst_io_num; + handle->irq_io_num = config->irq_io_num; + ret = gpio_set_direction(handle->rst_io_num, GPIO_MODE_OUTPUT); + SX127X_ERROR_CHECK(ret, "gpio_set_direction") + ret = gpio_set_direction(handle->irq_io_num, GPIO_MODE_OUTPUT); + SX127X_ERROR_CHECK(ret, "gpio_set_direction") + + spi_bus_config_t bus_config = { + .mosi_io_num = config->mosi_io_num, + .miso_io_num = config->miso_io_num, + .sclk_io_num = config->sck_io_num, + .quadhd_io_num = -1, + .quadwp_io_num = -1, + .max_transfer_sz = SX127X_MAX_TRANSFER}; + ret = spi_bus_initialize(config->spi_host, &bus_config, 1); + SX127X_ERROR_CHECK(ret, "spi_bus_initialize") + handle->spi_host = config->spi_host; + + spi_device_interface_config_t device_config = { + .command_bits = 0, + .address_bits = 8, + .dummy_bits = 0, + .mode = 0, + .duty_cycle_pos = 0, + .cs_ena_pretrans = 2, + .cs_ena_posttrans = 2, + .clock_speed_hz = 8, // 80mhz / 8 = 10mhz + .input_delay_ns = 0, + .spics_io_num = config->cs_io_num, + .flags = 0, + .queue_size = 8, + .pre_cb = NULL, + .post_cb = NULL, + }; + ret = spi_bus_add_device(config->spi_host, &device_config, &handle->device_handle); + SX127X_ERROR_CHECK(ret, "spi_bus_add_device") + + return ESP_OK; +} + +esp_err_t sx127x_free(sx127x_t *handle) +{ + esp_err_t ret; + + ret = spi_bus_remove_device(handle->device_handle); + SX127X_ERROR_CHECK(ret, "spi_bus_remove_device") + + ret = spi_bus_free(handle->spi_host); + SX127X_ERROR_CHECK(ret, "spi_bus_free") + + return ESP_OK; +} diff --git a/main/sx127x_driver/sx127x_driver.h b/main/sx127x_driver/sx127x_driver.h new file mode 100644 index 0000000..3d64855 --- /dev/null +++ b/main/sx127x_driver/sx127x_driver.h @@ -0,0 +1,42 @@ +#pragma once + +#include "driver/spi_master.h" + +const char *SX127X_TAG; + +#define SX127X_MAX_TRANSFER (1024) + +#define SX127X_CONFIG_DEFAULT \ + sx127x_config_t \ + { \ + .spi_host = VSPI_HOST, \ + .mosi_io_num = 19, \ + .miso_io_num = 27, \ + .sck_io_num = 5, \ + .cs_io_num = 18, \ + .rst_io_num = 14, \ + .irq_io_num = 26 \ + } + +typedef struct sx127x_config +{ + spi_host_device_t spi_host; + gpio_num_t mosi_io_num; + gpio_num_t miso_io_num; + gpio_num_t sck_io_num; + gpio_num_t cs_io_num; + gpio_num_t rst_io_num; + gpio_num_t irq_io_num; +} sx127x_config_t; + +typedef struct sx127x +{ + spi_host_device_t spi_host; + spi_device_handle_t device_handle; + gpio_num_t rst_io_num; + gpio_num_t irq_io_num; +} sx127x_t; + +esp_err_t sx127x_init(sx127x_config_t *config, sx127x_t *handle); + +esp_err_t sx127x_free(sx127x_t *handle); diff --git a/main/ugv_main.c b/main/ugv_main.c index c17eb1b..7f1d2a6 100644 --- a/main/ugv_main.c +++ b/main/ugv_main.c @@ -1,40 +1,204 @@ -/* Hello World Example +#include +#include +#include +#include +#include +#include - This example code is in the Public Domain (or CC0 licensed, at your option.) +const char *TAG = "uas-ugv"; - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ -#include -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "esp_system.h" -#include "esp_spi_flash.h" +class U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, 16, 15, 4); +class SPIClass lora_spi(VSPI); -void app_main() +#define LORA_SCK 5 +#define LORA_MISO 19 +#define LORA_MOSI 27 +#define LORA_CS 18 +#define LORA_RST 14 +#define LORA_IRQ 26 + +#define LORA_FREQ (433E6) +#define LORA_BUF_LEN 64 + +#define OLED_H 64 +#define OLED_W 128 + +struct Packet +{ + int rssi; + double snr; + size_t buffer_len; + char buffer[LORA_BUF_LEN]; +}; + +uint16_t packet_num; + +void loraTask(void *params); +void loraOnReceive(int packetSize); + +xTaskHandle lora_task_hndl; +xQueueHandle lora_packet_recv_queue; // packets recieved (type Packet) +xQueueHandle lora_packet_isr_queue; // packet lengths from the recieve isr (type int) + +Packet packet; + +void setup(void) +{ + Serial.begin(115200); + while (!Serial) + { + delay(10); + } + + ESP_LOGI(TAG, "setup"); + Serial.println("setup"); + + lora_packet_recv_queue = xQueueCreate(4, sizeof(Packet)); + lora_packet_isr_queue = xQueueCreate(4, sizeof(int)); + configASSERT(lora_packet_recv_queue != 0); + configASSERT(lora_packet_isr_queue != 0); + + lora_spi.begin(LORA_SCK, LORA_MISO, LORA_MOSI, LORA_CS); + LoRa.setSPI(lora_spi); + LoRa.setPins(LORA_CS, LORA_RST, LORA_IRQ); + int res = LoRa.begin(LORA_FREQ); // 433MHz + if (!res) + { + Serial.println("LoRa init failed"); + } + LoRa.setTxPower(17); + LoRa.setSpreadingFactor(11); + LoRa.setSignalBandwidth(125E3); + LoRa.setSyncWord(0x34); + LoRa.enableCrc(); + LoRa.onReceive(loraOnReceive); + LoRa.receive(0); + + // LoRa.dumpRegisters(Serial); + + u8g2.beginSimple(); /* Do not clear the display, wake is not required */ + u8g2.clearDisplay(); + u8g2.setPowerSave(false); + + packet_num = 0; + + xTaskCreate(loraTask, "loraTask", 1024 * 10, NULL, 2, &lora_task_hndl); + memset(&packet, 0, sizeof(Packet)); +} + +#define XO 10 + +void drawLogo(void) { - printf("Hello world!\n"); - /* Print chip information */ - esp_chip_info_t chip_info; - esp_chip_info(&chip_info); - printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ", - chip_info.cores, - (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "", - (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : ""); + u8g2.setFontMode(1); // Transparent + u8g2.setFontDirection(0); + u8g2.setFont(u8g2_font_inb24_mf); + u8g2.drawStr(0 + XO, 30, "U"); - printf("silicon revision %d, ", chip_info.revision); + u8g2.setFontDirection(1); + u8g2.setFont(u8g2_font_inb30_mn); + u8g2.drawStr(21 + XO, 8, "8"); - printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024), - (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external"); + u8g2.setFontDirection(0); + u8g2.setFont(u8g2_font_inb24_mf); + u8g2.drawStr(51 + XO, 30, "g"); + u8g2.drawStr(67 + XO, 30, "\xb2"); - for (int i = 10; i >= 0; i--) { - printf("Restarting in %d seconds...\n", i); - vTaskDelay(1000 / portTICK_PERIOD_MS); + u8g2.drawHLine(2 + XO, 35, 47); + u8g2.drawHLine(3 + XO, 36, 47); + u8g2.drawVLine(45 + XO, 32, 12); + u8g2.drawVLine(46 + XO, 33, 12); +} + +void drawURL(void) +{ + u8g2.setFont(u8g2_font_6x12_tr); + u8g2.drawStr(1 + XO, 54, "github.com/olikraus/u8g2"); +} + +void loraOnReceive(int packetSize) +{ + if (packetSize == 0) + return; + ESP_LOGV(TAG, "loraOnReceive"); + xQueueSendFromISR(lora_packet_isr_queue, &packetSize, NULL); +} + +void loraTask(void *params) +{ + char outBuf[20]; + const size_t outBufLen = (sizeof(outBuf) / sizeof(uint8_t)); + int packet_len; + TickType_t send_period = pdMS_TO_TICKS(2000); + TickType_t current_time = xTaskGetTickCount(); + TickType_t next_send = current_time + send_period; + Packet recvd_packet; + while (true) + { + TickType_t delay_ticks = next_send - current_time; + BaseType_t didReceive = xQueueReceive(lora_packet_isr_queue, &packet_len, delay_ticks); + if (didReceive) + { + int packetSize = (packet_len > LORA_BUF_LEN - 1) ? (LORA_BUF_LEN - 1) : (packet_len); + LoRa.setTimeout(50); + LoRa.readBytes(recvd_packet.buffer, packetSize); + recvd_packet.buffer_len = packetSize; + recvd_packet.buffer[packetSize - 1] = '\0'; + recvd_packet.rssi = LoRa.packetRssi(); + recvd_packet.snr = LoRa.packetSnr(); + + xQueueSend(lora_packet_recv_queue, &recvd_packet, 10); } - printf("Restarting now.\n"); - fflush(stdout); - esp_restart(); + current_time = xTaskGetTickCount(); + if (current_time >= next_send) { + sprintf(outBuf, "hello world %d", packet_num); + packet_num++; + LoRa.beginPacket(); + size_t written = LoRa.write((uint8_t *)outBuf, outBufLen - 1); + LoRa.endPacket(); + Serial.printf("lora wrote %d bytes\n", written); + LoRa.receive(0); // go back to receive mode + + current_time = xTaskGetTickCount(); + next_send = current_time + send_period; + } + } +} + +void loop(void) +{ + Serial.println("loop"); + u8g2.firstPage(); + bool recieved_packet = xQueueReceive(lora_packet_recv_queue, &packet, 10); + do + { + // drawLogo(); + // drawURL(); + + u8g2.drawRFrame(0, 0, OLED_W, OLED_H, 4); + + uint32_t free_heap = xPortGetFreeHeapSize(); + u8g2.setFont(u8g2_font_4x6_mf); + u8g2.drawStr(4, 8, "Hello World!"); + u8g2.setCursor(4, 8 + 8); + u8g2.printf("free heap: %d", free_heap); + + if (packet.buffer_len) + { + Serial.printf("lora received packet (len %d, rssi: %d, snr: %f): %s\n", + packet.buffer_len, packet.rssi, packet.snr, packet.buffer); + u8g2.setFont(u8g2_font_4x6_mf); + u8g2.setCursor(4, 8 + 8 + 8); + u8g2.printf("lora pkt(rssi: %d, snr: %f)", packet.rssi, packet.snr); + u8g2.setCursor(4, 8 + 8 + 8 + 8); + u8g2.printf("%s", packet.buffer); + } + + /* draw a frame around the picture */ + // u8g2.drawFrame(0,0,OLED_W,OLED_H); + // u8g2.drawFrame(1,1,384-2,240-2); + } while (u8g2.nextPage()); + delay(1000); } diff --git a/sdkconfig.old b/sdkconfig.old deleted file mode 100644 index f442247..0000000 --- a/sdkconfig.old +++ /dev/null @@ -1,403 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) Project Configuration -# - -# -# SDK tool configuration -# -CONFIG_TOOLPREFIX="xtensa-esp32-elf-" -CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y -CONFIG_LCD_TYPE_AUTO=y -# CONFIG_LCD_TYPE_ST7789V is not set -# CONFIG_LCD_TYPE_ILI9341 is not set -# CONFIG_LCD_OVERCLOCK is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=3 -# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set -CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y -# CONFIG_BOOTLOADER_FACTORY_RESET is not set -# CONFIG_BOOTLOADER_APP_TEST is not set -# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set -# CONFIG_SECURE_BOOT_ENABLED is not set -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 -# CONFIG_FLASHMODE_QIO is not set -# CONFIG_FLASHMODE_QOUT is not set -CONFIG_FLASHMODE_DIO=y -# CONFIG_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_40M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="40m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="2MB" -CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -# CONFIG_MONITOR_BAUD_9600B is not set -# CONFIG_MONITOR_BAUD_57600B is not set -CONFIG_MONITOR_BAUD_115200B=y -# CONFIG_MONITOR_BAUD_230400B is not set -# CONFIG_MONITOR_BAUD_921600B is not set -# CONFIG_MONITOR_BAUD_2MB is not set -# CONFIG_MONITOR_BAUD_OTHER is not set -CONFIG_MONITOR_BAUD_OTHER_VAL=115200 -CONFIG_MONITOR_BAUD=115200 -CONFIG_PARTITION_TABLE_SINGLE_APP=y -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -# CONFIG_PARTITION_TABLE_CUSTOM is not set -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" -CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set -CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y -# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set -# CONFIG_CXX_EXCEPTIONS is not set -CONFIG_STACK_CHECK_NONE=y -# CONFIG_STACK_CHECK_NORM is not set -# CONFIG_STACK_CHECK_STRONG is not set -# CONFIG_STACK_CHECK_ALL is not set -# CONFIG_STACK_CHECK is not set -# CONFIG_WARN_WRITE_STRINGS is not set -# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set -CONFIG_ESP32_APPTRACE_DEST_NONE=y -# CONFIG_ESP32_APPTRACE_ENABLE is not set -CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set -CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=16384 -# CONFIG_MBEDTLS_DEBUG is not set -CONFIG_MBEDTLS_HARDWARE_AES=y -# CONFIG_MBEDTLS_HARDWARE_MPI is not set -# CONFIG_MBEDTLS_HARDWARE_SHA is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -# CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set -CONFIG_MBEDTLS_SSL_PROTO_TLS1=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -CONFIG_MBEDTLS_RC4_DISABLED=y -# CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set -# CONFIG_MBEDTLS_RC4_ENABLED is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_RIPEMD160_C is not set -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -CONFIG_MBEDTLS_ECP_C=y -CONFIG_MBEDTLS_ECDH_C=y -CONFIG_MBEDTLS_ECDSA_C=y -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y -CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -# CONFIG_L2_TO_L3_COPY is not set -# CONFIG_LWIP_IRAM_OPTIMIZATION is not set -CONFIG_LWIP_MAX_SOCKETS=10 -# CONFIG_USE_ONLY_LWIP_SELECT is not set -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_REUSE_RXTOALL=y -# CONFIG_LWIP_SO_RCVBUF is not set -CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1 -# CONFIG_LWIP_IP_FRAG is not set -# CONFIG_LWIP_IP_REASSEMBLY is not set -# CONFIG_LWIP_STATS is not set -# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set -CONFIG_ESP_GRATUITOUS_ARP=y -CONFIG_GARP_TMR_INTERVAL=60 -CONFIG_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y -CONFIG_LWIP_DHCPS_LEASE_UNIT=60 -CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 -# CONFIG_LWIP_AUTOIP is not set -CONFIG_LWIP_NETIF_LOOPBACK=y -CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 -CONFIG_LWIP_MAX_ACTIVE_TCP=16 -CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_TCP_MAXRTX=12 -CONFIG_TCP_SYNMAXRTX=6 -CONFIG_TCP_MSS=1436 -CONFIG_TCP_MSL=60000 -CONFIG_TCP_SND_BUF_DEFAULT=5744 -CONFIG_TCP_WND_DEFAULT=5744 -CONFIG_TCP_RECVMBOX_SIZE=6 -CONFIG_TCP_QUEUE_OOSEQ=y -# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set -CONFIG_TCP_OVERSIZE_MSS=y -# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_UDP_RECVMBOX_SIZE=6 -CONFIG_TCPIP_TASK_STACK_SIZE=3072 -# CONFIG_PPP_SUPPORT is not set -# CONFIG_LWIP_MULTICAST_PING is not set -# CONFIG_LWIP_BROADCAST_PING is not set -CONFIG_LWIP_MAX_RAW_PCBS=16 -CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_DMA_RX_BUF_NUM=10 -CONFIG_DMA_TX_BUF_NUM=10 -CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE=y -CONFIG_EMAC_TASK_PRIORITY=20 -CONFIG_IP_LOST_TIMER_INTERVAL=120 -# CONFIG_AWS_IOT_SDK is not set -# CONFIG_BT_ENABLED is not set -CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0 -CONFIG_BT_RESERVE_DRAM=0 -# CONFIG_MP_BLOB_SUPPORT is not set -# CONFIG_ADC_FORCE_XPD_FSM is not set -CONFIG_ADC2_DISABLE_DAC=y -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y -# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 -# CONFIG_SPIRAM_SUPPORT is not set -# CONFIG_MEMMAP_TRACEMEM is not set -# CONFIG_MEMMAP_TRACEMEM_TWOBANKS is not set -# CONFIG_ESP32_TRAX is not set -CONFIG_TRACEMEM_RESERVE_DRAM=0x0 -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y -# CONFIG_ESP32_ENABLE_COREDUMP is not set -# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set -CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y -CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 -CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_MAIN_TASK_STACK_SIZE=3584 -CONFIG_IPC_TASK_STACK_SIZE=1024 -CONFIG_TIMER_TASK_STACK_SIZE=3584 -CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set -CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y -# CONFIG_NEWLIB_NANO_FORMAT is not set -CONFIG_CONSOLE_UART_DEFAULT=y -# CONFIG_CONSOLE_UART_CUSTOM is not set -# CONFIG_CONSOLE_UART_NONE is not set -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_CONSOLE_UART_BAUDRATE=115200 -# CONFIG_ULP_COPROC_ENABLED is not set -CONFIG_ULP_COPROC_RESERVE_MEM=0 -# CONFIG_ESP32_PANIC_PRINT_HALT is not set -CONFIG_ESP32_PANIC_PRINT_REBOOT=y -# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP32_PANIC_GDBSTUB is not set -CONFIG_ESP32_DEBUG_OCDAWARE=y -CONFIG_ESP32_DEBUG_STUBS_ENABLE=y -CONFIG_INT_WDT=y -CONFIG_INT_WDT_TIMEOUT_MS=300 -CONFIG_INT_WDT_CHECK_CPU1=y -CONFIG_TASK_WDT=y -# CONFIG_TASK_WDT_PANIC is not set -CONFIG_TASK_WDT_TIMEOUT_S=5 -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -CONFIG_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_0=y -# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set -CONFIG_BROWNOUT_DET_LVL=0 -CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y -# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set -CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y -# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set -CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 -CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP32_XTAL_FREQ_40=y -# CONFIG_ESP32_XTAL_FREQ_26 is not set -# CONFIG_ESP32_XTAL_FREQ_AUTO is not set -CONFIG_ESP32_XTAL_FREQ=40 -# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set -# CONFIG_NO_BLOBS is not set -# CONFIG_ESP_TIMER_PROFILING is not set -# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_CSI_ENABLED is not set -CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP32_WIFI_TX_BA_WIN=6 -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_NVS_ENABLED=y -CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP32_PHY_MAX_TX_POWER=20 -# CONFIG_PM_ENABLE is not set -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set -CONFIG_LOG_DEFAULT_LEVEL_INFO=y -# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_COLORS=y -CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y -CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y -CONFIG_ADC_CAL_LUT_ENABLE=y -CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y -# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set -CONFIG_FATFS_CODEPAGE_437=y -# CONFIG_FATFS_CODEPAGE_720 is not set -# CONFIG_FATFS_CODEPAGE_737 is not set -# CONFIG_FATFS_CODEPAGE_771 is not set -# CONFIG_FATFS_CODEPAGE_775 is not set -# CONFIG_FATFS_CODEPAGE_850 is not set -# CONFIG_FATFS_CODEPAGE_852 is not set -# CONFIG_FATFS_CODEPAGE_855 is not set -# CONFIG_FATFS_CODEPAGE_857 is not set -# CONFIG_FATFS_CODEPAGE_860 is not set -# CONFIG_FATFS_CODEPAGE_861 is not set -# CONFIG_FATFS_CODEPAGE_862 is not set -# CONFIG_FATFS_CODEPAGE_863 is not set -# CONFIG_FATFS_CODEPAGE_864 is not set -# CONFIG_FATFS_CODEPAGE_865 is not set -# CONFIG_FATFS_CODEPAGE_866 is not set -# CONFIG_FATFS_CODEPAGE_869 is not set -# CONFIG_FATFS_CODEPAGE_932 is not set -# CONFIG_FATFS_CODEPAGE_936 is not set -# CONFIG_FATFS_CODEPAGE_949 is not set -# CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set -CONFIG_FATFS_FS_LOCK=0 -CONFIG_FATFS_TIMEOUT_MS=10000 -CONFIG_FATFS_PER_FILE_CACHE=y -# CONFIG_WL_SECTOR_SIZE_512 is not set -CONFIG_WL_SECTOR_SIZE_4096=y -CONFIG_WL_SECTOR_SIZE=4096 -# CONFIG_FREERTOS_UNICORE is not set -CONFIG_FREERTOS_CORETIMER_0=y -# CONFIG_FREERTOS_CORETIMER_1 is not set -CONFIG_FREERTOS_HZ=100 -CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set -CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y -# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set -CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y -CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 -CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y -# CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set -# CONFIG_FREERTOS_ASSERT_DISABLE is not set -CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 -CONFIG_FREERTOS_ISR_STACKSIZE=1536 -# CONFIG_FREERTOS_LEGACY_HOOKS is not set -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -# CONFIG_SUPPORT_STATIC_ALLOCATION is not set -CONFIG_TIMER_TASK_PRIORITY=1 -CONFIG_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_TIMER_QUEUE_LENGTH=10 -CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 -# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set -# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set -# CONFIG_FREERTOS_DEBUG_INTERNALS is not set -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -# CONFIG_HEAP_TRACING is not set -CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y -# CONFIG_OPENSSL_DEBUG is not set -CONFIG_OPENSSL_ASSERT_DO_NOTHING=y -# CONFIG_OPENSSL_ASSERT_EXIT is not set -CONFIG_SPIFFS_MAX_PARTITIONS=3 -CONFIG_SPIFFS_CACHE=y -CONFIG_SPIFFS_CACHE_WR=y -# CONFIG_SPIFFS_CACHE_STATS is not set -CONFIG_SPIFFS_PAGE_CHECK=y -CONFIG_SPIFFS_GC_MAX_RUNS=10 -# CONFIG_SPIFFS_GC_STATS is not set -CONFIG_SPIFFS_PAGE_SIZE=256 -CONFIG_SPIFFS_OBJ_NAME_LEN=32 -CONFIG_SPIFFS_USE_MAGIC=y -CONFIG_SPIFFS_USE_MAGIC_LENGTH=y -CONFIG_SPIFFS_META_LENGTH=4 -CONFIG_SPIFFS_USE_MTIME=y -# CONFIG_SPIFFS_DBG is not set -# CONFIG_SPIFFS_API_DBG is not set -# CONFIG_SPIFFS_GC_DBG is not set -# CONFIG_SPIFFS_CACHE_DBG is not set -# CONFIG_SPIFFS_CHECK_DBG is not set -# CONFIG_SPIFFS_TEST_VISUALISATION is not set diff --git a/uas-ugv.code-workspace b/uas-ugv.code-workspace index dc58952..47853fa 100644 --- a/uas-ugv.code-workspace +++ b/uas-ugv.code-workspace @@ -10,7 +10,13 @@ "Unix Makefiles" ], "cmake.buildDirectory": "${workspaceRoot}/cmake-build", - "cmake.configureOnOpen": true + "cmake.configureOnOpen": true, + "files.associations": { + "Dockerfile.*": "dockerfile", + "esp_spi_flash.h": "c", + "sx127x_driver.h": "c", + "task.h": "c" + } }, "extensions": { "recommendations": [