{"id":6786,"date":"2017-10-14T14:20:01","date_gmt":"2017-10-14T14:20:01","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=6786"},"modified":"2020-06-09T12:52:30","modified_gmt":"2020-06-09T12:52:30","slug":"esp32-arduino","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=6786","title":{"rendered":"ESP32 Arduino"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/espressif\/arduino-esp32\">github.com\/espressif\/arduino-esp32<\/a><br \/>\n<a href=\"https:\/\/github.com\/nkolban\/esp32-snippets\">https:\/\/github.com\/nkolban\/esp32-snippets<\/a><br \/>\n<a href=\"https:\/\/github.com\/nkolban\/ESP32_Explorer\">github.com\/nkolban\/ESP32_Explorer<\/a><\/p>\n<p><a href=\"http:\/\/github.com\/openenergymonitor\/emonth2\/blob\/master\/firmware\/platformio.ini\">ESP32 Thing Hookup Guide<\/a><\/p>\n<h3>2 x Cores<\/h3>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=k_D_Qu0cgu8\">Andreas Spiess &#8211; #168 ESP32 Dual Core on Arduino IDE including Data Passing and Task Synchronization<\/a><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>Arduino Core<\/h3>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\Arduino.h\r\n.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-spi.h\r\n.platformio\\packages\\framework-arduinoespressif32\\variants\\lolin32\\pins_arduino.h\r\n<\/pre>\n<pre class=\"brush: cpp; title: .platformiopackages\framework-arduinoespressif32coresesp32esp32-hal-spi.h; notranslate\" title=\".platformiopackages\framework-arduinoespressif32coresesp32esp32-hal-spi.h\">\r\n#define FSPI  1 \/\/SPI bus attached to the flash (can use the same data lines but different SS)\r\n#define HSPI  2 \/\/SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins\r\n#define VSPI  3 \/\/SPI bus normally attached to pins 5, 18, 19 and 23, but can be matrixed to any pins\r\n<\/pre>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>Arduino Libraries<\/h3>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n.platformio\\packages\\framework-arduinoespressif32\\libraries\\SPI\\src\\SPI.h\r\n<\/pre>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>PlatformIO<\/h3>\n<p><a href=\"https:\/\/www.losant.com\/blog\/getting-started-with-esp32-and-platformio\">Getting Started with ESP32 and PlatformIO<\/a><\/p>\n<h4>Build Panel<\/h4>\n<p><a href=\"https:\/\/community.platformio.org\/t\/platformio-ide-atom-is-there-a-way-to-display-console-as-tab-instead-as-notification\/426\">Platformio IDE atom &#8211; is there a way to display console as tab instead as notification<\/a><br \/>\n<a href=\"http:\/\/docs.platformio.org\/en\/latest\/ide\/atom.html#keep-build-panel-visible\">PlatformIO IDE for Atom: Keep build panel visible<\/a><\/p>\n<h4><code>platformio.ini<\/code><\/h4>\n<p><a href=\"http:\/\/docs.platformio.org\/en\/latest\/projectconf.html\">Project Configuration File <code>platformio.ini<\/code><\/a><br \/>\n<a href=\"http:\/\/docs.platformio.org\/en\/latest\/projectconf\/section_platformio.html\">Section <code>[platformio]<\/code><\/a><br \/>\n<a href=\"http:\/\/docs.platformio.org\/en\/latest\/projectconf\/section_env.html#projectconf-section-env\">Section <code>[env:NAME]<\/code><\/a><\/p>\n<h4>Include Arduino Libraries<\/h4>\n<p><a href=\"https:\/\/community.platformio.org\/t\/including-arduino-libraries-together-with-private-libraries-solved\/930\">Including Arduino libraries together with private libraries<\/a><br \/>\n<a href=\"https:\/\/github.com\/openenergymonitor\/emonth2\/blob\/master\/firmware\/platformio.ini\">github.com\/openenergymonitor\/emonth2\/blob\/master\/firmware\/platformio.ini<\/a><\/p>\n<h4>Platform Versions<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\npackages\/framework-arduinoavr\/platform.txt            version=1.6.19\r\npackages\/framework-arduinoespressif32\/platform.txt    version=0.0.1\r\n<\/pre>\n<p><a href=\"http:\/\/dl.platformio.org\/packages\/manifest.json\">manifest.json<\/a><\/p>\n<pre class=\"brush: plain; title: manifest.json; notranslate\" title=\"manifest.json\">\r\n  &quot;framework-arduinoespressif32&quot;: &#x5B;\r\n    {\r\n      &quot;sha1&quot;: &quot;553fe9ef85dbcff8c0f9ecbc4ada3901a723e91c&quot;, \r\n      &quot;system&quot;: &quot;*&quot;, \r\n      &quot;url&quot;: &quot;http:\/\/dl.platformio.org\/packages\/framework-arduinoespressif32-1.1.5.tar.gz&quot;, \r\n      &quot;version&quot;: &quot;1.1.5&quot;\r\n    }, \r\n    {\r\n      &quot;sha1&quot;: &quot;27df506d863696ef51caf4cbb08e3470abf01f17&quot;, \r\n      &quot;system&quot;: &quot;*&quot;, \r\n      &quot;url&quot;: &quot;http:\/\/dl.platformio.org\/packages\/framework-arduinoespressif32-1.2.0.tar.gz&quot;, \r\n      &quot;version&quot;: &quot;1.2.0&quot;\r\n    }, \r\n    {\r\n      &quot;sha1&quot;: &quot;a36e2dc833f2a6152b341b2dd9f54d4335a8ba0e&quot;, \r\n      &quot;system&quot;: &quot;*&quot;, \r\n      &quot;url&quot;: &quot;http:\/\/dl.platformio.org\/packages\/framework-arduinoespressif32-1.3.2.tar.gz&quot;, \r\n      &quot;version&quot;: &quot;1.3.2&quot;\r\n    }\r\n  ], \r\n<\/pre>\n<pre class=\"brush: plain; title: .platformio\/platforms\/espressif32\/platform.json; notranslate\" title=\".platformio\/platforms\/espressif32\/platform.json\">\r\n  &quot;frameworks&quot;: {\r\n    &quot;arduino&quot;: {\r\n      &quot;package&quot;: &quot;framework-arduinoespressif32&quot;,\r\n      &quot;script&quot;: &quot;builder\/frameworks\/arduino.py&quot;\r\n    },\r\n    &quot;espidf&quot;: {\r\n      &quot;package&quot;: &quot;framework-espidf&quot;,\r\n      &quot;script&quot;: &quot;builder\/frameworks\/espidf.py&quot;\r\n    },\r\n    &quot;simba&quot;: {\r\n      &quot;package&quot;: &quot;framework-simba&quot;,\r\n      &quot;script&quot;: &quot;builder\/frameworks\/simba.py&quot;\r\n    },\r\n    &quot;pumbaa&quot;: {\r\n      &quot;package&quot;: &quot;framework-pumbaa&quot;,\r\n      &quot;script&quot;: &quot;builder\/frameworks\/pumbaa.py&quot;\r\n    }\r\n  },\r\n  &quot;packages&quot;: {\r\n    &quot;toolchain-xtensa32&quot;: {\r\n      &quot;type&quot;: &quot;toolchain&quot;,\r\n      &quot;version&quot;: &quot;~1.50200.0&quot;\r\n    },\r\n    &quot;framework-arduinoespressif32&quot;: {\r\n      &quot;type&quot;: &quot;framework&quot;,\r\n      &quot;optional&quot;: true,\r\n      &quot;version&quot;: &quot;~1.2.0&quot;\r\n    },\r\n    &quot;framework-espidf&quot;: {\r\n      &quot;type&quot;: &quot;framework&quot;,\r\n      &quot;optional&quot;: true,\r\n      &quot;version&quot;: &quot;~2.210.0&quot;\r\n    },\r\n  },\r\n<\/pre>\n<pre class=\"brush: plain; title: platforms\u0007tmelavrplatform.json; notranslate\" title=\"platforms\u0007tmelavrplatform.json\">\r\n  &quot;packages&quot;: {\r\n    &quot;toolchain-atmelavr&quot;: {\r\n      &quot;type&quot;: &quot;toolchain&quot;,\r\n      &quot;version&quot;: &quot;~1.40902.0&quot;\r\n    },\r\n    &quot;framework-arduinoavr&quot;: {\r\n      &quot;type&quot;: &quot;framework&quot;,\r\n      &quot;optional&quot;: true,\r\n      &quot;version&quot;: &quot;~1.10619.0&quot;\r\n    },\r\n  },\r\n<\/pre>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>Peripheral to Pin Re-Mapping<\/h3>\n<p><a href=\"https:\/\/hackaday.io\/project\/20562-mcu-pin-setup\">MCU pin setup<\/a>, Visual pin layout setup tool for development boards<br \/>\nwith an editor mode for community involvement<br \/>\n<a href=\"https:\/\/www.esp32.com\/viewtopic.php?t=1929\">ESP 32 Pin re-mapping<\/a><br \/>\n<a href=\"http:\/\/www.lucadentella.it\/en\/2017\/02\/07\/esp32-9-basic-io\/\">ESP32 (9) \u2013 Basic I\/O<\/a><\/p>\n<h3>Bluetooth<\/h3>\n<p><a href=\"https:\/\/github.com\/nkolban\/ESP32_BLE_Arduino\">github.com\/nkolban\/ESP32_BLE_Arduino<\/a><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n$ cd \/c\/Users\/bachman0\/.platformio\/packages\/framework-arduinoespressif32\r\n\r\n$ grep -r esp_bluedroid_init .\r\n.\/libraries\/SimpleBLE\/src\/SimpleBLE.cpp:        if (esp_bluedroid_init()) {\r\n.\/libraries\/SimpleBLE\/src\/SimpleBLE.cpp:            log_e(&quot;esp_bluedroid_init failed&quot;);\r\n.\/tools\/sdk\/include\/bluedroid\/esp_bt_main.h:  * @brief     Enable bluetooth, must after esp_bluedroid_init()\r\n.\/tools\/sdk\/include\/bluedroid\/esp_bt_main.h:  esp_err_t esp_bluedroid_init(void);\r\n.\/tools\/sdk\/lib\/libbt.a:                      (BINARY)\r\n<\/pre>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>IR Thermometer<\/h3>\n<p><a href=\"https:\/\/github.com\/adafruit\/Adafruit-MLX90614-Library\">Adafruit-MLX90614-Library: Arduino library for the MLX90614 sensors<\/a><br \/>\n<a href=\"https:\/\/github.com\/sparkfun\/SparkFun_MLX90614_Arduino_Library\">SparkFun MLX90614 Arduino Library<\/a><br \/>\n<a href=\"https:\/\/github.com\/jfitter\/MLX90614\">MLX90614 IR Thermometer Driver Library for Arduino<\/a> (only for Arduino UNO)<br \/>\n<a href=\"https:\/\/playground.arduino.cc\/Code\/MLX90614\">Library for the Melexis Digital IR Thermometer Type MLX90614 (variants)<\/a><br \/>\n<a href=\"https:\/\/github.com\/Seeed-Studio\/Digital_Infrared_Temperature_Sensor_MLX90615\">Digital_Infrared_Temperature_Sensor_MLX90615<\/a><br \/>\n<a href=\"https:\/\/github.com\/skiselev\/MLX90615\">MLX90615 &#8211; A minimal Arduino library for Melexis MLX90615 Infra-red Temperature Sensor <\/a><br \/>\n<a href=\"https:\/\/github.com\/adrien3d\/IO_MLX90615\">Library for the MLX90615<\/a><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h4>Partition Table<\/h4>\n<p><a href=\"http:\/\/uhurumkate.blogspot.co.il\/2017\/09\/looking-to-iot-future-with-platformio.html\">Looking To The IoT Future With PlatformIO And ESP32<\/a><\/p>\n<table>\n<tr>\n<td>Name<\/td>\n<td>Type<\/td>\n<td>Subtype<\/td>\n<td>Offset<\/td>\n<td>Size<\/td>\n<td>Flags<\/td>\n<\/tr>\n<tr>\n<td>bootloader<\/td>\n<td>&nbsp;<\/td>\n<td>&nbsp;<\/td>\n<td><code>0x001000<\/code><\/td>\n<td>&nbsp;<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>partition table<\/td>\n<td>&nbsp;<\/td>\n<td>&nbsp;<\/td>\n<td><code>0x008000<\/code><\/td>\n<td>&nbsp;<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>nvs<\/td>\n<td>data<\/td>\n<td>nvs<\/td>\n<td><code>0x009000<\/code><\/td>\n<td>20K<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>otadata<\/td>\n<td>data<\/td>\n<td>ota<\/td>\n<td><code>0x00e000<\/code><\/td>\n<td>8K<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>app0<\/td>\n<td>app<\/td>\n<td>ota_0<\/td>\n<td><code>0x010000<\/code><\/td>\n<td>1280K<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>app1<\/td>\n<td>app<\/td>\n<td>ota_1<\/td>\n<td><code>0x150000<\/code><\/td>\n<td>1280K<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>eeprom<\/td>\n<td>data<\/td>\n<td>153<\/td>\n<td><code>0x290000<\/code><\/td>\n<td>4K<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td>spiffs<\/td>\n<td>data<\/td>\n<td>spiffs<\/td>\n<td><code>0x291000<\/code><\/td>\n<td>1468K<\/td>\n<td>&nbsp;<\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td>\n<a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/10\/partition_table_csv.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/10\/partition_table_csv-300x117.png\" alt=\"\" width=\"300\" height=\"117\" class=\"alignleft size-medium wp-image-7071\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/10\/partition_table_csv-300x117.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/10\/partition_table_csv-768x301.png 768w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/10\/partition_table_csv-624x244.png 624w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2017\/10\/partition_table_csv.png 1009w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n<\/td>\n<\/tr>\n<\/table>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n$ pio run -v --target upload\r\n\r\n$ \/c\/Users\/bachman0\/.platformio\/packages\/framework-espidf\/components\/partition_table\/gen_esp32part.py --verify partitions.bin partitions.csv\r\n$ gen_esp32part.py --verify partitions.bin partitions.csv\r\nParsing binary partition input...\r\n\r\n$ &quot;c:\\users\\bachman0\\.platformio\\penv\\scripts\\python.exe&quot; \\\r\n  &quot;C:\\Users\\bachman0\\.platformio\\packages\\framework-arduinoespressif32\\tools\\esptool.py&quot; \\\r\n  --before default_reset\r\n  --after hard_reset\r\n  --chip esp32\r\n  --port &quot;COM21&quot;\r\n  --before default_reset\r\n  --after hard_reset\r\n  --baud 115200\r\n  write_flash\r\n  -z\r\n  --flash_mode dio\r\n  --flash_freq 80m\r\n  --flash_size detect\r\n  0x1000 &quot;C:\\Users\\bachman0\\.platformio\\packages\\framework-arduinoespressif32\\tools\\sdk\\bin\\bootloader.bin&quot;\r\n  0x8000 &quot;C:\\Users\\bachman0\\Documents\\PlatformIO\\Projects\\lolin32-arduino-PA17_bmat_6\\.pioenvs\\lolin32\\partitions.bin&quot;\r\n  0xe000 &quot;C:\\Users\\bachman0\\.platformio\\packages\\framework-arduinoespressif32\\tools\\partitions\\boot_app0.bin&quot;\r\n  0x10000 .pioenvs\\lolin32\\firmware.bin\r\n<\/pre>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>SPIFFS<\/h3>\n<p><a href=\"https:\/\/github.com\/espressif\/arduino-esp32\/tree\/master\/libraries\/SPIFFS\">github.com\/espressif\/arduino-esp32\/libraries\/SPIFFS<\/a><br \/>\n<a href=\"https:\/\/github.com\/joysfera\/esp-idf-spiffs\">github.com\/joysfera\/esp-idf-spiffs<\/a><br \/>\n<a href=\"https:\/\/github.com\/copercini\/arduino-esp32-SPIFFS\">github.com\/copercini\/arduino-esp32-SPIFFS<\/a>, DEPRECATED<br \/>\n<a href=\"https:\/\/github.com\/me-no-dev\/arduino-esp32fs-plugin\">github.com\/me-no-dev\/arduino-esp32fs-plugin<\/a>, Arduino plugin for uploading files to ESP32 file system<br \/>\n<a href=\"https:\/\/github.com\/igrr\/mkspiffs\">github.com\/igrr\/mkspiffs<\/a>, Tool to build and unpack SPIFFS images<br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/3796927\/how-to-git-clone-including-submodules\">How to `git clone` including submodules?<\/a><\/p>\n<p><a href=\"https:\/\/www.esp32.com\/viewtopic.php?t=1235\">Store and read some static files using SPIFFS<\/a><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n$ git clone --recursive git:\/\/github.com\/foo\/bar.git\r\n$ cd bar\r\n\r\n$ git clone git:\/\/github.com\/foo\/bar.git\r\n$ cd bar\r\n$ git submodule update --init --recursive\r\n\r\n -d &lt;0-5&gt;,     --debug &lt;0-5&gt;      Debug level. 0 means no debug output.\r\n -b &lt;number&gt;,  --block &lt;number&gt;   fs block size, in bytes\r\n -p &lt;number&gt;,  --page &lt;number&gt;    fs page size, in bytes\r\n -s &lt;number&gt;,  --size &lt;number&gt;    fs image size, in bytes\r\n\r\n#define CONFIG_SPIFFS_LOG_BLOCK_SIZE 8192\r\n#define CONFIG_SPIFFS_LOG_PAGE_SIZE 256\r\n#define CONFIG_SPIFFS_BASE_ADDR 0x291000\r\n#define CONFIG_SPIFFS_SIZE 1478656\r\n\r\n$  .\/mkspiffs \\\r\n  -c jquery \\\r\n  -b 8192 \\\r\n  -p 256 \\\r\n  -s 1478656 \\\r\n  spiffs.img\r\n\r\n$ esptool.py \\\r\n  --chip esp32 \\\r\n  --port &quot;COM21&quot; \\\r\n  --baud 115200 \\\r\n  write_flash \\\r\n  -z \\\r\n  --flash_mode &quot;dio&quot; \\\r\n  --flash_freq &quot;80m&quot; \\\r\n  --flash_size detect \\\r\n  0x291000 spiffs.img\r\n<\/pre>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>Interactive Shell \/ Interpreter<\/h3>\n<p><a href=\"https:\/\/github.com\/lumostor\/arduino-esp32-LinenoiseBitlash\">github.com\/lumostor\/arduino-esp32-LinenoiseBitlash<\/a><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>Timer<\/h3>\n<p><a href=\"https:\/\/www.arduinolibraries.info\/libraries\/esp32-timer-interrupt\">ESP32TimerInterrupt<\/a><br \/>\n<a href=\"https:\/\/github.com\/khoih-prog\/ESP32TimerInterrupt\">github.com\/khoih-prog\/ESP32TimerInterrupt<\/a><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h3>Digital Potentiometer<\/h3>\n<p><a href=\"https:\/\/www.arduinolibraries.info\/libraries\/mcp45-hvx1\">MCP45HVX1<\/a>, Library for MCP45HVX1 digital potentiomters<br \/>\n<a href=\"https:\/\/github.com\/WifWaf\/MCP45HVX1\">github.com\/WifWaf\/MCP45HVX1<\/a>, Arduino Library for MCP45HVX1 digital potentiometers. Includes TCON register and incremental control.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>github.com\/espressif\/arduino-esp32 https:\/\/github.com\/nkolban\/esp32-snippets github.com\/nkolban\/ESP32_Explorer ESP32 Thing Hookup Guide 2 x Cores Andreas Spiess &#8211; #168 ESP32 Dual Core on Arduino IDE including Data Passing and Task Synchronization &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Arduino Core .platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\Arduino.h .platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-spi.h .platformio\\packages\\framework-arduinoespressif32\\variants\\lolin32\\pins_arduino.h #define FSPI 1 \/\/SPI bus attached to the flash (can use the same data lines but different SS) #define HSPI 2 \/\/SPI bus [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6786","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/6786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6786"}],"version-history":[{"count":31,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/6786\/revisions"}],"predecessor-version":[{"id":11168,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/6786\/revisions\/11168"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}