دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Neil Kolban
سری:
ناشر:
سال نشر: 2018
تعداد صفحات: [1228]
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 15 Mb
در صورت تبدیل فایل کتاب Kolban's Book on ESP32 به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب کتاب Kolban در ESP32 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
من بیش از 30 سال است که در تجارت نرم افزار کار می کنم، اما تا همین اواخر، مستقیماً با میکرو پردازنده ها بازی نمی کردم. وقتی Raspberry PI و سپس Arduino خریدم، می ترسم گیر کرده باشم. در خانهام با رایانههایی با هر شکل، اندازه و ظرفیت احاطه شدهام... هر یک از آنها با قدرتی بالاتر از هر یک از این دستگاههای کوچک... با این حال، من هنوز خودم را مجذوب میدانستم. هنگامی که در اوایل سال جاری به طور تصادفی با ESP32 آشنا شدم، علاقه من را برانگیخت. من چندین دهه بود که برنامه نویسی C را لمس نکرده بودم (این روزها من یک مرد جاوا هستم). همانطور که شروع به خواندن آنچه در راه مستندات موجود از جامعه عالی اطراف دستگاه بود، متوجه شدم که فقط اطلاعات کوچکی وجود دارد. بهترین منبع اطلاعات، فایلهای PDF رسمی برای SDK از Espressif (سازندگان ESP32) بود (و هنوز هم هست)، اما حتی آن هم در نمونهها و پسزمینه «سبک» است. همانطور که دستگاه را مطالعه می کردم، شروع به یادداشت برداری کردم و صفحات یادداشت های من به رشد و رشد ادامه دادند. این کتاب نسخهای از آن یادداشتها است که من به صورت ترکیبی و جلا یافتهام. به جای اینکه آنها را برای خودم نگه دارم، آنها را به همه ما در انجمن ESP32 پیشنهاد می کنم به این امید که ارزشی داشته باشند. برنامه من این است که به روز رسانی این کار ادامه دهم زیرا همه ما بیشتر می آموزیم و آنچه را که در انجمن های انجمن می یابیم به اشتراک می گذاریم. به این ترتیب، من این اثر را در فواصل زمانی منظم مجدداً منتشر میکنم، بنابراین لطفاً برای اطلاع از جدیدترین موارد، دوباره به صفحه اصلی کتاب مراجعه کنید.
I've been working in the software business for over 30 years but until recently, hadn't been playing directly with Micro Processors. When I bought a Raspberry PI and then an Arduino, I'm afraid I got hooked. In my house I am surrounded by computers of all shapes, sizes and capacities … any one of them with orders of magnitude more power than any of these small devices … however, I still found myself fascinated. When I stumbled across the ESP32 earlier this year, it piqued my interest. I hadn't touched C programming in decades (I'm a Java man these days). As I started to read what was available in the way of documentation from the excellent community surrounding the device, I found that there were only small pockets of knowledge. The best source of information was (and still is) the official PDFs for the SDK from Espressif (the makers of the ESP32) but even that is quite "light" on examples and background. As I studied the device, I started to make notes and my pages of notes continued to grow and grow. This book is my collated and polished version of those notes. Rather than keep them to myself, I offer them to all of us in the ESP32 community in the hope that they will be of some value. My plan is to continue to update this work as we all learn more and share what we find in the community forums. As such, I will re-release the work at regular intervals so please check back at the book's home page for the latest.
Introduction Important Documentation Notes – ESP8266 and ESP32 Overview The ESP32 The ESP32 specification ESP32 variants Modules ESP-WROOM-32 ESP32-DevKitC ESP-WROVER-KIT The SparkFun ESP32 thing Connecting to the ESP32 Assembling circuits USB to UART converters Breadboards Power Multi-meter / Logic probe / Logic Analyzer Sundry components Physical construction Configuration for flashing the device Programming for ESP32 Espressif IoT Development framework Application entry point How ESP-IDF works Error handling The build environment menu configuration Adding a custom ESP-IDF component Working with memory Compiling Compilation Flashing Loading a program Programming environments Compilation tools xntensa-esp32-elf-ar esptool xtensa-esp32-elf-gcc gen_appbin.py make xtensa-esp32-elf-strip xtensa-esp32-elf-nm xtensa-esp32-elf-objcopy xtensa-esp32-elf-objdump xxd Linking Sizes of images Debugging ESP-IDF logging Exception handling Address to source line Core dump processing Using a debugger (GDB) OpenOCD and JTAG Using the ESP-WROVER-KIT for JTAG Port numbers for openocd Dumping IP Addresses Debugging and testing TCP and UDP connections Android – Socket Protocol Android – UDP Sender/Receiver Android – tPacketCapture Windows – Hercules SocketTest Linux – netcat (nc) Curl Eclipse – TCP/MON httpbin.org RequestBin tcpdump ESP-IDF component debugging LWIP Run a Blinky WiFi subsystem WiFi Theory Initializing the WiFi environment Setting the operation mode Scanning for access points Handling WiFi events Station configuration Starting up the WiFi environment Connecting to an access point Being an access point Working with connected stations WiFi at boot time The DHCP client The DHCP server Current IP Address, netmask and gateway WiFi Protected Setup – WPS Designs for bootstrapping WiFi Tools for WiFi on Linux iwlist iw Working with TCP/IP The Lightweight IP Stack – lwip TCP TCP/IP Sockets Handling errors Configuration settings Using select() Differences from "standard" sockets UDP/IP Sockets TLS, SSL and security Keys files PEM files mbedTLS client app structure mbedTLS client example mbedTLS server app structure mbedTLS Debugging OpenSSL RSA encryption/decryption Generate DER data containing a private key Name Service Multicast Domain Name Systems mDNS API programming Installing Bonjour Avahi Working with SNTP Java Sockets Network performance tests Bluetooth Bluetooth specification Bluetooth UUIDs Bluetooth GAP Low level packet GAP Advertizing data Advertisability – limited and general Directed advertising Non-connectable advertising Filtering devices Performing a scan Performing advertising Bluetooth GATT GATT Characteristic Being a GATT client Being a GATT Server Notifications and indications GATT XML descriptions Service Discovery Protocol ESP32 and Bluetooth GATT Server – Read request Debugging ESP32 Bluetooth Bluetooth C Programming in Linux hci_get_route hci_open_dev hci_inquiry hci_read_remote_name str2ba ba2str Bluetooth programming in Node.js Using Noble Using Bleno Bluetooth Audio Bluetooth RFCOMM Bluetooth tools l2ping rfcomm bluetoothctl hciconfig hcidump hcitool gatttool Bluetooth examples The iTag peripheral Smart Watch / The TW64 Band Web Bluetooth The Physical Web BLE beacons Hardware interfacing GPIOs Pull up and pull down settings GPIO Interrupt handling Expanding the number of available GPIOs PCF8574 PCF8575 MCP23017 Interrupt Service Routines – ISRs Working with I2C Using the ESP-IDF I2C driver Common I2C devices Working with SPI – Serial Peripheral Interface Using the ESP-IDF SPI driver The Arduino Hardware Abstraction Layer SPI Common SPI devices Working with UART/serial Using the VFS component with serial I2S Bus I2S – Camera I2S – LCD I2S – DMA Interrupts RMT – The Remote Peripheral Timers and time LEDC – Pulse Width Modulation – PWM Automated PWM fading Analog to digital conversion Digital to analog conversion Sleep modes Security Working with flash memory Working with RAM memory RAM Utilization Heap constructions and management Heap diagnosis / memory leaks Heap corruption Using PSRAM EFUSE EFuse #1 EFuse #2 EFuse #3 – 0x6001a00c Button press detection GPS GPS decoding Temperature and pressure – BMP180 Using the Arduino APIs Temperature and pressure – BME280 NeoPixels NeoPixel theory NeoPixels and the ESP32 APA102 LED 7-Segment displays MAX7219/MAX7221 – Serial interface, 8-digit, led display drivers The U8g2 library LCD display – Nokia 5110 – PCD8544 OLED 128x32, 128x64 – SSD1306 TFT displays Ambient light level sensor – BH1750FVI Ambient light and proximity sensor Infrared receivers RFID MFRC522 MFRC522 – Low levels Initialization AntennaOn Cameras Ivan's sample OV7670 Accelerometer and Gyroscope – MPU-6050 (aka GY-521) The math of accelerometers Visualizing orientation Compass – HMC5883L (aka GY-271) (aka CJ-M49) Tilt compensation of the compass Real time clocks Servos The Mini/Micro SG90 Audio PCM5102 – I2S DAC Graphic Equalizer External networking The nRF24 Using the Arduino APIs Integrating the nRF24 with the ESP32 Programming using Eclipse Installing the Eclipse Serial terminal Web development using Eclipse Programming using the Arduino IDE Mapping from the Arduino to the ESP32 Implications of Arduino IDE support Installing the Arduino IDE with ESP32 support Using the Arduino libraries as an ESP-IDF component Tips for working in the Arduino environment Initialize global classes in setup() Invoking Espressif SDK API from a sketch Reasons to consider using Eclipse over Arduino IDE Programming with JavaScript Duktape Compiling code Building for ESP32 Integrating Duktape in an ESP32 application The Duktape stack Working with object properties Calling C from a JavaScript program JerryScript Platform specific files JerryScript life-cycle Accessing the global environment The jerry_value_t Handling errors Interfacing JerryScript with C IoT.js Programming with Python Pycom Micropython Programming with Lua Lua-RTOS for ESP32 Integration with Web Apps HTTP Protocol HTTP Headers Accept header Authorization header Connection header Content-Length header Content-Type header Host header User-Agent header Web Servers Mongoose networking library Setting up Mongoose on an ESP32 Sending a request from Mongoose The Mongoose struct mg_connection Handling file uploads GoAhead Web Server JavaScript Webserver REST Services REST protocol ESP32 as a REST client Making a REST request using Curl Making a REST request using Mongoose ESP32 as a REST service provider WebSockets A WebSocket browser app Mongoose WebSocket Other Websocket implementations Tasker AutoRemote DuckDNS Networking protocols MQTT Mosquitto MQTT Installing on Windows Writing ESP32 MQTT clients Using Mongoose as an MQTT client Using Espruino as an MQTT client Writing non ESP32 MQTT clients Eclipse paho C – Mosquitto client library Node.js JavaScript – MQTT Browser JavaScript – MQTT CoAP – Constrained Application Protocol FTP TFTP Telnet DNS Protocol Mobile apps Blynk Cloud environments IBM Bluemix If This Then That – IFTTT ESP Mesh Storage programming Partition table Non Volatile Storage Virtual File System VFS Implementations FATFS File System Spiffs File System Building SPIFFs for the ESP32 mkspiffs tool The ESP File System – EspFs SD, MMC and SDIO interfacing SD attachment on Wrover Dev Kit ZIP files zlib miniz kuba--/zip Charting data Kst Sample Snippets Sample applications Sample – Ultrasonic distance measurement Sample – WiFi Scanner Sample – A changeable mood light Using FreeRTOS The architecture of a task in FreeRTOS Priorities and FreeRTOS tasks Stacks and FreeRTOS tasks Timers in FreeRTOS Blocking and synchronization within FreeRTOS Semaphores and Mutices within FreeRTOS Queues within FreeRTOS Ring buffer within FreeRTOS Working with queue sets Monitoring capabilities Running untested functions The Serial AT command processor Mongoose OS The Mongoose OS file system Setting up Mongoose OS WiFi Building a Mongoose OS App AWS IoT The ESP-IDF aws_iot component Google IoT Creating a Google Cloud IoT device registry MQTT connections to Google IoT Using the TI CC2650 SensorTag IR Temperature Sensor Humidity Service Ambient light sensor Key Press Developing solutions on Linux Building a Linux environment Hardware architecture The CPU and cores Intrinsic data types Native byte order, endian and network byte order Memory mapping and address spaces Reading and writing registers Pads and multiplexing Register based GPIO GPIO_OUT_REG GPIO_OUT_W1TS_REG GPIO_OUT_W1TC_REG GPIO_OUT1_REG GPIO_OUT1_W1TS_REG GPIO_OUT1_W1TC_REG GPIO_ENABLE_REG GPIO_ENABLE_W1TS_REG GPIO_ENABLE_W1TC_REG GPIO_ENABLE1_REG GPIO_ENABLE1_W1TS_REG GPIO_ENABLE1_W1TC_REG GPIO_STRAP_REG GPIO_IN_REG GPIO_IN1_REG GPIO_STATUS_REG GPIO_STATUS_W1TS_REG GPIO_STATUS_W1TC_REG GPIO_STATUS1_REG GPIO_STATUS1_W1TS_REG GPIO_STATUS1_W1TC_REG GPIO_PCPU_NMI_INT1_REG GPIO_PCPU_NMI_INT1_REG GPIO_PINn_REG GPIO_FUNCm_IN_SEL_CFG_REG GPIO_FUNCn_OUT_SEL_CFG_REG IO_MUX_x_REG Strapping pins Boot mode source Debugging on U0TX0 at boot Timing of SDIO slave Bootloader Power modes Peripherals Remote Control Peripheral – RMT SPI PID Controller UART I2S Peripheral I2S Input Data I2S Clock Camera mode Registers I2S_CONF_REG I2S_CONF2_REG I2S_CLKM_CONF_REG I2S_CONF_CHAN_REG I2S_LC_CONF_REG I2S_FIFO_CONF_REG I2S_IN_LINK_REG I2S_RXEOF_NUM_REG I2S_CONF_CHAN_REG I2S_SAMPLE_RATE_CONF_REG I2S_INT_RAW_REG I2S_INT_ENA_REG I2S_INT_CLR_REG RTC RTCIO_RTC_GPIO_OUT_DATA RTCIO_RTC_GPIO_OUT_DATA_W1TS RTCIO_RTC_GPIO_OUT_DATA_W1TC RTCIO_RTC_GPIO_ENABLE RTCIO_RTC_GPIO_ENABLE_W1TS RTCIO_RTC_GPIO_ENABLE_W1TC RTCIO_RTC_GPIO_STATUS_INT RTCIO_RTC_GPIO_STATUS_INT_W1TS RTCIO_RTC_GPIO_STATUS_INT_W1TC RTCIO_RTC_GPIO_IN_NEXT RTCIO_RTC_GPIO_PINn_WAKEUP_ENABLE RTCIO_RTC_GPIO_PINn_INT_TYPE RTCIO_RTC_GPIO_PINn_PAD_DRIVER RTCIO_DIG_PAD_HOLD_REG RTCIO_HALL_XPD_HALL RTCIO_HALL_PHASE RTCIO_SENSOR_SENSEn_HOLD RTCIO_SENSOR_SENSEn_MUX_SEL RTCIO_SENSOR_SENSEn_FUN_SEL RTCIO_SENSOR_SENSEn_SLP_SEL RTCIO_SENSOR_SENSEn_SLP_IE RTCIO_SENSOR_SENSEn_FUN_IE RTCIO_ADC_ADCn_HOLD RTCIO_ADC_ADCn_MUX_SEL RTCIO_ADC_ADCn_FUN_SEL RTCIO_ADC_ADCn_SLP_SEL RTCIO_ADC_ADCn_SLP_IE RTCIO_ADC_ADCn_FUN_IE RTCIO_PAD_PDAC1_DRV RTCIO_PAD_PDAC1_HOLD RTCIO_PAD_PDAC1_RDE RTCIO_PAD_PDAC1_RUE RTCIO_PAD_PDAC1_DAC RTCIO_PAD_PDAC1_XPD_DAC RTCIO_PAD_PDAC1_MUX_SEL RTCIO_PAD_PDAC1_FUN_SEL RTCIO_PAD_PDAC1_SLP_SEL RTCIO_PAD_PDAC1_SLP_IE RTCIO_PAD_PDAC1_SLP_OE RTCIO_PAD_PDAC1_FUN_IE RTCIO_PAD_PDAC1_DAC_XPD_FORCE ULP Processor Preparing a ULP co-processor environment ULP Instruction set NOP – No operation ADD – Add to a register SUB – Subtract from register AND – Logical AND of two operands OR – Logical OR of two operands LSH – Logical Shift Left RSH – Logical Shift Right MOVE – Move to register ST – Store data to memory LD – Load data from memory JUMP – Jump to an absolute address JUMPR – Jump relative with condition JUMPS – Jump relative based on stage count STAGE_RST – Reset the stage count register STAGE_INC – Increment the stage count register STAGE_DEC – Decrement the stage count register HALT – End the program WAKE – Wakeup the chip SLEEP – Set the ULP wakeup timer period WAIT – Wait some number of cycles TSENS – Do measurement with the temperature sensor ADC – Do measurement with ADC REG_RD – Read from peripheral register REG_WR – Write to peripheral register ULP co-processor assembler coding Loading and starting a ULP co-processor application Waking up the ULP co-processor Peripheral registers for ULP co-processor SENS_ULP_CP_SLEEP_CYC0_REG SENS_ULP_CP_SLEEP_CYC1_REG SENS_ULP_CP_SLEEP_CYC2_REG SENS_ULP_CP_SLEEP_CYC3_REG SENS_ULP_CP_SLEEP_CYC4_REG SENS_SAR_START_FORCE_REG Electronics Transistors as switches Logic Level Shifting Projects JerryScript library for ESP32 The "require" capability API Reference Configuration, status and operational retrieval Arduino Mapping bitRead bitWrite delay digitalWrite pinMode SPI.begin SPI.setBitOrder SPI.setClockDivider SPI.setDataMode SPI.transfer Wire.begin Wire.beginTransmission Wire.endTransmission Wire.read Wire.requestFrom Wire.write FreeRTOS API reference portENABLE_INTERRUPTS portDISABLE_INTERRUPTS xPortGetCoreID pvPortMalloc pvPortFree xPortGetFreeHeapSize() xEventGroupClearBits xEventGroupCreate xEventGroupCreateStatic vEventGroupDelete xEventGroupSetBits xEventGroupWaitBits xQueueAddToSet xQueueCreate xQueueCreateSet xQueueCreateStatic vQueueDelete xQueueGenericReceive uxQueueMessagesWaiting xQueueOverwrite xQueuePeek xQueuePeekFromISR xQueueReceive xQueueReceiveFromISR xQueueRemoveFromSet xQueueReset xQueueSelectFromSet xQueueSelectFromSetFromISR xQueueSend xQueueSendFromISR xQueueSendToBack xQueueSendToBackFromISR xQueueSendToFront xQueueSendToFrontFromISR uxQueueSpacesAvailable xRingbufferAddToQueueSetRead xRingbufferAddToQueueSetWrite xRingbufferCreate vRingbufferDelete xRingbufferGetMaxItemSize xRingBufferPrintInfo xRingbufferReceive xRingbufferReceiveFromISR xRingbufferReceiveUpTo xRingbufferReceiveUpToFromISR xRingbufferRemoveFromQueueSetRead xRingbufferRemoveFromQueueSetWrite vRingbufferReturnItem vRingbufferReturnItemFromISR xRingbufferSend xRingbufferSendFromISR vSemaphoreCreateBinary xSemaphoreCreateCounting xSemaphoreCreateMutex vSemaphoreDelete uxSemaphoreGetCount xSemaphoreGive xSemaphoreGiveFromISR xSemaphoreTake xTaskCreate xTaskCreatePinnedToCore vTaskDelay vTaskDelayUntil vTaskDelete taskDISABLE_INTERRUPTS taskENABLE_INTERRUPTS vTaskGetInfo xTaskGetCurrentTaskHandle pcTaskGetTaskName uxTaskGetNumberOfTasks uxTaskGetSnapshotAll uxTaskGetStackHighWaterMark pxTaskGetStackStart eTaskGetState uxTaskGetSystemState xTaskGetTickCount xTaskGetTickCountFromISR vTaskList uxTaskPriorityGet uxTaskPriorityGetFromISR vTaskPrioritySet vTaskResume vTaskResumeFormISR xTaskResumeAll vTaskResumeFromISR vTaskSuspend vTaskSuspendAll xTimerChangePeriod xTimerChangePeriodFromISR xTimerCreate xTimerCreateStatic xTimerDelete pcTimerGetName xTimerGetExpiryTime xTimerGetPeriod pvTimerGetTimerDaemonTaskHandle pvTimerGetTimerID xTimerIsTimerActive xTimerPendFunctionCall xTimerPendFunctionCallFromISR xTimerReset xTimerResetFromISR vTimerSetTimerID xTimerStart xTimerStartFromISR xTimerStop xTimerStopFromISR List Processing vListInitialise vListInitialiseItem vListInsert vListInsertEnd Sockets APIs accept bind close closesocket connect fcntl freeaddrinfo getaddrinfo gethostbyname gethostbyname_r getpeername getsockname getsockopt htonl htons inet_ntop inet_pton ioctlsocket listen read recv recvfrom select send sendmsg sendto setsockopt shutdown socket write writev Socket data structures Sockets – struct sockaddr Sockets – struct sockaddr_in Working with WiFi DNS dns_getserver dns_setserver System Functions esp_chip_info esp_cpu_in_ocd_debug_mode esp_deregister_freertos_idle_hook esp_deregister_freertos_tick_hook esp_efuse_read_mac esp_get_free_heap_size esp_get_idf_version esp_ipc_call esp_ipc_call_blocking esp_random esp_register_freertos_idle_hook esp_register_freertos_idle_hook_for_cpu esp_register_freertos_tick_hook esp_register_freertos_tick_hook_for_cpu esp_restart esp_sleep_get_wakeup_cause ets_delay_us system_rtc_mem_write rtc_get_reset_reason software_reset software_reset_cpu system_deep_sleep system_get_time system_restore system_rtc_mem_read system_rtc_mem_write system_rtc_mem_read WiFi esp_event_loop_init esp_event_loop_set_cb esp_wifi_ap_get_sta_list esp_wifi_clear_fast_connect esp_wifi_connect esp_wifi_deauth_sta esp_wifi_deinit esp_wifi_disconnect esp_wifi_free_station_list esp_wifi_get_auto_connect esp_wifi_get_bandwidth esp_wifi_get_channel esp_wifi_get_config esp_wifi_get_country esp_wifi_get_event_mask esp_wifi_get_mac esp_wifi_get_mode esp_wifi_get_promiscuous esp_wifi_get_protocol esp_wifi_get_ps esp_wifi_get_station_list esp_wifi_init esp_wifi_restore esp_wifi_reg_rxcb esp_wifi_scan_get_ap_records esp_wifi_scan_get_ap_num esp_wifi_scan_start esp_wifi_scan_stop esp_wifi_set_auto_connect esp_wifi_set_bandwidth esp_wifi_set_channel esp_wifi_set_config esp_wifi_set_country esp_wifi_set_event_mask esp_wifi_set_mac esp_wifi_set_mode esp_wifi_set_promiscuous_rx_cb esp_wifi_set_promiscuous esp_wifi_set_protocol esp_wifi_set_ps esp_wifi_set_storage esp_wifi_set_vendor_ie esp_wifi_set_vendor_ie_cb esp_wifi_sta_get_ap_info esp_wifi_start esp_wifi_stop WiFi WPS wifi_wps_enable wifi_wps_disable wifi_wps_start wifi_set_wps_cb mbed TLS mbedtls_ctr_drbg_free mbedtls_ctr_drbg_init mbedtls_ctr_drbg_seed mbedtls_debug_set_threshold mbedtls_entropy_free mbedtls_entropy_init mbedtls_net_accept mbedtls_net_bind mbedtls_net_connect mbedtls_net_free mbedtls_net_init mbedtls_net_recv mbedtls_net_recv_timeout mbedtls_net_send mbedtls_net_set_block mbedtls_net_set_nonblock mbedtls_pk_decrypt mbedtls_pk_encrypt mebdlts_pk_free mebdtls_pk_get_len mbedtls_pk_get_name mbedtls_pk_info_from_type mbedtls_pk_init mbedtls_pk_parse_key mbedtls_pk_rsa_context mbedtls_pk_setup mbedtls_pk_write_key_der mbedtls_pk_write_key_pem mbedtls_pk_write_pubkey_der mbedtls_pk_write_pubkey_pem mbedtls_printf mbedtls_sha1 mbedlts_rsa_check_privkey mbedtls_rsa_check_pubkey mbedtls_rsa_free mbedtls_rsa_gen_key mbedtls_rsa_init mbedtls_rsa_pkcs_encrypt mbedtls_ssl_close_notify mbedtls_ssl_conf_authmode mbedtls_ssl_conf_ca_chain mbedtls_ssl_conf_dbg mbedtls_ssl_conf_rng mbedtls_ssl_config_defaults mbedtls_ssl_config_free mbedtls_ssl_config_init mbedtls_ssl_free mbedtls_ssl_get_verify_result mbedtls_ssl_handshake mbedtls_ssl_init mbedtls_ssl_read mbedtls_ssl_session_reset mbedtls_ssl_set_bio mbedtls_ssl_set_hostname mbedtls_ssl_setup mbedtls_ssl_write mbedtls_strerror mbedtls_x509_crt_init mbedtls_x509_crt_parse mbedtls_x509_crt_veryify_info ESP-TLS esp_tls_conn_delete esp_tls_conn_http_new esp_tls_conn_new esp_tls_conn_read esp_tls_conn_write Bluetooth LE esp_bt_uuid_t esp_attr_value_t esp_gatt_id_t esp_gatt_srvc_id_t esp_gatt_status_t esp_gattc_char_elem_t esp_gattc_db_elem_t esp_gattc_descr_elem_t esp_gattc_service_elem_t esp_ble_gap_config_adv_data esp_ble_gap_config_adv_data_raw esp_ble_gap_config_scan_rsp_data_raw esp_ble_gap_config_local_privacy esp_ble_gap_disconnect esp_ble_gap_get_whitelist_size esp_ble_gap_read_rssi esp_ble_gap_register_callback ESP_GAP_BLE_ADD_WHITELIST_COMPLETE_EVT ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT ESP_GAP_BLE_ADV_START_COMPLETE_EVT ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT ESP_GAP_BLE_AUTH_CMPL_EVT ESP_GAP_BLE_CLEAR_BOND_DEV_COMPLETE_EVT ESP_GAP_BLE_GET_BOND_DEV_COMPLETE_EVT ESP_GAP_BLE_KEY_EVT ESP_GAP_BLE_LOCAL_ER_EVT ESP_GAP_BLE_LOCAL_IR_EVT ESP_GAP_BLE_NC_REQ_EVT ESP_GAP_BLE_OOB_REQ_EVT ESP_GAP_BLE_PASSKEY_NOTIF_EVT ESP_GAP_BLE_PASSKEY_REQ_EVT ESP_GAP_BLE_READ_RSSI_COMPLETE_EVT ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT ESP_GAP_BLE_SCAN_RESULT_EVT ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT ESP_GAP_BLE_SCAN_START_COMPLETE_EVT ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT ESP_GAP_BLE_SEC_REQ_EVT ESP_GAP_BLE_SET_LOCAL_PRIVACY_COMPLETE_EVT ESP_GAP_BLE_SET_PKT_LENGTH_COMPLETE_EVT ESP_GAP_BLE_SET_STATIC_RAND_ADDR_EVT ESP_GAP_BLE_UPDATE_CONN_PARAMS_EVT esp_ble_gap_security_rsp esp_ble_gap_set_device_name esp_ble_set_encryption esp_ble_gap_set_pkt_data_len esp_ble_gap_set_prefer_conn_params esp_ble_gap_set_rand_addr esp_ble_gap_set_security_param esp_ble_gap_set_scan_params esp_ble_gap_start_advertising esp_ble_gap_start_scanning esp_ble_gap_stop_advertising esp_ble_gap_stop_scanning esp_ble_gap_update_conn_params esp_ble_gap_update_whitelist esp_ble_gattc_app_register esp_ble_gattc_app_unregister esp_ble_gattc_close esp_ble_gattc_cache_refresh esp_ble_gattc_config_mtu esp_ble_gattc_execute_write esp_ble_gattc_get_all_char esp_ble_gattc_get_all_descr esp_ble_gattc_get_attr_count esp_ble_gattc_get_char_by_uuid esp_ble_gattc_get_characteristic esp_ble_gattc_get_db esp_ble_gattc_get_descr_by_char_handle esp_ble_gattc_get_descr_by_uuid esp_ble_gattc_get_descriptor esp_ble_gattc_get_include_service esp_ble_gattc_get_included_service esp_ble_gattc_get_service esp_ble_gattc_open esp_ble_gattc_prepare_write esp_ble_gattc_prepare_write_char_descr esp_ble_gattc_read_char esp_ble_gattc_read_char_descr esp_ble_gattc_read_multiple esp_ble_gattc_register_callback ESP_GATTC_ACL_EVT ESP_GATTC_ADV_DATA_EVT ESP_GATTC_ADV_VSC_EVT ESP_GATTC_BTH_SCAN_CFG_EVT ESP_GATTC_BTH_SCAN_DIS_EVT ESP_GATTC_BTH_SCAN_ENB_EVT ESP_GATTC_BTH_SCAN_PARAM_EVT ESP_GATTC_BTH_SCAN_RD_EVT ESP_GATTC_BTH_SCAN_THR_EVT ESP_GATTC_CANCEL_OPEN_EVT ESP_GATTC_CFG_MTU_EVT ESP_GATTC_CLOSE_EVT ESP_GATTC_CONGEST_EVT ESP_GATTC_CONNECT_EVT ESP_GATTC_DISCONNECT_EVT ESP_GATTC_ENC_CMPL_CB_EVT ESP_GATTC_EXEC_EVT ESP_GATTC_GET_CHAR_EVT ESP_GATTC_GET_DESCR_EVT ESP_GATTC_GET_INCL_SRVC_EVT ESP_GATTC_MULT_ADV_DATA_EVT ESP_GATTC_MULT_ADV_DIS_EVT ESP_GATTC_MULT_ADV_ENB_EVT ESP_GATTC_MULT_ADV_UPD_EVT ESP_GATTC_NOTIFY_EVT ESP_GATTC_OPEN_EVT ESP_GATTC_PREP_WRITE_EVT ESP_GATTC_READ_CHAR_EVT ESP_GATTC_READ_DESC_EVT ESP_GATTC_REG_EVT ESP_GATTC_REG_FOR_NOTIFY_EVT ESP_GATTC_SEARCH_CMPL_EVT ESP_GATTC_SEARCH_RES_EVT ESP_GATTC_SCAN_FLT_CFG_EVT ESP_GATTC_SCAN_FLT_PARAM_EVT ESP_GATTC_SCAN_FLT_STATUS_EVT ESP_GATTC_SRVC_CHG_EVT ESP_GATTC_UNREG_EVT ESP_GATTC_UNREG_FOR_NOTIFY_EVT ESP_GATTC_WRITE_CHAR_EVT esp_ble_gattc_register_for_notify esp_ble_gattc_unregister_for_notify esp_ble_gattc_search_service esp_ble_gattc_write_char esp_ble_gattc_write_char_descr esp_ble_gatts_add_char esp_ble_gatts_add_char_descr esp_ble_gatts_add_included_service esp_ble_gatts_app_register esp_ble_gatts_app_unregister esp_ble_gatts_close esp_ble_gatts_create_attribute_tab esp_ble_gatts_create_service esp_ble_gatts_delete_service esp_ble_gatts_get_attr_value esp_ble_gatts_open esp_ble_gatts_register_callback ESP_GATTS_ADD_CHAR_DESCR_EVT ESP_GATTS_ADD_CHAR_EVT ESP_GATTS_ADD_INCL_SRVC_EVT ESP_GATTS_CANCEL_OPEN_EVT ESP_GATTS_CLOSE_EVT ESP_GATTS_CONF_EVT ESP_GATTS_CONGEST_EVT ESP_GATTS_CONNECT_EVT ESP_GATTS_CREAT_ATTR_TAB_EVT ESP_GATTS_CREATE_EVT ESP_GATTS_DELETE_EVT ESP_GATTS_DISCONNECT_EVT ESP_GATTS_EXEC_WRITE_EVT ESP_GATTS_LISTEN_EVT ESP_GATTS_MTU_EVT ESP_GATTS_OPEN_EVT ESP_GATTS_READ_EVT ESP_GATTS_REG_EVT ESP_GATTS_RESPONSE_EVT ESP_GATTS_SET_ATTR_VAL_EVT ESP_GATTS_START_EVT ESP_GATTS_STOP_EVT ESP_GATTS_UNREG_EVT ESP_GATTS_WRITE_EVT esp_ble_gatts_send_indicate esp_ble_gatts_send_response esp_ble_gatts_set_attr_value esp_ble_gatts_start_service esp_ble_gatts_stop_service esp_ble_resolve_adv_data esp_ble_tx_power_get esp_ble_tx_power_set esp_bluedroid_deinit esp_bluedroid_disable esp_bluedroid_enable esp_bluedroid_init esp_bt_controller_deinit esp_bt_controller_disable esp_bt_controller_enable esp_bt_controller_get_status esp_bt_controller_init esp_bt_controller_mem_release esp_bt_dev_get_address esp_bt_dev_set_device_name esp_vhci_host_check_send_available esp_vhci_host_register_callback esp_vhci_host_send_packet ESP MQTT esp_mqtt_client_destroy esp_mqtt_client_init esp_mqtt_client_publish esp_mqtt_client_set_uri esp_mqtt_client_start esp_mqtt_client_stop esp_mqtt_client_subscribe esp_mqtt_client_unsubscribe Mesh esp_mesh_allow_root_conflicts esp_mesh_available_txupQ_num esp_mesh_deinit esp_mesh_delete_group_id esp_mesh_get_ap_assoc_expire esp_mesh_get_ap_authmode esp_mesh_get_ap_connections esp_mesh_get_capacity_num esp_mesh_get_config esp_mesh_get_group_list esp_mesh_get_group_num esp_mesh_get_id esp_mesh_get_ie_crypto_key esp_mesh_get_layer esp_mesh_get_max_layer esp_mesh_get_parent_bssid esp_mesh_get_root_healing_delay esp_mesh_get_router esp_mesh_get_routing_table esp_mesh_get_routing_table_size esp_mesh_get_rx_pending esp_mesh_get_self_organized esp_mesh_get_total_node_num esp_mesh_get_tx_pending esp_mesh_get_type esp_mesh_get_vote_percentage esp_mesh_get_xon_qsize esp_mesh_init esp_mesh_is_my_group esp_mesh_is_root esp_mesh_post_toDS_state esp_mesh_recv esp_mesh_recv_toDS esp_mesh_send esp_mesh_set_ap_assoc_expire esp_mesh_set_ap_authmode esp_mesh_set_ap_connections esp_mesh_set_ap_password esp_mesh_set_capacity_num esp_mesh_set_config esp_mesh_set_event_cb esp_mesh_set_group_id esp_mesh_set_id esp_mesh_set_ie_crypto_funcs esp_mesh_set_ie_crypto_key esp_mesh_set_max_layer esp_mesh_set_root_healing_delay esp_mesh_set_router esp_mesh_set_self_organized esp_mesh_set_type esp_mesh_set_vote_percentage esp_mesh_set_xon_qsize esp_mesh_start esp_mesh_stop esp_mesh_waive_root Upgrade APIs system_upgrade_flag_check system_upgrade_flag_set system_upgrade_reboot system_upgrade_start system_upgrade_userbin_check Smart config APIs smartconfig_start smartconfig_stop SNTP API sntp_enabled sntp_getoperatingmode sntp_getserver sntp_getservername sntp_init sntp_servermode_dhcp sntp_setoperatingmode sntp_setserver sntp_setservername sntp_stop Generic TCP/UDP APIs ipaddr_addr IP4_ADDR IP2STR MAC2STR TCP Adapter APIs tcpip_adapter_ap_input tcpip_adapter_ap_start tcpip_adapter_create_ip6_linklocal tcpip_adapter_dhcpc_get_status tcpip_adapter_dhcpc_option tcpip_adapter_dhcpc_start tcpip_adapter_dhcpc_stop tcpip_adapter_dhcps_get_status tcpip_adapter_dhcps_option tcpip_adapter_dhcps_start tcpip_adapter_dhcps_stop tcpip_adapter_down tcpip_adapter_eth_input tcpip_adapter_eth_start tcpip_adapter_free_sta_list tcpip_adapter_get_esp_if tcpip_adapter_get_dns_info tcpip_adapter_get_hostname tcpip_adapter_get_ip_info tcpip_adapter_get_ip6_linklocal tcpip_adapter_get_netif tcpip_adapter_get_old_ip_info tcpip_adapter_get_sta_list tcpip_adapter_get_wifi_if tcpip_adapter_init tcpip_adapter_set_dns_info tcpip_adapter_set_hostname tcpip_adapter_set_ip_info tcpip_adapter_set_old_ip_info tcpip_adapter_sta_input tcpip_adapter_sta_start tcpip_adapter_start tcpip_adapter_stop tcpip_adapter_up mdns mdns_free mdns_init mdns_query mdns_query_end mdns_result_free mdns_result_get mdns_result_get_count mdns_service_add mdns_service_instance_set mdns_service_port_set mdns_service_remove mdns_service_remove_all mdns_service_txt_set mdns_set_hostname mdns_set_instance OTA esp_ota_begin esp_ota_end esp_ota_get_boot_partition esp_ota_get_next_update_partition esp_ota_get_running_partition esp_ota_set_boot_partition esp_ota_write esp_https_ota GPIO Driver gpio_config gpio_get_level gpio_install_isr_service gpio_intr_enable gpio_intr_disable gpio_isr_handler_add gpio_isr_handler_remove gpio_isr_register gpio_set_direction gpio_set_intr_type gpio_set_level gpio_set_pull_mode gpio_uninstall_isr_service gpio_wakeup_enable gpio_wakeup_disable GPIO Low Level gpio_init gpio_input_get gpio_input_get_high gpio_intr_ack gpio_intr_ack_high gpio_intr_handler_register gpio_intr_pending gpio_intr_pending_high gpio_matrx_in gpio_matrix_out gpio_output_set gpio_output_set_high gpio_pad_hold gpio_pad_pulldown gpio_pad_pullup gpio_pad_select_gpio gpio_pad_set_drv gpio_pad_unhold gpio_pin_wakeup_disable gpio_pin_wakeup_enable GPIO RTC rtc_gpio_init rtc_gpio_deinit rtc_gpio_get_level rtc_gpio_set_level rtc_gpio_set_direction rtc_gpio_pullup_en rtc_gpio_pulldown_en rtc_gpio_pullup_dis Interrupts esp_intr_alloc esp_intr_alloc_intrstatus esp_intr_disable esp_intr_enable esp_intr_free esp_intr_get_cpu esp_intr_get_intno esp_intr_mark_shared esp_intr_noniram_disable esp_intr_noniram_enable esp_intr_reserve esp_intr_set_in_iram Analog to Digital Conversion adc1_config_channel_atten adc1_config_width adc1_get_voltage hall_sensor_read Digital to Analog Conversion dac_i2s_disable dac_i2s_enable dac_output_disable dac_output_enable dac_output_voltage dac_pad_get_io_num UART driver API uart_clear_intr_status uart_disable_intr_mask uart_driver_delete uart_driver_install uart_disable_intr_mask uart_disable_pattern_det_intr uart_disable_rx_intr uart_disable_tx_intr uart_enable_intr_mask uart_enable_pattern_det_intr uart_enable_rx_intr uart_enable_tx_intr uart_flush uart_flush_input uart_get_baudrate uart_get_buffered_data_len uart_get_collision_flag uart_get_hw_flow_ctrl uart_get_parity uart_get_stop_bits uart_get_word_length uart_intr_config uart_isr_free uart_isr_register uart_param_config uart_pattern_get_pos uart_pattern_pop_pos uart_pattern_queue_reset uart_read_bytes uart_set_baudrate uart_set_dtr uart_set_hw_flow_ctrl uart_set_line_inverse uart_set_mode uart_set_parity uart_set_pin uart_set_rts uart_set_rx_timeout uart_set_stop_bits uart_set_sw_flow_ctrl uart_set_tx_ilde_num uart_set_word_length uart_tx_chars uart_wait_tx_done uart_write_bytes uart_write_bytes_with_break UART low level APIs uartAttach Uart_Init uart_div_modify uart_buff_switch uart_tx_switch uart_baudrate_detect uart_rx_one_char uart_tx_wait_idle uart_tx_flush uart_tx_one_char uart_tx_one_char2 I2C APIs i2c_cmd_link_create i2c_cmd_link_delete i2c_driver_delete i2c_driver_install i2c_get_data_mode i2c_get_data_timing i2s_get_period i2c_get_start_timing i2c_get_stop_timing i2c_isr_free i2c_isr_register i2c_master_cmd_begin i2c_master_read i2c_master_read_byte i2c_master_start i2c_master_stop i2c_master_write i2c_master_write_byte i2c_param_config i2c_reset_rx_fifo i2c_reset_tx_fifo i2c_set_data_mode i2c_set_data_timing i2c_set_period i2c_set_pin i2c_set_start_timing i2c_set_stop_timing i2c_slave_read_buffer i2c_slave_write_buffer SPI APIs spi_bus_add_device spi_bus_free spi_bus_initialize spi_bus_remove_device spi_device_get_trans_result spi_device_queue_trans spi_device_transmit I2S APIs i2s_adc_enable i2s_adc_disable i2s_driver_install i2s_driver_uninstall i2s_pop_sample i2s_push_sample i2s_read_bytes i2s_set_adc_mode i2s_set_clk i2s_set_dac_mode i2s_set_pin i2s_set_sample_rates i2s_start i2s_stop i2s_write_bytes i2s_write_expand i2s_zero_dma_buffer RMT APIs rmt_clr_intr_enable_mask rmt_config rmt_driver_install rmt_driver_uninstall rmt_fill_tx_items rmt_get_clk_div rmt_get_mem_block_num rmt_get_mem_pd rmt_get_memory_owner rmt_get_ringbuf_handle rmt_get_rx_idle_thresh rmt_get_status rmt_get_source_clk rmt_get_tx_loop_mode rmt_isr_deregister rmt_isr_register rmt_memory_rw_rst rmt_rx_start rmt_rx_stop rmt_set_clk_div rmt_set_err_intr_en rmt_set_idle_level rmt_set_intr_enable_mask rmt_set_mem_block_num rmt_set_mem_pd rmt_set_memory_owner rmt_set_pin rmt_set_rx_filter rmt_set_rx_idle_thresh rmt_set_rx_intr_en rmt_set_tx_carrier rmt_set_tx_intr_en rmt_set_tx_loop_mode rmt_set_tx_thr_intr_en rmt_set_source_clk rmt_tx_start rmt_tx_stop rmt_wait_tx_done rmt_write_items LEDC/PWM APIs ledc_bind_channel_timer ledc_channel_config ledc_fade_func_install ledc_fade_start ledc_fade_func_uninstall ledc_get_duty ledc_get_freq ledc_set_duty ledc_isr_register ledc_set_fade ledc_set_fade_with_step ledc_set_fade_with_time ledc_set_freq ledc_stop ledc_timer_config ledc_timer_pause ledc_timer_resume ledc_timer_rst ledc_timer_set ledc_update_duty Pulse Counter pcnt_counter_clear pcnt_counter_pause pcnt_counter_resume pcnt_event_disable pcnt_event_enable pcnt_filter_enable pcnt_filter_disable pcnt_get_counter_value pcnt_get_event_value pcnt_get_filter_value pcnt_intr_enable pcnt_intr_disable pcnt_isr_handler_add pcnt_isr_handler_remove pcnt_isr_register pcnt_isr_service_install pcnt_isr_service_uninstall pcnt_set_event_value pcnt_set_filter_value pcnt_set_mode pcnt_set_pin pcnt_unit_config Logging esp_err_to_name esp_log_level_set esp_log_set_vprintf esp_log_write Non Volatile Storage nvs_close nvs_commit nvs_erase_all nvs_erase_key nvs_flash_init nvs_flash_init_custom nvs_get_blob nvs_get_str nvs_get_i8 nvs_get_i16 nvs_get_i32 nvs_get_i64 nvs_get_u8 nvs_get_u16 nvs_get_u32 nvs_get_u64 nvs_open nvs_set_blob nvs_set_str nvs_set_i8 nvs_set_i16 nvs_set_i32 nvs_set_i64 nvs_set_u8 nvs_set_u16 nvs_set_u32 nvs_set_u64 Partition API esp_partition_erase_range esp_partition_find esp_partition_find_first esp_partition_get esp_partition_iterator_release esp_partition_mmap esp_partition_next esp_partition_read esp_partition_write Virtual File System esp_vfs_dev_uart_register esp_vfs_dev_uart_set_rx_line_endings esp_vfs_dev_uart_set_tx_line_endings esp_vfs_dev_uart_use_nonblocking esp_vfs_dev_uart_use_driver esp_vfs_spiffs_register esp_vfs_spiffs_unregister esp_vfs_register FatFs file system esp_vfs_fat_register esp_vfs_fat_sdmmc_mount esp_vfs_fat_sdmmc_unmount esp_vfs_fat_spiflash_mount esp_vfs_fat_spiflash_unmount esp_vfs_fat_unregister esp_vfs_fat_unregister_path f_mount ff_diskio_register SPI Flash spi_flash_erase_range spi_flash_erase_sector spi_flash_get_chip_size spi_flash_get_counters spi_flash_init spi_flash_mmap spi_flash_mmap_dump spi_flash_munmap spi_flash_read spi_flash_reset_counters spi_flash_write SDMMC sdmmc_card_init sdmmc_card_print_info sdmmc_host_deinit sdmmc_host_do_transaction sdmmc_host_init sdmmc_host_init_slot sdmmc_host_set_bus_width sdmmc_host_set_card_clk sdmmc_io_enable_int sdmmc_io_read_blocks sdmmc_io_read_byte sdmmc_io_read_bytes sdmmc_io_wait_int sdmmc_io_write_blocks sdmmc_io_write_byte sdmmc_io_write_bytes sdmmc_read_sectors sdmmc_write_sectors HTTP Client esp_http_client_cleanup esp_http_client_close esp_http_client_delete_header esp_http_client_fetch_headers esp_http_client_get_content_length esp_http_client_get_post_field esp_http_client_get_status_code esp_http_client_init esp_http_client_is_chunked_response esp_http_client_open esp_http_client_perform esp_http_client_read esp_http_client_set_header esp_http_client_set_method esp_http_client_set_post_field esp_http_client_set_url esp_http_client_write HTTP Server httpd_query_key_value httpd_queue_work httpd_register_uri_handler httpd_req_get_hdr_value_len httpd_req_get_hdr_value_str httpd_req_get_url_query_len httpd_req_get_url_query_str httpd_req_recv httpd_req_to_sockfd httpd_resp_send httpd_resp_send_404 httpd_resp_send_chunk httpd_resp_set_hdr httpd_resp_set_status httpd_resp_set_type httpd_send httpd_sess_get_ctx httpd_sess_update_timestamp httpd_set_recv_override httpd_set_send_override httpd_start httpd_stop httpd_trigger_sess_close httpd_unregister_uri_handler httpd_unregister_uri Cryptography base64_decode base64_encode esp_sha esp_sha_block esp_sha_lock_engine esp_sha_lock_memory_block esp_sha_read_digest_state esp_sha_try_lock_engine esp_sha_unlock_engine esp_sha_wait_idle Hash processing crc32_le crc32_be crc16_le crc16_be crc8_le crc8_be Hardware Timers timer_disable_intr timer_enable_intr timer_get_alarm_value timer_get_config timer_get_counter_time_sec timer_get_counter_value timer_group_intr_enable timer_group_intr_disable timer_isr_register timer_init timer_pause timer_set_counter_value timer_start timer_set_alarm timer_set_alarm_value timer_set_auto_reload timer_set_counter_mode timer_set_divider Pthreads esp_pthread_get_cfg esp_pthread_init esp_pthread_set_cfg pthread_cancel pthread_create pthread_cond_broadcast pthread_cond_destroy pthread_cond_init pthread_cond_signal pthread_cond_timedwait pthread_cond_wait pthread_condattr_init pthread_detach pthread_equal pthread_getspecific pthread_join pthread_key_create pthread_key_delete pthread_once pthread_mutex_destroy pthread_mutex_init pthread_mutexattr_destroy pthread_mutexattr_gettype pthread_mutexattr_init pthread_mutexattr_settype pthread_mutex_lock pthread_mutex_trylock pthread_mutex_unlock pthread_self pthread_setspecific sched_yield Watchdog processing esp_int_wdt_init esp_task_wdt_add esp_task_wdt_deinit esp_task_wdt_delete esp_task_wdt_feed – DEPRECATED esp_task_wdt_init esp_task_wdt_reset esp_task_wdt_status Heap management heap_trace_record_t heap_caps_add_region heap_caps_add_region_with_caps heap_caps_calloc heap_caps_calloc_prefer heap_caps_check_integrity heap_caps_check_integrity_addr heap_caps_check_integrity_all heap_caps_dump heap_caps_dump_all heap_caps_enable_nonos_stack_heaps heap_caps_free heap_caps_get_free_size heap_caps_get_minimum_free_size heap_caps_get_largest_free_block heap_caps_get_info heap_caps_init heap_caps_malloc heap_caps_malloc_extmem_enable heap_caps_malloc_prefer heap_caps_print_heap_info heap_caps_realloc heap_caps_realloc_prefer heap_trace_dump heap_trace_get heap_trace_get_count heap_trace_init_standalone heap_trace_resume heap_trace_start heap_trace_stop ULP Co-processor RTC_SLOW_MEM ulp_process_macros_and_load ulp_load_binary ulp_run ulp_set_wakeup_period AWS-IoT IoT_Error_t aws_iot_is_autoreconnect_enabled aws_iot_mqtt_attempt_reconnect aws_iot_mqtt_autoreconnect_set_status aws_iot_mqtt_connect aws_iot_mqtt_disconnect aws_iot_mqtt_get_client_state aws_iot_mqtt_get_network_disconnected_count aws_iot_mqtt_get_next_packet_id aws_iot_mqtt_init aws_iot_mqtt_is_client_connected aws_iot_mqtt_publish aws_iot_mqtt_reset_network_disconnected_count aws_iot_mqtt_resubscribe aws_iot_mqtt_set_connect_params aws_iot_mqtt_set_disconnect_handler aws_iot_mqtt_subscribe aws_iot_mqtt_unsubscribe aws_iot_mqtt_yield Console esp_console_cmd_register esp_console_deinit esp_console_get_completion esp_console_get_hint esp_console_init esp_console_register_help_command esp_console_run esp_console_split_argv linenoise linenoise linenoiseAddCompletion linenoiseClearScreen linenoiseFree linenoiseHistoryAdd linenoiseHistorySetMaxLen linenoiseHistorySave linenoiseHistoryLoad linenoiseSetCompletionCallback linenoiseSetFreeHintsCallback linenoiseSetHintsCallback linenoiseSetMultiLine linenoisePrintKeyCodes argtable arg_lit0 arg_lit1 arg_litn arg_key0 arg_key1 arg_keyn arg_int0 arg_int1 arg_intn arg_dbl0 arg_dbl1 arg_dbln arg_str0 arg_str1 arg_strn arg_rex0 arg_rex1 arg_rexn arg_file0 arg_file1 arg_filen arg_date0 arg_date1 arg_daten arg_end arg_nullcheck arg_parse arg_print_option arg_print_syntax arg_print_syntaxv arg_print_glossary arg_print_glossary_gnu arg_print_errors arg_free arg_freetable arg_print_formatted JSON processing HTTP/2 processing Parsing XML – expat Miniz mz_free mz_adler32 mz_crc32 mz_version mz_deflateInit mz_deflateInit2 mz_deflateReset mz_deflate mz_deflateEnd mz_deflateBound mz_compressBound mz_inflateInit mz_inflateInit2 mz_inflateEnd mz_uncompress mz_error mz_zip_reader_init mz_zip_reader_init_mem mz_zip_reader_get_num_files mz_zip_reader_file_stat mz_zip_reader_is_file_a_directory mz_zip_reader_is_file_encrypted mz_zip_reader_get_filename mz_zip_reader_locate_file mz_zip_reader_extract_to_mem_no_alloc mz_zip_reader_extract_file_to_mem_no_alloc mz_zip_reader_extract_to_mem mz_zip_reader_extract_file_to_mem mz_zip_reader_extract_to_heap mz_zip_reader_extract_file_to_heap mz_zip_reader_extract_to_callback mz_zip_reader_extract_file_to_callback mz_zip_reader_extract_to_file mz_zip_reader_extract_file_to_file mz_zip_reader_end mz_zip_writer_init mz_zip_writer_init_heap mz_zip_writer_init_file mz_zip_writer_init_from_reader mz_zip_writer_add_mem mz_zip_writer_add_mem_ex mz_zip_writer_add_file mz_zip_writer_add_from_zip_reader mz_zip_writer_finalize_archive mz_zip_writer_finalize_heap_archive mz_zip_writer_end mz_zip_add_mem_to_archive_file_in_place mz_zip_extract_archive_file_to_heap tinfl_decompress tinfl_decompress_mem_to_heap tinfl_decompress_mem_to_mem tinfl_decompress_mem_to_callback tinfl_init tinfl_get_adler32 tdefl_compress_mem_to_heap tdefl_compress_mem_to_mem tdefl_write_image_to_png_file_in_memory_ex tdefl_write_image_to_png_file_in_memory tdefl_compress_mem_to_output tdefl_init tdefl_compress tdefl_compress_buffer tdefl_get_prev_return_status tdefl_get_adler32 tdefl_create_comp_flags_from_zip_params Arduino – ESP32 HAL for UART uartAvailable uartBegin uartEnd uartFlush uartGetBaudRate uartGetDebug uartPeek uartRead uartSetBaudRate uartSetDebug uartWrite uartWriteBuf Arduino – ESP32 HAL for I2C i2cAttachSCL i2cAttachSDA i2cDetachSCL i2cDetachSDA i2cGetFrequency i2cInit i2cRead i2cSetFrequency i2cWrite Arduino – ESP32 HAL for SPI spiAttachMISO spiAttachMOSI spiAttachSCK spiAttachSS spiClockDivToFrequency spiDetachMISO spiDetachMOSI spiDetachSCK spiDetachSS spiDisableSSPins spiEnableSSPins spiFrequencyToClockDiv spiGetBitOrder spiGetClockDiv spiGetDataMode spiRead spiReadByte spiReadLong spiReadWord spiSetBitOrder spiSetClockDiv spiSetDataMode spiSSClear spiSSDisable spiSSEnable spiSSSet spiStartBus spiStopBus spiTransferBits spiTransferBytes spiWaitReady spiWrite spiWriteByte spiWriteLong spiWriteWord Newlib abort abs asctime atoi atol bzero calloc check_pos close closedir creat ctime div environ fclose fflush fmemopen fprintf fread free fscanf fseek fstat fwrite gettimeofday gmtime isalnum isalpha isascii isblank isdigit islower isprint ispunct isspace isupper itoa labs ldiv localtime lseek malloc memchr memcmp memcpy memmove memrchr memset mkdir mktime open open_memstream opendir printf qsort rand read readdir realloc rewinddir scanf seekdir setenv setlocale settimeofday sprintf srand sscanf stat strcasecmp strcasestr strcat strchr strcmp strcoll strcpy strcspn strdup strerror strftime strlcat strlcpy strlen strncasecmp strncat strncmp strncpy strndup strnlen strrchr strsep strspn strstr strtod strtof strtol strtoul strupr telldir time times toascii tolower toupper tzset ungetc unlink utoa vprintf vscanf write SPIFFs API esp_spiffs_format esp_spiffs_info esp_spiffs_mounted SPIFFS_check SPIFFS_clearerr SPIFFS_close SPIFFS_closedir SPIFFS_creat SPIFFS_eof SPIFFS_errno SPIFFS_fflush SPIFFS_format SPIFFS_fremove SPIFFS_fstat SPIFFS_gc SPIFFS_gc_quick SPIFFS_info SPIFFS_lseek SPIFFS_mount SPIFFS_mounted SPIFFS_open SPIFFS_open_by_dirent SPIFFS_open_by_page SPIFFS_opendir SPIFFS_read SPIFFS_readdir SPIFFS_remove SPIFFS_rename SPIFFS_stat SPIFFS_tell SPIFFS_unmount SPIFFS_write Eclipse Paho – MQTT Embedded C MQTTClientInit MQTTConnect MQTTDisconnect MQTTPublish MQTTRun MQTTSubscribe MQTTUnsubscribe MQTTYield NetworkConnect Arduino ESP32 Libraries Arduino WiFi library WiFi.begin WiFi.beingSmartConfig WiFi.beginWPSConfig WiFi.BSSID WiFi.BSSIDstr WiFi.channel WiFi.config WiFi.disconnect WiFi.dnsIP WiFi.enableAP WiFi.enableSTA WiFi.encryptionType WiFi.gatewayIP WiFi.getAutoConnect WiFi.getMode WiFi.getNetworkInfo WiFi.hostByName WiFi.hostname WiFi.isConnected WiFi.isHidden WiFi.localIP WiFi.macAddress WiFi.mode Wifi.persistent WiFi.printDiag WiFi.psk WiFi.RSSI WiFi.scanComplete WiFi.scanDelete WiFi.scanNetworks WiFi.setAutoConnect WiFi.setAutoReconnect WiFi.smartConfigDone WiFi.softAP WiFi.softAPConfig WiFi.softAPdisconnect WiFi.softAPmacAddress WiFi.softAPIP WiFi.SSID WiFi.status WiFi.stopSmartConfig WiFi.subnetMask WiFi.waitForConnectResult Arduino WiFiClient WiFiClient WiFiClient.available WiFiClient.connect WiFiClient.connected WiFiClient.flush WiFiClient.getNoDelay WiFiClient.peek WiFiClient.read WiFiClient.remoteIP WiFiClient.remotePort WiFiClient.setLocalPortStart WiFiClient.setNoDelay WiFiClient.setOption WiFiClient.status WiFiClient.stop WiFiClient.stopAll WiFiClient.write Arduino WiFiServer WiFiServer WiFiServer.available WiFiServer.begin WiFiServer.getNoDelay WiFiServer.hasClient WiFiServer.setNoDelay WiFiServer.status WiFiServer.write Arduino IPAddress Arduino SPI SPI.begin SPI.beginTransaction SPI.end SPI.endTransaction SPI.setBitOrder SPI.setClockDivider SPI.setDataMode SPI.setFrequency SPI.setHwC SPI.transfer SPI.transfer16 SPI.transfer32 SPI.transferBytes SPI.transferBits SPI.write SPI.wirite16 SPI.write32 SPI.writeBytes SPI.writePattern Arduino I2C – Wire Wire.available Wire.begin Wire.beginTransmission Wire.endTransmission Wire.flush Wire.onReceive Wire.onReceiveService Wire.onRequest Wire.onRequestService Wire.peek Wire.pins Wire.read Wire.requestFrom Wire.setClock Wire.write Arduino Ticker library Ticker attach attach_ms detach once once_ms Arduino EEPROM library EEPROM.begin EEPROM.commit EEPROM.end EEPROM.get EEPROM.getDataPtr EEPROM.put EEPROM.read EEPROM.write Arduino SPIFFS SPIFFS.begin SPIFFS.open SPIFFS.openDir SPIFFS.remove SPIFFS.rename File.available File.close File.flush File.name File.peek File.position File.read File.seek File.size File.write Dir.fileName Dir.next Dir.open Dir.openDir Dir.remove Dir.rename Arduino ESP library ESP.eraseConfig ESP.getChipId ESP.getCpuFreqMHz ESP.getCycleCount ESP.getFlashChipMode ESP.getFlashChipSize ESP.getFlashChipSpeed ESP.getFreeHeap ESP.getOption ESP.getSdkVersion ESP.flashEraseSector ESP.flashRead ESP.flashWrite ESP.magicFlashChipSize ESP.magicFlashChipSpeed ESP.restart Arduino String library Constructor String.c_str String.reserve String.length String.concat String.equalsIgnoreCase String.startsWith String.endsWith String.charAt String.setCharAt String.getBytes String toCharArray String.indexOf String.lastIndexOf String.substring String.replace String.remove String.toLowerCase String.toUpperCase String.trim String.toInt String.toFloat Reference materials Internal structure of compiled code Using size Using objdump Using objcopy Using nm Linking Linker scripts Weak linkage Memory Map Dynamic linking Section garbage collection C++ class initialization The Bootloader Runtime memory Cache memory processing MMU processing C++ Programming Eclipse configuration Simple class definition Mixing C and C++ Including stdc++ in your app C++ Specialized Data types String List Map Queue Stack Vector Lambda functions Designated initializers not available in C++ Ignoring warnings File I/O in C++ The Factory pattern Logging pre-defined symbols The ESP-IDF C++ class libraries GPIO interactions WiFi Task management Socket programming Socket Server HttpServer WebSocket WebSocket File Transfer Performance FTP Server C++ I2C Interaction SPI Interaction Pulse Width Modulation – PWM Bluetooth BLE A BLE Server A BLE Client Non Volatile Storage FAT FS Working with JSON POSIX file system APIs Documenting your code – Doxygen Creating a build environment on the Raspberry Pi 3 Using Microsoft Visual Studio Code for development Debugging with Visual Studio Code Windows Subsystem for Linux – WSL Makefiles The component.mk settings CMake The ESPTOOL protocol 0x02 – FLASH_BEGIN 0x03 – FLASH_DATA 0x04 – FLASH_END 0x05 – MEM_BEGIN 0x06 – MEM_END command 0x07 – MEM_DATA command 0x08 – SYNC command 0x09 – WRITE_REG 0x0A – READ_REG 0x0B – SPI_SET_PARAMS 0x0D – SPI_ATTACH 0x0F – CHANGE_BAUDRATE 0x10 - FLASH_DEFL_BEGIN 0x11 - FLASH_DEFL_DATA 0x12 - FLASH_DEFL_END 0x13 – SPI_FLASH_MD5 0xD0 – ERASE_FLASH 0xD1 – ERASE_REGION 0xD2 – READ_FLASH 0xD3 – RUN_USER_CODE The flasher_stub Using Node-JS for an esptool Esptool and SPI flash Forums Reference documents Github Github quick cheats Installing Ubuntu on VirtualBox Single board computer comparisons Areas to Research