]> git.meshlink.io Git - meshlink-tiny/commitdiff
Merge support for ESP8266. ESP32
authorGuus Sliepen <guus@meshlink.io>
Thu, 2 Sep 2021 21:48:29 +0000 (23:48 +0200)
committerGuus Sliepen <guus@meshlink.io>
Thu, 9 Sep 2021 15:40:19 +0000 (17:40 +0200)
.gitignore
CMakeLists.txt
sdkconfig [new file with mode: 0644]
src/CMakeLists.txt
src/conf.c
src/have.h
src/mlt_main.c

index 85d49b428cf027d7129a33c0344fc6c07494919a..90c48cc6fc4eff5a74365a6603ed3db48df76967 100644 (file)
@@ -19,7 +19,7 @@ tags
 /aclocal.m4
 /aminclude.am
 /ar-lib
-/build
+/build*
 /compile
 /configure
 /depcomp
index 28af8d7dd888fa9af92ae7780b182241e48be2c0..495f319f3366feb873d84036c2130231eef3ddf2 100644 (file)
@@ -1,7 +1,6 @@
 # The following five lines of boilerplate have to be in your project's
 # CMakeLists in this exact order for cmake to work correctly
 cmake_minimum_required(VERSION 3.5)
-set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/system/console/components)
 
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(meshlink_tiny)
diff --git a/sdkconfig b/sdkconfig
new file mode 100644 (file)
index 0000000..0fee3a0
--- /dev/null
+++ b/sdkconfig
@@ -0,0 +1,526 @@
+#
+# Automatically generated file. DO NOT EDIT.
+# Espressif IoT Development Framework (ESP-IDF) Project Configuration
+#
+CONFIG_IDF_TARGET_ESP8266=y
+CONFIG_IDF_TARGET="esp8266"
+
+#
+# SDK tool configuration
+#
+CONFIG_SDK_TOOLPREFIX="xtensa-lx106-elf-"
+CONFIG_BOOTLOADER_INIT_SPI_FLASH=y
+# CONFIG_BOOTLOADER_DISABLE_JTAG_IO is not set
+# CONFIG_BOOTLOADER_FAST_BOOT 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_APP_TEST is not set
+CONFIG_BOOTLOADER_STORE_OFFSET=0x0
+CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB0"
+CONFIG_ESPTOOLPY_BAUD_115200B=y
+# CONFIG_ESPTOOLPY_BAUD_230400B is not set
+# CONFIG_ESPTOOLPY_BAUD_921600B is not set
+# CONFIG_ESPTOOLPY_BAUD_2MB is not set
+# CONFIG_ESPTOOLPY_BAUD_OTHER is not set
+CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
+CONFIG_ESPTOOLPY_BAUD=115200
+CONFIG_ESPTOOLPY_COMPRESSED=y
+CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
+# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
+# CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set
+# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set
+CONFIG_ESPTOOLPY_FLASHMODE="dio"
+CONFIG_SPI_FLASH_MODE=0x0
+# 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_SPI_FLASH_FREQ=0x0
+# 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_SPI_FLASH_SIZE=0x200000
+CONFIG_ESPTOOLPY_BEFORE_RESET=y
+# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
+CONFIG_ESPTOOLPY_BEFORE="default_reset"
+CONFIG_ESPTOOLPY_AFTER_HARD_RESET=y
+# CONFIG_ESPTOOLPY_AFTER_SOFT_RESET is not set
+# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
+CONFIG_ESPTOOLPY_AFTER="hard_reset"
+# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set
+# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set
+# CONFIG_ESPTOOLPY_MONITOR_BAUD_74880B is not set
+CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
+# CONFIG_ESPTOOLPY_MONITOR_BAUD_230400B is not set
+# CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B is not set
+# CONFIG_ESPTOOLPY_MONITOR_BAUD_2MB is not set
+# CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER is not set
+CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL=74880
+CONFIG_ESPTOOLPY_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_OFFSET=0x8000
+CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
+CONFIG_ESP_WIFI_SSID="ssid"
+CONFIG_ESP_WIFI_PASSWORD="password"
+CONFIG_ESP_MAXIMUM_RETRY=5
+# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
+CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
+# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
+# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
+# CONFIG_COMPILER_CXX_EXCEPTIONS is not set
+CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
+# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
+# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set
+# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
+# CONFIG_COMPILER_STACK_CHECK is not set
+# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
+CONFIG_APP_UPDATE_CHECK_APP_SUM=y
+# CONFIG_APP_UPDATE_CHECK_APP_HASH is not set
+CONFIG_APP_COMPILE_TIME_DATE=y
+# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
+# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
+# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
+# CONFIG_ENABLE_COAP is not set
+CONFIG_ESP_TLS_USING_MBEDTLS=y
+# CONFIG_ESP_TLS_USING_WOLFSSL is not set
+# CONFIG_ESP_TLS_SERVER is not set
+# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
+# CONFIG_ESP_TLS_INSECURE is not set
+# CONFIG_ESP_WOLFSSL_INTERNAL is not set
+# CONFIG_WOLFSSL_DEBUG is not set
+CONFIG_ESP8266_NMI_WDT=y
+# CONFIG_ESP8266_XTAL_FREQ_40 is not set
+CONFIG_ESP8266_XTAL_FREQ_26=y
+CONFIG_ESP8266_XTAL_FREQ=26
+# CONFIG_ESP8266_DEFAULT_CPU_FREQ_80 is not set
+CONFIG_ESP8266_DEFAULT_CPU_FREQ_160=y
+CONFIG_ESP8266_DEFAULT_CPU_FREQ_MHZ=160
+CONFIG_ESP_FILENAME_MACRO_NO_PATH=y
+# CONFIG_ESP_FILENAME_MACRO_RAW is not set
+# CONFIG_ESP_FILENAME_MACRO_NULL is not set
+CONFIG_USING_NEW_ETS_VPRINTF=y
+# CONFIG_LINK_ETS_PRINTF_TO_IRAM is not set
+CONFIG_ETS_PRINTF_EXIT_WHEN_FLASH_RW=y
+# CONFIG_SOC_FULL_ICACHE is not set
+CONFIG_SOC_IRAM_SIZE=0xC000
+# CONFIG_DISABLE_ROM_UART_PRINT is not set
+# CONFIG_ESP_PANIC_PRINT_HALT is not set
+CONFIG_ESP_PANIC_PRINT_REBOOT=y
+# CONFIG_ESP_PANIC_SILENT_REBOOT is not set
+# CONFIG_ESP_PANIC_GDBSTUB is not set
+CONFIG_RESET_REASON=y
+CONFIG_WIFI_PPT_TASKSTACK_SIZE=5120
+CONFIG_ESP8266_CORE_GLOBAL_DATA_LINK_IRAM=y
+# CONFIG_ESP8266_OTA_FROM_OLD is not set
+# CONFIG_ESP8266_BOOT_COPY_APP is not set
+CONFIG_ESP8266_TIME_SYSCALL_USE_FRC1=y
+# CONFIG_ESP8266_TIME_SYSCALL_USE_NONE is not set
+# CONFIG_PM_ENABLE is not set
+CONFIG_SCAN_AP_MAX=99
+CONFIG_WIFI_TX_RATE_SEQUENCE_FROM_HIGH=y
+# CONFIG_ESP8266_WIFI_QOS_ENABLED is not set
+# CONFIG_ESP8266_WIFI_AMPDU_RX_ENABLED is not set
+# CONFIG_ESP8266_WIFI_AMSDU_ENABLED is not set
+CONFIG_ESP8266_WIFI_RX_BUFFER_NUM=16
+CONFIG_ESP8266_WIFI_LEFT_CONTINUOUS_RX_BUFFER_NUM=16
+CONFIG_ESP8266_WIFI_RX_PKT_NUM=7
+CONFIG_ESP8266_WIFI_TX_PKT_NUM=6
+CONFIG_ESP8266_WIFI_NVS_ENABLED=y
+CONFIG_ESP8266_WIFI_CONNECT_OPEN_ROUTER_WHEN_PWD_IS_SET=y
+CONFIG_ESP8266_WIFI_ENABLE_WPA3_SAE=y
+# CONFIG_ESP8266_WIFI_DEBUG_LOG_ENABLE is not set
+CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
+# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set
+CONFIG_ESP_PHY_INIT_DATA_VDD33_CONST=33
+CONFIG_ESP8266_PHY_MAX_WIFI_TX_POWER=20
+# CONFIG_ESP8266_HSPI_HIGH_THROUGHPUT is not set
+CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
+CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
+CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048
+CONFIG_ESP_MAIN_TASK_STACK_SIZE=16384
+CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
+CONFIG_ESP_CONSOLE_UART_DEFAULT=y
+# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
+# CONFIG_ESP_CONSOLE_UART_NONE is not set
+CONFIG_ESP_CONSOLE_UART_NUM=0
+CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
+# CONFIG_ESP_UART0_SWAP_IO is not set
+CONFIG_ESP_TASK_WDT=y
+CONFIG_ESP_TASK_WDT_PANIC=y
+# CONFIG_ESP_TASK_WDT_TIMEOUT_13N is not set
+# CONFIG_ESP_TASK_WDT_TIMEOUT_14N is not set
+CONFIG_ESP_TASK_WDT_TIMEOUT_15N=y
+CONFIG_ESP_TASK_WDT_TIMEOUT_S=15
+# CONFIG_ESP_EVENT_LOOP_PROFILING is not set
+CONFIG_ESP_EVENT_POST_FROM_ISR=y
+CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
+# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
+CONFIG_HTTP_BUF_SIZE=512
+CONFIG_HTTPD_MAX_REQ_HDR_LEN=512
+CONFIG_HTTPD_MAX_URI_LEN=512
+CONFIG_OTA_BUF_SIZE=256
+# CONFIG_OTA_ALLOW_HTTP is not set
+# 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_FMB_COMM_MODE_TCP_EN=y
+CONFIG_FMB_TCP_PORT_DEFAULT=502
+CONFIG_FMB_TCP_PORT_MAX_CONN=5
+CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20
+CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150
+CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
+CONFIG_FMB_QUEUE_LENGTH=20
+CONFIG_FMB_PORT_TASK_STACK_SIZE=4096
+CONFIG_FMB_SERIAL_BUF_SIZE=256
+CONFIG_FMB_PORT_TASK_PRIO=10
+CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT=y
+CONFIG_FMB_CONTROLLER_SLAVE_ID=0x00112233
+CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20
+CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
+CONFIG_FMB_CONTROLLER_STACK_SIZE=4096
+CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20
+CONFIG_FMB_TIMER_GROUP=0
+CONFIG_FMB_TIMER_INDEX=0
+# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set
+# CONFIG_DISABLE_FREERTOS is not set
+CONFIG_FREERTOS_UNICORE=y
+# CONFIG_FREERTOS_ENABLE_REENT is not set
+CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
+CONFIG_FREERTOS_HZ=100
+CONFIG_FREERTOS_MAX_HOOK=2
+CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_ISR_STACKSIZE=512
+# CONFIG_FREERTOS_EXTENED_HOOKS is not set
+CONFIG_FREERTOS_GLOBAL_DATA_LINK_IRAM=y
+# CONFIG_FREERTOS_CODE_LINK_TO_IRAM is not set
+CONFIG_FREERTOS_TIMER_STACKSIZE=2048
+CONFIG_TASK_SWITCH_FASTER=y
+# CONFIG_USE_QUEUE_SETS is not set
+# CONFIG_ENABLE_FREERTOS_SLEEP is not set
+# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
+# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
+CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
+# CONFIG_HEAP_DISABLE_IRAM is not set
+# CONFIG_HEAP_TRACING is not set
+CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
+# 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_LOG_SET_LEVEL is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
+CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
+# CONFIG_LWIP_L2_TO_L3_COPY is not set
+# CONFIG_LWIP_IRAM_OPTIMIZATION is not set
+CONFIG_LWIP_TIMERS_ONDEMAND=y
+CONFIG_LWIP_MAX_SOCKETS=10
+# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set
+# CONFIG_LWIP_SO_LINGER is not set
+CONFIG_LWIP_SO_REUSE=y
+CONFIG_LWIP_SO_REUSE_RXTOALL=y
+# CONFIG_LWIP_SO_RCVBUF is not set
+# CONFIG_LWIP_NETBUF_RECVINFO is not set
+CONFIG_LWIP_IP4_FRAG=y
+CONFIG_LWIP_IP6_FRAG=y
+# CONFIG_LWIP_IP4_REASSEMBLY is not set
+# CONFIG_LWIP_IP6_REASSEMBLY is not set
+# CONFIG_LWIP_IP_FORWARD is not set
+# CONFIG_LWIP_STATS is not set
+# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
+CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
+CONFIG_LWIP_GARP_TMR_INTERVAL=60
+CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
+CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
+# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
+CONFIG_LWIP_DHCPS_LEASE_UNIT=60
+CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
+# CONFIG_LWIP_AUTOIP is not set
+# CONFIG_LWIP_IPV6_AUTOCONFIG 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_LWIP_TCP_MAXRTX=12
+CONFIG_LWIP_TCP_SYNMAXRTX=6
+CONFIG_LWIP_TCP_MSS=1440
+CONFIG_LWIP_TCP_TMR_INTERVAL=250
+CONFIG_LWIP_TCP_MSL=60000
+CONFIG_LWIP_TCP_SND_BUF_DEFAULT=2880
+CONFIG_LWIP_TCP_WND_DEFAULT=5760
+CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
+CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
+# CONFIG_LWIP_TCP_SACK_OUT is not set
+# CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
+CONFIG_LWIP_TCP_OVERSIZE_MSS=y
+# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
+# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
+CONFIG_LWIP_TCP_RTO_TIME=3000
+CONFIG_LWIP_MAX_UDP_PCBS=16
+CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
+CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2048
+CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
+# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
+CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
+# CONFIG_LWIP_PPP_SUPPORT is not set
+CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
+CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
+# CONFIG_LWIP_MULTICAST_PING is not set
+# CONFIG_LWIP_BROADCAST_PING is not set
+CONFIG_LWIP_MAX_RAW_PCBS=16
+CONFIG_LWIP_IPV6=y
+CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
+CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
+CONFIG_LWIP_ESP_LWIP_ASSERT=y
+# CONFIG_LWIP_DEBUG is not set
+CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
+# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
+# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
+CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
+CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
+CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
+# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
+# CONFIG_MBEDTLS_DEBUG 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_GMTSSL1_1 is not set
+# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
+CONFIG_MBEDTLS_SSL_ALPN=y
+CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
+CONFIG_MBEDTLS_SERVER_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_util_assert is not set
+# CONFIG_ESP_SHA is not set
+CONFIG_ESP_AES=y
+CONFIG_ESP_MD5=y
+CONFIG_ESP_ARC4=y
+# CONFIG_ENABLE_MDNS is not set
+CONFIG_MQTT_PROTOCOL_311=y
+CONFIG_MQTT_TRANSPORT_SSL=y
+CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
+CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
+# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
+# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
+# CONFIG_MQTT_CUSTOM_OUTBOX is not set
+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_NANO_FORMAT=y
+# CONFIG_OPENSSL_DEBUG is not set
+CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
+# CONFIG_OPENSSL_ASSERT_EXIT is not set
+CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5
+CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
+CONFIG_PTHREAD_STACK_MIN=768
+CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread"
+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
+CONFIG_IP_LOST_TIMER_INTERVAL=120
+CONFIG_TCPIP_ADAPTER_GLOBAL_DATA_LINK_IRAM=y
+CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y
+CONFIG_VFS_SUPPORT_TERMIOS=y
+CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
+CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
+# CONFIG_WL_SECTOR_SIZE_512 is not set
+CONFIG_WL_SECTOR_SIZE_4096=y
+CONFIG_WL_SECTOR_SIZE=4096
+# CONFIG_ENABLE_UNIFIED_PROVISIONING is not set
+CONFIG_LTM_FAST=y
+CONFIG_WPA_MBEDTLS_CRYPTO=y
+# CONFIG_WPA_DEBUG_PRINT is not set
+# CONFIG_WPA_TESTING_OPTIONS is not set
+# CONFIG_WPA_WPS_WARS is not set
+# CONFIG_WPA_11KV_SUPPORT is not set
+
+# Deprecated options for backward compatibility
+CONFIG_TARGET_PLATFORM="esp8266"
+CONFIG_TOOLPREFIX="xtensa-lx106-elf-"
+CONFIG_FLASHMODE_QIO=y
+# CONFIG_FLASHMODE_QOUT is not set
+# CONFIG_FLASHMODE_DIO is not set
+# CONFIG_FLASHMODE_DOUT is not set
+# CONFIG_MONITOR_BAUD_9600B is not set
+# CONFIG_MONITOR_BAUD_57600B is not set
+# CONFIG_MONITOR_BAUD_74880B 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=74880
+CONFIG_MONITOR_BAUD=115200
+# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set
+CONFIG_OPTIMIZATION_LEVEL_RELEASE=y
+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_MAIN_TASK_STACK_SIZE=16384
+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_UART0_SWAP_IO is not set
+CONFIG_TASK_WDT=y
+CONFIG_TASK_WDT_PANIC=y
+CONFIG_TASK_WDT_TIMEOUT_S=15
+CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150
+CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
+CONFIG_MB_QUEUE_LENGTH=20
+CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096
+CONFIG_MB_SERIAL_BUF_SIZE=256
+CONFIG_MB_SERIAL_TASK_PRIO=10
+CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=y
+CONFIG_MB_CONTROLLER_SLAVE_ID=0x00112233
+CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20
+CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
+CONFIG_MB_CONTROLLER_STACK_SIZE=4096
+CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
+CONFIG_MB_TIMER_GROUP=0
+CONFIG_MB_TIMER_INDEX=0
+# CONFIG_L2_TO_L3_COPY is not set
+# CONFIG_USE_ONLY_LWIP_SELECT is not set
+CONFIG_ESP_GRATUITOUS_ARP=y
+CONFIG_GARP_TMR_INTERVAL=60
+CONFIG_TCPIP_RECVMBOX_SIZE=32
+CONFIG_TCP_MAXRTX=12
+CONFIG_TCP_SYNMAXRTX=6
+CONFIG_TCP_MSS=1440
+CONFIG_TCP_MSL=60000
+CONFIG_TCP_SND_BUF_DEFAULT=2880
+CONFIG_TCP_WND_DEFAULT=5760
+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_UDP_RECVMBOX_SIZE=6
+CONFIG_TCPIP_TASK_STACK_SIZE=2048
+CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
+# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
+CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
+# CONFIG_PPP_SUPPORT is not set
+CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
+CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
+CONFIG_ESP32_PTHREAD_STACK_MIN=768
+CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
+CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
+CONFIG_SUPPORT_TERMIOS=y
+# End of deprecated options
index 3346908420c8ab6d99d315fe9ec87eac67710021..4776de0facc975e4ff75553aa041629e20c3da0a 100644 (file)
@@ -1,4 +1,4 @@
-idf_component_register(SRCS 
+idf_component_register(SRCS
                "buffer.c"
                "conf.c"
                "connection.c"
index cae7bd1e90de73c44e4db0acc0677acd7705c2ab..bdd2bc9afafca267c042aa51c3547242881780bd 100644 (file)
@@ -316,11 +316,13 @@ static bool copytree(const char *src_dir_name, const void *src_key, const char *
 
                        config_free(&config);
 
-                       struct utimbuf times;
-                       times.modtime = st.st_mtime;
-                       times.actime = st.st_atime;
+                       const struct timeval times[2] = {{
+                                       st.st_mtime,
+                                       st.st_atime,
+                               }
+                       };
 
-                       if(utime(dst_filename, &times)) {
+                       if(utimes(dst_filename, times)) {
                                logger(NULL, MESHLINK_ERROR, "Failed to utime `%s': %s", dst_filename, strerror(errno));
                                meshlink_errno = MESHLINK_ESTORAGE;
                                return false;
index e7da316771d5ae6868faccfb2ebfcd0f2938d82b..3f77e8234a8c1c3eb58d53f4464f14eb85fcd671 100644 (file)
 #define WIN32_LEAN_AND_MEAN
 #endif
 
+#ifdef ESP_PLATFORM
+#include <freertos/FreeRTOS.h>
+#ifdef CONFIG_IDF_TARGET_ESP8266
+#include <freertos/private/list.h>
+#endif
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
index 977b9c3f0fc457f167db5935ebfd5028a76c413e..e2a6cdfbee4761525748d21d045eb68bd68c58dd 100644 (file)
@@ -1,22 +1,26 @@
 /* MeshLink-tiny Example */
 
-#include <string.h>
-#include "freertos/FreeRTOS.h"
-#include "freertos/task.h"
-#include "freertos/event_groups.h"
-#include "esp_system.h"
-#include "esp_wifi.h"
-#include "esp_event.h"
-#include "esp_log.h"
-#include "esp_console.h"
-#include "esp_vfs_dev.h"
-#include "driver/uart.h"
-#include "linenoise/linenoise.h"
-#include "argtable3/argtable3.h"
-#include "nvs_flash.h"
-
-#include "lwip/err.h"
-#include "lwip/sys.h"
+#include <freertos/FreeRTOS.h>
+#ifdef CONFIG_IDF_TARGET_ESP8266
+#include <freertos/private/list.h>
+#endif
+#include <freertos/task.h>
+#include <freertos/event_groups.h>
+#include <esp_system.h>
+#include <esp_wifi.h>
+#include <esp_event.h>
+#include <esp_log.h>
+#include <esp_console.h>
+#include <esp_vfs_dev.h>
+#include <driver/uart.h>
+#include <linenoise/linenoise.h>
+#include <argtable3/argtable3.h>
+#include <nvs.h>
+#include <nvs_flash.h>
+
+#include <lwip/err.h>
+#include <lwip/sys.h>
+
 
 #include "meshlink-tiny.h"
 
@@ -67,44 +71,33 @@ static void event_handler(void *arg, esp_event_base_t event_base,
 void wifi_init_sta(void) {
        s_wifi_event_group = xEventGroupCreate();
 
-       ESP_ERROR_CHECK(esp_netif_init());
+       tcpip_adapter_init();
 
        ESP_ERROR_CHECK(esp_event_loop_create_default());
-       esp_netif_create_default_wifi_sta();
 
        wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
        ESP_ERROR_CHECK(esp_wifi_init(&cfg));
 
-       esp_event_handler_instance_t instance_any_id;
-       esp_event_handler_instance_t instance_got_ip;
-       ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,
-                       ESP_EVENT_ANY_ID,
-                       &event_handler,
-                       NULL,
-                       &instance_any_id));
-       ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT,
-                       IP_EVENT_STA_GOT_IP,
-                       &event_handler,
-                       NULL,
-                       &instance_got_ip));
+       ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL));
+       ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL));
 
        wifi_config_t wifi_config = {
                .sta = {
                        .ssid = EXAMPLE_ESP_WIFI_SSID,
-                       .password = EXAMPLE_ESP_WIFI_PASS,
-                       /* Setting a password implies station will connect to all security modes including WEP/WPA.
-                        * However these modes are deprecated and not advisable to be used. Incase your Access point
-                        * doesn't support WPA2, these mode can be enabled by commenting below line */
-                       .threshold.authmode = WIFI_AUTH_WPA2_PSK,
-
-                       .pmf_cfg = {
-                               .capable = true,
-                               .required = false
-                       },
+                       .password = EXAMPLE_ESP_WIFI_PASS
                },
        };
+
+       /* Setting a password implies station will connect to all security modes including WEP/WPA.
+           * However these modes are deprecated and not advisable to be used. Incase your Access point
+           * doesn't support WPA2, these mode can be enabled by commenting below line */
+
+       if(strlen((char *)wifi_config.sta.password)) {
+               wifi_config.sta.threshold.authmode = WIFI_AUTH_WPA2_PSK;
+       }
+
        ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
-       ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config));
+       ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));
        ESP_ERROR_CHECK(esp_wifi_start());
 
        ESP_LOGI(TAG, "wifi_init_sta finished.");
@@ -129,12 +122,12 @@ void wifi_init_sta(void) {
                ESP_LOGE(TAG, "UNEXPECTED EVENT");
        }
 
-       /* The event will not be processed after unregister */
-       ESP_ERROR_CHECK(esp_event_handler_instance_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, instance_got_ip));
-       ESP_ERROR_CHECK(esp_event_handler_instance_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, instance_any_id));
+       ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler));
+       ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler));
        vEventGroupDelete(s_wifi_event_group);
 }
 
+
 static void mlt_log(meshlink_handle_t *mesh, meshlink_log_level_t leve, const char *text) {
        ESP_LOGI(TAG, "Log: %s", text);
 }
@@ -181,7 +174,7 @@ static int say_func(int argc, char **argv) {
                return 1;
        }
 
-       if(!meshlink_send(mesh, peer, argv[2], strlen(argv[2]))) {
+       if(!meshlink_send(mesh, peer, argv[2], strlen(argv[2]) + 1)) {
                ESP_LOGE(TAG, "Send failed");
                return 1;
        }
@@ -207,43 +200,6 @@ static void mlt_main(void) {
                return;
        }
 
-       fflush(stdout);
-       fsync(fileno(stdout));
-       setvbuf(stdin, NULL, _IONBF, 0);
-
-       esp_vfs_dev_uart_port_set_rx_line_endings(CONFIG_ESP_CONSOLE_UART_NUM, ESP_LINE_ENDINGS_CR);
-       esp_vfs_dev_uart_port_set_tx_line_endings(CONFIG_ESP_CONSOLE_UART_NUM, ESP_LINE_ENDINGS_CRLF);
-
-       const uart_config_t uart_config = {
-               .baud_rate = CONFIG_ESP_CONSOLE_UART_BAUDRATE,
-               .data_bits = UART_DATA_8_BITS,
-               .parity = UART_PARITY_DISABLE,
-               .stop_bits = UART_STOP_BITS_1,
-#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2
-               .source_clk = UART_SCLK_REF_TICK,
-#else
-               .source_clk = UART_SCLK_XTAL,
-#endif
-       };
-       /* Install UART driver for interrupt-driven reads and writes */
-       ESP_ERROR_CHECK(uart_driver_install(CONFIG_ESP_CONSOLE_UART_NUM,
-                                           256, 0, 0, NULL, 0));
-       ESP_ERROR_CHECK(uart_param_config(CONFIG_ESP_CONSOLE_UART_NUM, &uart_config));
-
-       /* Tell VFS to use UART driver */
-       esp_vfs_dev_uart_use_driver(CONFIG_ESP_CONSOLE_UART_NUM);
-
-       esp_console_config_t console_config = {
-               .max_cmdline_args = 8,
-               .max_cmdline_length = 256,
-       };
-
-       ESP_ERROR_CHECK(esp_console_init(&console_config));
-
-       linenoiseSetMultiLine(1);
-       linenoiseHistorySetMaxLen(1);
-       linenoiseAllowEmpty(false);
-
        esp_console_cmd_t join_cmd = {
                .command = "join",
                .help = "Join a mesh",
@@ -284,16 +240,72 @@ static void mlt_main(void) {
        esp_console_deinit();
 }
 
-void app_main(void) {
-       //Initialize NVS
-       esp_err_t ret = nvs_flash_init();
+static void initialize_nvs() {
+       esp_err_t err = nvs_flash_init();
 
-       if(ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+       if(err == ESP_ERR_NVS_NO_FREE_PAGES) {
                ESP_ERROR_CHECK(nvs_flash_erase());
-               ret = nvs_flash_init();
+               err = nvs_flash_init();
        }
 
-       ESP_ERROR_CHECK(ret);
+       ESP_ERROR_CHECK(err);
+}
+
+static void initialize_console() {
+       /* Disable buffering on stdin */
+       setvbuf(stdin, NULL, _IONBF, 0);
+
+       /* Minicom, screen, idf_monitor send CR when ENTER key is pressed */
+       esp_vfs_dev_uart_set_rx_line_endings(ESP_LINE_ENDINGS_CR);
+       /* Move the caret to the beginning of the next line on '\n' */
+       esp_vfs_dev_uart_set_tx_line_endings(ESP_LINE_ENDINGS_CRLF);
+
+       /* Configure UART. Note that REF_TICK is used so that the baud rate remains
+        * correct while APB frequency is changing in light sleep mode.
+        */
+       uart_config_t uart_config = {
+               .baud_rate = CONFIG_ESP_CONSOLE_UART_BAUDRATE,
+               .data_bits = UART_DATA_8_BITS,
+               .parity = UART_PARITY_DISABLE,
+               .stop_bits = UART_STOP_BITS_1,
+       };
+       ESP_ERROR_CHECK(uart_param_config(CONFIG_ESP_CONSOLE_UART_NUM, &uart_config));
+
+       /* Install UART driver for interrupt-driven reads and writes */
+       ESP_ERROR_CHECK(uart_driver_install(CONFIG_ESP_CONSOLE_UART_NUM,
+                                           256, 0, 0, NULL, 0));
+
+       /* Tell VFS to use UART driver */
+       esp_vfs_dev_uart_use_driver(CONFIG_ESP_CONSOLE_UART_NUM);
+
+       /* Initialize the console */
+       esp_console_config_t console_config = {
+               .max_cmdline_args = 8,
+               .max_cmdline_length = 256,
+#if CONFIG_LOG_COLORS
+               .hint_color = atoi(LOG_COLOR_CYAN)
+#endif
+       };
+       ESP_ERROR_CHECK(esp_console_init(&console_config));
+}
+
+
+void app_main(void) {
+       /* Print chip information */
+       esp_chip_info_t chip_info;
+       esp_chip_info(&chip_info);
+       printf("This is ESP8266 chip with %d CPU cores, WiFi, ",
+              chip_info.cores);
+
+       printf("silicon revision %d, ", chip_info.revision);
+
+       printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
+              (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
+
+       initialize_nvs();
+       initialize_console();
+
+       esp_console_register_help_command();
 
        ESP_LOGI(TAG, "ESP_WIFI_MODE_STA");
        wifi_init_sta();