{"id":186351,"date":"2025-12-31T17:08:21","date_gmt":"2025-12-31T17:08:21","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=186351"},"modified":"2025-12-31T17:08:24","modified_gmt":"2025-12-31T17:08:24","slug":"year-in-review-2025","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/year-in-review-2025\/","title":{"rendered":"Year in Review 2025 \u2013 Random Nerd Tutorials"},"content":{"rendered":"\n<p>With the beginning of a new year, it is time to share our Year in Review. Every year seems to pass faster than the last, and 2025 was no different. It went by so quickly! In this post, we\u2019ll take a closer look at what happened on the blog during the year: what worked well, what didn\u2019t, whether we reached our goals, and which projects were the most popular. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/year-in-review-Random-Nerd-Tutorials-2025.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Random Nerd Tutorials Year in Review 2025\" class=\"wp-image-186544\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/year-in-review-Random-Nerd-Tutorials-2025.jpg?w=1920&amp;quality=100&amp;strip=all&amp;ssl=1 1920w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/year-in-review-Random-Nerd-Tutorials-2025.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/year-in-review-Random-Nerd-Tutorials-2025.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/year-in-review-Random-Nerd-Tutorials-2025.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/year-in-review-Random-Nerd-Tutorials-2025.jpg?resize=1536%2C864&amp;quality=100&amp;strip=all&amp;ssl=1 1536w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n<p>We\u2019ll also talk about our plans and milestones for the new year. Finally, we&#8217;ll share a few personal thoughts about 2025 and the year ahead, including one big change that will have a major impact on our lives.<\/p>\n\n\n\n<p>This is also a great opportunity for you to get involved.<strong> Feel free to leave a comment with your feedback, ideas for future projects, or suggestions<\/strong> on what you\u2019d like us to improve, change, or cover next. We\u2019re always happy to hear from you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Number of Published Tutorials: 86<\/h2>\n\n\n\n<p>In 2025, we published 86 new tutorials, including updated content (<a href=\"https:\/\/randomnerdtutorials.com\/year-in-review-2024\/\">110 published in 2024<\/a>). This works out to almost two tutorials or projects each week, except during our Monthly Recap weeks, when we usually publish only one post. This was our goal from the start, and we think it\u2019s a good pace for our readers who want to follow our work regularly without feeling overwhelmed.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"750\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Number-published-projects-2025-RNT.jpg?resize=750%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Random Nerd Tutorials Year in Review 2025 - Number of Published Tutorials\" class=\"wp-image-186541\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Number-published-projects-2025-RNT.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Number-published-projects-2025-RNT.jpg?resize=300%2C200&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Most Popular Tutorials<\/h2>\n\n\n\n<p>Every year, we select the top five most popular tutorials published that year, based on views, comments, and feedback from our readers. This is a great chance for you to check them in case you missed any of the most popular.<\/p>\n\n\n\n<p>Here&#8217;s a list of the top 5.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"750\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Most-popular-projects-2025.jpg?resize=750%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Random Nerd Tutorials Most Popular Projects 2024\" class=\"wp-image-186648\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Most-popular-projects-2025.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Most-popular-projects-2025.jpg?resize=300%2C200&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p><a href=\"https:\/\/randomnerdtutorials.com\/getting-started-esp32-c3-super-mini\/\" title=\"\"><strong>1. ESP32-C3 Super Mini: Getting Started Guide<\/strong><\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-ON.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 C3 SuperMini Blinking onboard LED\" class=\"wp-image-170262\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-ON.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-ON.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>Our getting started guide for the ESP32-C3 Super Mini was the most popular tutorial of the year. I wasn&#8217;t expecting this, but it seems there are more people interested in this board than I expected. <\/p>\n\n\n\n<p>The ESP32-C3 Super Mini is a compact development board based on the Espressif ESP32-C3 chip. Its main advantages over other ESP32 boards are its small size and low power consumption in deep sleep mode. We created a getting started guide, but didn&#8217;t explore more because it works quite similarly to other &#8220;regular&#8221; ESP32 boards. However, let us know if there are any specific subjects about this board that you&#8217;d like to see covered.<\/p>\n\n\n\n<p><strong>2.<\/strong> <a href=\"https:\/\/randomnerdtutorials.com\/esp32-freertos-arduino-tasks\/\" title=\"\">FreeRTOS with ESP32 &#8211; Getting Started Guide<\/a><\/p>\n\n\n\n<p>Using FreeRTOS on the ESP32 programmed with Arduino IDE was a subject that I&#8217;ve been asked multiple times for a long time. So, it is no surprise that our FreeRTOS getting started guide is one of the most popular tutorials this year. My only regret is not having covered this subject earlier. It allows you to handle and manage tasks, and multitasking (or sort of) is an easy way.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"157\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/07\/Logo_freeRTOS.png?resize=413%2C157&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"FreeRTOS Logo\" class=\"wp-image-173608\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/07\/Logo_freeRTOS.png?w=413&amp;quality=100&amp;strip=all&amp;ssl=1 413w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/07\/Logo_freeRTOS.png?resize=300%2C114&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 413px) 100vw, 413px\" \/><\/figure><\/div>\n\n\n<p><strong>3.<\/strong> <a href=\"https:\/\/randomnerdtutorials.com\/programming-esp32-esp-idf-vs-code\/\" title=\"\">Programming ESP32 with ESP-IDF using VS Code \u2013 Getting Started Guide<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-ESP-IDF-Getting-Started.jpg?resize=1024%2C576&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Programming ESP32 with ESP-IDF using VS Code - Getting Started Guide\" class=\"wp-image-170352\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-ESP-IDF-Getting-Started.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-ESP-IDF-Getting-Started.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-ESP-IDF-Getting-Started.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-ESP-IDF-Getting-Started.jpg?resize=1536%2C864&amp;quality=100&amp;strip=all&amp;ssl=1 1536w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-ESP-IDF-Getting-Started.jpg?w=1920&amp;quality=100&amp;strip=all&amp;ssl=1 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Another subject a lot of you have been asking for quite some time is how to program the ESP32 using ESP-IDF (Espressif IoT Development Framework)\u2014the &#8220;official way&#8221; to program ESP32 boards developed by Espressif. Besides the first getting started guide, we already covered other basic subjects related to GPIO control with ESP-IDF. <\/p>\n\n\n\n<p>While programming with ESP-IDF is definitely not for everyone, it&#8217;s still very popular among our readers.<\/p>\n\n\n\n<p><strong>4. <a href=\"https:\/\/randomnerdtutorials.com\/esp32-cyd-esp-now-receive-data\/\" title=\"\">ESP32 CYD with ESP-NOW: Receive and Display Data From Multiple Boards<\/a><\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"490\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/06\/CYD-Receive-Data-Via-ESP-NOW-Project-Overview-.png?resize=750%2C490&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 CYD Board Receive Data from Multiple ESP32 Boards via ESP-NOW - project overview\" class=\"wp-image-171822\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/06\/CYD-Receive-Data-Via-ESP-NOW-Project-Overview-.png?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/06\/CYD-Receive-Data-Via-ESP-NOW-Project-Overview-.png?resize=300%2C196&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>This tutorial combining ESP-NOW with the CYD board (Cheap Yellow Display) shows how you can easily integrate ESP-NOW on this particular ESP32 Display board to receive and display data from multiple other ESP32 boards in just one place.<\/p>\n\n\n\n<p>This tutorial was so popular that we&#8217;re planning to create a similar one that shows how to control other boards via ESP-NOW using the CYD display as a user interface.<\/p>\n\n\n\n<p><strong>5.<\/strong> <a href=\"https:\/\/randomnerdtutorials.com\/esp32-rfid-user-management-web-server\/\" title=\"\">ESP32 RFID User Management System with Web Server<\/a><\/p>\n\n\n\n<p>This project shows how to build an RFID user management system with a web server that runs on an ESP32. The ESP32 board is connected to an MFRC522 RFID reader and a microSD card that will store all the user data. The web server allows you to check the access log, and add and manage users.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"707\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-RFID-Web-Server-Management-System-01.jpg?resize=1024%2C707&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 RFID Web Server Management System Project Overview\" class=\"wp-image-164637\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-RFID-Web-Server-Management-System-01.jpg?resize=1024%2C707&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-RFID-Web-Server-Management-System-01.jpg?resize=300%2C207&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-RFID-Web-Server-Management-System-01.jpg?resize=768%2C531&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-RFID-Web-Server-Management-System-01.jpg?w=1200&amp;quality=100&amp;strip=all&amp;ssl=1 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Other Relevant Tutorials Worth Mentioning<\/h3>\n\n\n\n<p>Besides the top 5 most popular tutorials this year, it&#8217;s also worth mentioning the following guides:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-web-server-beginners-guide\/\" title=\"\">Building an ESP32 Web Server: The Complete Guide for Beginners<\/a>\u2014a comprehensive tutorial suitable for beginners that starts with essential theory, explains basic concepts and also covers practical examples. It covers serving a web page to control outputs, display sensor readings, add authentication, set an access point, and much more. If you&#8217;re new to web servers with the ESP32, this is the tutorial you need to get started.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cyd-lvgl-line-chart\/\" title=\"\">ESP32 CYD with LVGL: Display Temperature on a Line Chart<\/a>\u2014learn how to display temperature from the BME280 sensor on an ESP32 Cheap Yellow Display (CYD) using LVGL (Light Versatile Graphics Library). You\u2019ll learn how to draw a line chart to display data from a sensor.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-CYD-LVGL-Display-Temperature-Line-Chart-BME280-Demonstration.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 CYD LVGL Display Temperature Line Chart BME280 Demonstration\" class=\"wp-image-164496\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-CYD-LVGL-Display-Temperature-Line-Chart-BME280-Demonstration.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/12\/ESP32-CYD-LVGL-Display-Temperature-Line-Chart-BME280-Demonstration.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-qr-code-reader-scanner-arduino\/\">ESP32-CAM QR Code Reader\/Scanner (Arduino)<\/a>\u2014learn how to use the ESP32QRCodeReader library and a modified version of the quirc library to detect QR codes and print their data in the Serial Monitor.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"251\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/03\/ESP32-CAM-QR-Code-Scanner-Overview.jpg?resize=850%2C251&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-CAM QR Code Scanner Project Overview\" class=\"wp-image-168338\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/03\/ESP32-CAM-QR-Code-Scanner-Overview.jpg?w=850&amp;quality=100&amp;strip=all&amp;ssl=1 850w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/03\/ESP32-CAM-QR-Code-Scanner-Overview.jpg?resize=300%2C89&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/03\/ESP32-CAM-QR-Code-Scanner-Overview.jpg?resize=768%2C227&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/lilygo-ttgo-t-a7670g-a7670e-a7670sa-esp32\/\" title=\"\">Getting Started with LILYGO TTGO T-A7670G ESP32 (4G, GPRS, and GPS)<\/a>\u2014this board combines the ESP32 chip, the A7670G (or A7670E, A7670SA) module, SIM card slot, microSD card, GPS, battery, and charger on the same board. Besides Wi-Fi and Bluetooth, you can communicate with this ESP32 board using SMS. You can also connect it to the internet using your SIM card data plan and get GPS location. This board is a little tricky to use, so this tutorial may come in handy when getting started with this board.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/ESP32-LILYGO-TTGO-T-A7670G-Dev-Board-overview.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 LILYGO TTGO T-A7670G Dev Board overview\" class=\"wp-image-167081\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/ESP32-LILYGO-TTGO-T-A7670G-Dev-Board-overview.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/ESP32-LILYGO-TTGO-T-A7670G-Dev-Board-overview.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">New Subjects<\/h2>\n\n\n\n<p>There were threee main new subjects that we started covering this year:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) ESP-IDF<\/h3>\n\n\n\n<p>ESP-IDF is the official development framework from Espressif for programming ESP32 boards. Because it is officially supported, it is frequently updated and often provides earlier support for new ESP32 chips compared to Arduino IDE or MicroPython. It also offers more flexibility, better performance, and deeper control over peripherals, system configuration, and task management.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"275\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP-IDF-vs-Arduino-IDE.jpg?resize=750%2C275&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP-IDF vs Arduino IDE\" class=\"wp-image-170350\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP-IDF-vs-Arduino-IDE.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP-IDF-vs-Arduino-IDE.jpg?resize=300%2C110&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>However, ESP-IDF is much more complex than Arduino IDE and requires a solid understanding of the ESP32 hardware, memory management, FreeRTOS, and peripheral setup. This complexity gives you more control over your boards, but you\u2019re also more likely to run into errors, configuration problems, etc. <\/p>\n\n\n\n<p>If you\u2019re not familiar with the Arduino IDE or are just getting started with the ESP32, we don\u2019t recommend jumping into ESP-IDF yet. <\/p>\n\n\n\n<p>But, if you already have a great understanding of how the ESP32 works and programming it with Arduino IDE, and if you\u2019re up for the challenge, we have several tutorials on this topic (and maybe we&#8217;re planning a complete eBook about it in the future).<\/p>\n\n\n\n<p>For now, you can get started with the following tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/programming-esp32-esp-idf-vs-code\/\">Programming ESP32 with ESP-IDF using VS Code \u2013 Getting Started Guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp-idf-esp32-blink-led\/\">ESP-IDF: ESP32 Blink LED Example (VS Code)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp-idf-esp32-gpio-outputs\/\">ESP-IDF: ESP32 GPIO \u2013 Control Digital Outputs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/?s=ESP-IDF\" title=\"\">More ESP-IDF Guides <\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) ESP32 with FreeRTOS (Arduino IDE)<\/h3>\n\n\n\n<p>The ESP32 core for the Arduino IDE comes with built-in support for FreeRTOS functions. But <strong>what is FreeRTOS?<\/strong><\/p>\n\n\n\n<p>FreeRTOS is a real-time operating system that allows the ESP32 to manage and run multiple tasks simultaneously in a smooth and efficient way. It\u2019s built into the ESP32 and fully integrated with both the Arduino core and the Espressif IoT Development Framework (IDF).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"157\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/07\/Logo_freeRTOS.png?resize=413%2C157&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"FreeRTOS Logo\" class=\"wp-image-173608\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/07\/Logo_freeRTOS.png?w=413&amp;quality=100&amp;strip=all&amp;ssl=1 413w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/07\/Logo_freeRTOS.png?resize=300%2C114&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 413px) 100vw, 413px\" \/><\/figure><\/div>\n\n\n<p>FreeRTOS allows the ESP32 to run multiple tasks at the same time, each with its own priority, instead of executing code strictly line by line. It also includes features like queues and semaphores, which make communication between tasks easier and more reliable.<\/p>\n\n\n\n<p>Looking at it more closely, this is a topic we should have covered earlier. FreeRTOS can simplify development a lot, especially in larger projects where several tasks need to run at once or in a specific order. <\/p>\n\n\n\n<p>For those who have been asking for tutorials about this subject, they are finally here (it&#8217;s better late than never :D). Let us know what other topics about FreeRTOS you would like us to cover here.<\/p>\n\n\n\n<p>At the moment, you can check the following tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-freertos-arduino-tasks\/\">ESP32 with FreeRTOS (Arduino IDE) \u2013 Getting Started: <strong>Create Tasks<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-freertos-queues-inter-task-arduino\/\">ESP32 with FreeRTOS <strong>Queues<\/strong>: Inter-Task Communication (Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-freertos-semaphores-arduino\/\">ESP32 with FreeRTOS: Getting Started with <strong>Semaphores <\/strong>(Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-freertos-software-timers-interrupts\/\">ESP32 with FreeRTOS: Software <strong>Timers\/Timer Interrupts<\/strong> (Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-dual-core-arduino-ide\/\">How to use ESP32 <strong>Dual Core<\/strong> with Arduino IDE (FreeRTOS)<\/a><\/li>\n<\/ul>\n\n\n\n<p>We also have another tutorial about <strong>Mutexes <\/strong>already written to be published at the beginning of next year.<\/p>\n\n\n\n<p>I would also like to cover more complex projects where we can see how to apply these FreeRTOS concepts to make code development easier. What do you think?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3) ESP-NOW with MicroPython<\/h3>\n\n\n\n<p>Until recently, there was no support for ESP-NOW using MicroPython firmware. But now, ESP-NOW seems to be working reliably with MicroPython, and it is quite easy to implement. At the moment, we have the following tutorials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-esp-now-esp32\/\">MicroPython: ESP-NOW with ESP32 (Getting Started)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-esp32-esp-now-two-way\/\">MicroPython: ESP32 ESP-NOW Two-Way Communication<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-esp-now-esp32-many-to-one\/\">MicroPython: ESP-NOW with ESP32\u2014Receive Data from Multiple Boards (many-to-one)<\/a><\/li>\n<\/ul>\n\n\n\n<p>We have another one about one-to-many ESP-NOW communication that will be published soon.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">New Development Boards<\/h3>\n\n\n\n<p>We also reviewed and experimented with several new development boards. Here&#8217;s the list:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#c3-super-mini\" title=\"\">ESP32-C3 Super Mini<\/a><\/li>\n\n\n\n<li><a href=\"#arduino-uno-q\" title=\"Arduino Uno Q\">Arduino Uno Q<\/a><\/li>\n\n\n\n<li><a href=\"#rpi-pico-2\" title=\"\">Raspberry Pi Pico 2 \/ Pico 2 W<\/a><\/li>\n\n\n\n<li><a href=\"#T-A7670G\" title=\"\">LILYGO TTGO T-A7670G ESP32<\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"c3-super-mini\">ESP32-C3 Super Mini<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-C3 Super Mini\" class=\"wp-image-170212\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>As we mentioned previously, this is a small ESP32 board based on the ESP32-C3 chip. Its main advantage is its small size and super low power consumption in deep sleep. It seems to be quite popular at the moment. You can check out our getting started guide:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/getting-started-esp32-c3-super-mini\/\" title=\"\"><strong>ESP32-C3 Super Mini: Getting Started Guide<\/strong><\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"arduino-uno-q\">Arduino UNO Q<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"505\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/11\/Arduino-UNO-Q-Qualcomm-Specifications-Specs-Overview.jpg?resize=1024%2C505&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino UNO Q Qualcomm Specifications Specs Overview\" class=\"wp-image-183105\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/11\/Arduino-UNO-Q-Qualcomm-Specifications-Specs-Overview.jpg?resize=1024%2C505&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/11\/Arduino-UNO-Q-Qualcomm-Specifications-Specs-Overview.jpg?resize=300%2C148&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/11\/Arduino-UNO-Q-Qualcomm-Specifications-Specs-Overview.jpg?resize=768%2C379&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/11\/Arduino-UNO-Q-Qualcomm-Specifications-Specs-Overview.jpg?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>The Arduino UNO Q is the latest Arduino board that combines a microcontroller (STM32U585) and a Linux-capable microcomputer (Qualcomm Dragonwing QRB2210 SoC), all while maintaining the classic Arduino board form factor. To give you an idea of what this board is all about, you can read our article below:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/arduino-uno-q-getting-started\/\" title=\"\"><strong>Arduino UNO Q: Getting Started (Features, Pinout, Examples)<\/strong><\/a><\/li>\n<\/ul>\n\n\n\n<p>I think this new board is quite useful, and it opens a whole new world of possibilities for IoT apps that combine the simplicity of using sensors and peripherals on a microcontroller with more complex models and applications that might require a microcomputer. I\u2019m thinking about things like running AI models, complex web server programs, creating your own self-hosted database, and much more.<\/p>\n\n\n\n<p>What do you think? <strong>Would you like to see more tutorials about the Arduino Uno Q board?<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"rpi-pico-2\">RPi Pico 2\/ RPi Pico 2 W<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/RPi-Pico-2-vs-Rpi-Pico-2W.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Raspberry Pi Pico 2 W and Raspberry Pi Pico 2\" class=\"wp-image-169976\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/RPi-Pico-2-vs-Rpi-Pico-2W.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/RPi-Pico-2-vs-Rpi-Pico-2W.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>The Raspberry Pi Pico 2\/ Pico 2W is the successor of the Raspberry Pi Pico\/Pico W (version 1). This new version uses the RP2350 chip. It can be programmed like the previous versions of the board. So, your previous programs are compatible with the new versions.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/getting-started-raspberry-pi-pico-2-w\/\" title=\"\">Getting Started with Raspberry Pi Pico 2 and Pico 2 W<\/a><\/li>\n<\/ul>\n\n\n\n<p>Besides the getting-started guide, we also have an extensive list of guides and an eBook for you to learn how to get the most out of this board:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-w-micropython-ebook\/\"><strong>Learn Raspberry Pi Pico\/Pico W with MicroPython (eBook)<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-raspberry-pi-pico\/\">More Raspberry Pi Pico projects and tutorials<\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"T-A7670G\">LILYGO TTGO T-A7670G ESP32 (4G, GPRS, and GPS)<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/ESP32-LILYGO-TTGO-T-A7670G-Dev-Board-connected-LTE-band-atenna.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 LILYGO TTGO T-A7670G Dev Board connected LTE band antenna\" class=\"wp-image-167078\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/ESP32-LILYGO-TTGO-T-A7670G-Dev-Board-connected-LTE-band-atenna.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/01\/ESP32-LILYGO-TTGO-T-A7670G-Dev-Board-connected-LTE-band-atenna.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>This board uses an ESP32 together with an A7670 cellular module (G, E, or SA). It has a SIM card slot for SMS communication and mobile internet access. GPS is included for getting location data. A microSD card slot is available for storage. The board can run on a battery and has a built-in charging circuit. Wi-Fi and Bluetooth are also supported.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/lilygo-ttgo-t-a7670g-a7670e-a7670sa-esp32\/\" title=\"\">Getting Started with LILYGO TTGO T-A7670G ESP32 (4G, GPRS, and GPS)<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">eBooks Updated This Year<\/h2>\n\n\n\n<p>This year, we didn&#8217;t launch any new eBooks. However, we spent a considerable amount of time (more than I would have liked to) updating our previous eBooks and some of them more than once.<\/p>\n\n\n\n<p class=\"rntbox rntclgray\">Note that when you buy one of our eBooks, you&#8217;ll receive eBook updates for free. You can get the latest version of your eBook in the <a href=\"https:\/\/rntlab.com\/courses\/\" target=\"_blank\" rel=\"noopener\" title=\"\">RNTLAB member&#8217;s area<\/a>. If you&#8217;re having trouble finding the latest version of one of the eBooks you&#8217;ve previously bought, you can send an <a href=\"https:\/\/randomnerdtutorials.com\/support\/\" title=\"\">email to our support<\/a>.<\/p>\n\n\n\n<p>You can expect frequent updates whenever there are new library releases (with breaking changes) or changes to the ESP32, ESP8266, RPi  Pico core. This ensures that our projects continue to work as expected. We also make updates to add new subjects or units that we think are relevant.<\/p>\n\n\n\n<p>I don&#8217;t think you get this kind of service often with other digital products.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/\" title=\"\">Build Web Servers with ESP32 and ESP8266 eBook (3rd Edition)<\/a> \u2014 updated in April<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"300\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=225%2C300&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Build Web Servers with ESP32 ESP8266 3rd Edition eBook\" class=\"wp-image-168473\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?resize=225%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 225w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/04\/Build-Web-Servers-with-ESP32-ESP8266-3rd-Edition-eBook-500px.jpg?w=375&amp;quality=100&amp;strip=all&amp;ssl=1 375w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/><\/a><\/figure><\/div>\n\n\n<p><strong>New ESPAsyncWebServer and AsyncTCP Libraries<\/strong><\/p>\n\n\n\n<p>We had to update this eBook to use the new versions of the <a href=\"https:\/\/github.com\/ESP32Async\/ESPAsyncWebServer\" target=\"_blank\" rel=\"noopener\" title=\"\">ESPAsyncWebServer <\/a>and <a href=\"https:\/\/github.com\/ESP32Async\/AsyncTCP\" target=\"_blank\" rel=\"noopener\" title=\"\">AsyncTCP <\/a>libraries. The eBook is now in its 3rd Edition.<\/p>\n\n\n\n<p>In summary, here&#8217;s what happened: the original ESPAsyncWebServer and AsyncTCP repositories created by me-no-dev were archived and are no longer actively developed by that author.<\/p>\n\n\n\n<p>The projects have been moved and continued under the new <a href=\"https:\/\/github.com\/ESP32Async\" target=\"_blank\" rel=\"noopener\" title=\"\">ESP32Async GitHub organization<\/a>. These are the forks that are actively maintained and updated for recent ESP32 core releases and are the ones we now recommend using with our projects.<\/p>\n\n\n\n<p>We also updated all the tutorials in our blog that use those libraries.<\/p>\n\n\n\n<p><strong>Version 3 of the ESP32 Core<\/strong><\/p>\n\n\n\n<p>Still in this eBook, we used to recommend using PlatformIO. However, there&#8217;s currently no support for the latest version of the ESP32 core (version 3). So, we had to change to pioarduino to keep up with the latest releases of the core. If you want to use the newest versions of the ESP32 core on VS Code, <a href=\"https:\/\/randomnerdtutorials.com\/vs-code-pioarduino-ide-esp32\/\" title=\"\">you need to use pioarduino now (learn more)<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/learn-esp32-with-arduino-ide\/\" title=\"\">Learn ESP32 with Arduino IDE <strong>(3rd Edition)<\/strong><\/a> \u2014 updated in January and April<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium is-resized\"><a href=\"https:\/\/randomnerdtutorials.com\/learn-esp32-with-arduino-ide\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"240\" height=\"300\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/09\/Learn-ESP32-with-Arduino-IDE-eBook-3rd-edition-cover-image.jpg?resize=240%2C300&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Learn ESP32 with Arduino IDE eBook 3rd edition cover image\" class=\"wp-image-162324\" style=\"width:310px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/09\/Learn-ESP32-with-Arduino-IDE-eBook-3rd-edition-cover-image.jpg?resize=240%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 240w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/09\/Learn-ESP32-with-Arduino-IDE-eBook-3rd-edition-cover-image.jpg?w=400&amp;quality=100&amp;strip=all&amp;ssl=1 400w\" sizes=\"(max-width: 240px) 100vw, 240px\" \/><\/a><\/figure><\/div>\n\n\n<p>The &#8220;Learn ESP32 with Arduino IDE&#8221; eBook is one of our best-selling eBooks. We had to update it several times this year. It is currently in version 3.2.<\/p>\n\n\n\n<p>The main changes were related to the ESPAsyncWebServer library and some breaking changes on the ESP32 core.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-cam-projects-ebook\/\" title=\"\">Build ESP32-CAM Projects eBook (2nd Edition) \u2014 Updated in April<\/a>: again, the updates were related to updates on the ESP32 core and the Web Server libraries.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/raspberry-pi-pico-w-micropython-ebook\/\" title=\"\">Learn Raspberry Pi Pico\/Pico W with MicroPython (version 1.2) \u2014 Updated in May<\/a> to include references to the Raspberry Pi Pico 2 board and update some of the projects.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/learn-lvgl-esp32-ebook\/\" title=\"\">Learn LVGL: Build GUIs for ESP32 Projects (version 1.5) \u2014 Updated in July<\/a> to include new units about using the board&#8217;s built-in microSD card slot, fixed some projects, and updated to use the latest versions of the web server libraries.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/smart-home-ebook\/\" title=\"\">Smart Home with Raspberry Pi, ESP32, and ESP8266 (version 1.7) \u2014 Updated in September and November<\/a> to use the latest AsyncTCP libraries. A new RPi OS version was released, along with a new version of the Raspberry Pi Imager Software. We also had to update instructions on how to install the Mosquitto broker.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><a href=\"https:\/\/randomnerdtutorials.com\/smart-home-ebook\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"195\" height=\"300\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Smart-Home-Raspberry-Pi-ESP32-ESP8266-eBook500px-195x300.jpg?resize=195%2C300&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"SMART HOME with Raspberry Pi ESP32 and ESP8266 Node-RED InfluxDB eBook\" class=\"wp-image-116238\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Smart-Home-Raspberry-Pi-ESP32-ESP8266-eBook500px.jpg?resize=195%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 195w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Smart-Home-Raspberry-Pi-ESP32-ESP8266-eBook500px.jpg?w=325&amp;quality=100&amp;strip=all&amp;ssl=1 325w\" sizes=\"(max-width: 195px) 100vw, 195px\" \/><\/a><\/figure><\/div>\n\n\n<p><a href=\"https:\/\/randomnerdtutorials.com\/courses\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Visit the Courses Page to see All the eBooks \u00bb<\/strong><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Maker Advisor<\/h2>\n\n\n\n<p>For those of you who don\u2019t know,&nbsp;<a href=\"https:\/\/makeradvisor.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Maker Advisor<\/a>&nbsp;is our other website where you\u2019ll find reviews about development boards, tools, and gear for your electronics lab. That\u2019s also where we show where you can buy your electronics components for your projects (<a href=\"https:\/\/makeradvisor.com\/tools\/\" target=\"_blank\" rel=\"noreferrer noopener\">check the Tools page<\/a>).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/makeradvisor.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"247\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/02\/maker-advisor-750px.jpg?resize=750%2C247&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-52561\" style=\"width:404px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/02\/maker-advisor-750px.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/02\/maker-advisor-750px.jpg?resize=300%2C99&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><\/figure><\/div>\n\n\n<p>We\u2019re currently not creating new content for Maker Advisor, but we try to have our <a href=\"https:\/\/makeradvisor.com\/tools\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Tools page<\/a> as up-to-date as possible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Milestones for 2025 (Achieved or Not?)<\/h2>\n\n\n\n<p>Looking at the milestones we set for this year, we didn&#8217;t cover most of the topics we had planned last year.<\/p>\n\n\n\n<p><strong>Publishing a New Tutorial Every Week<\/strong> \u2705<\/p>\n\n\n\n<p>We successfully published one to two (and sometimes three) tutorials per week with our <a href=\"https:\/\/randomnerdtutorials.com\/download\/\" title=\"\">weekly newsletter<\/a>. We also sent a monthly recap every month, like in previous years.<\/p>\n\n\n\n<p><strong>Getting Started Guide for the ESP32-C3 Super Mini \u2705<\/strong><\/p>\n\n\n\n<p>Last year, we had planned on experimenting with the ESP32-C3 Super Mini. We created a getting started guide as planned: <a href=\"https:\/\/randomnerdtutorials.com\/getting-started-esp32-c3-super-mini\/\">Getting Started with the ESP32-C3 Super Mini<\/a>.<\/p>\n\n\n\n<p><strong>Tutorials about security and encryption \u274c<\/strong><\/p>\n\n\n\n<p>It&#8217;s been three years since I had this on our to-do list, but still without success (ups!). I guess that&#8217;s a topic that doesn&#8217;t interest me much, so I always end up postponing that. However, that&#8217;s definitely an important topic, especially on IoT projects.<\/p>\n\n\n\n<p><strong>Tutorials about the STM32 \u274c<\/strong><\/p>\n\n\n\n<p>We\u2019ve already bought several STM32 boards, but we haven\u2019t yet put in the time and effort to experiment with them. Maybe next year. However, I still have to decide which STM32 board I&#8217;ll stick with.<\/p>\n\n\n\n<p><strong>Tutorials about Home Assistant \u274c<\/strong><\/p>\n\n\n\n<p>I\u2019m not sure what it is about Home Assistant, but I always end up leaving those tutorials for another day. I think it\u2019s because Home Assistant is constantly being updated, which is great, but it also means that a tutorial written today might need to be completely updated by next week.<\/p>\n\n\n\n<p><strong>LVGL Tutorials for Displays with Capacitive Touch<\/strong> <strong>\u274c<\/strong><\/p>\n\n\n\n<p>We created several new tutorials using LVGL, but we haven\u2019t yet experimented with or adapted our projects for capacitive touchscreens. That\u2019s definitely something we want to cover next year and also include in the LVGL eBook.<\/p>\n\n\n\n<p><strong>More projects dedicated to<\/strong> <strong>building robots<\/strong> <strong>\u274c<\/strong><\/p>\n\n\n\n<p>We ended up not covering any tutorials specific to building robots, even though we covered many topics that can be applied to robotics.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Milestones for 2026<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Publish one to two tutorials\/projects per week and a monthly recap<\/strong>: as in previous years, we want to stick with our weekly publishing schedule as well as our monthly recaps.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tutorials about the STM32<\/strong>: as I mentioned previously, we already have several STM32 boards. We intend to create some tutorials about them, as they seem to be used a lot in professional and industrial settings.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>LVGL Tutorials for Displays with Capacitive Touch:<\/strong> new versions of the CYD (cheap yellow display board) are released all the time, and many of them now come with capacitive touchscreens. At the moment, our tutorials only cover resistive touchscreens. We plan to add support for capacitive touch as well. First, we need to find the library that works best and then adapt the LVGL input device accordingly.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>More ESP-IDF Guides and likely a dedicated eBook<\/strong>: even though ESP-IDF is definitely not my favorite topic, it has a large and active audience. On top of that, many of the basic tutorials you find online right now are either outdated or simply don\u2019t work. We intend to fill that gap.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Project implementing FreeRTOS<\/strong>: after covering most of FreeRTOS&#8217; most important basic subjects, I&#8217;m thinking about creating some more &#8220;advanced&#8221; projects to show how to implement FreeRTOS features in more practical scenarios.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Updating the Firebase eBook<\/strong>: the projects in our <a href=\"https:\/\/randomnerdtutorials.com\/firebase-esp32-esp8266-ebook\/\" title=\"\">Firebase Web App with ESP32 and ESP8266 eBook<\/a> still work using the library versions specified in the book. However, newer versions of the Arduino library and Firebase SDK are already out for quite some time, and I want to update our eBook to use those. I\u2019ve been working on updating the eBook for quite some time (at least a few months), but there always seems to be something that slows me down. My goal is to have the updated version ready as soon as possible, ideally at the start of next year.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Project Compilations<\/strong>: we have published a lot of tutorials on our blog. Almost 800 so far. With so much content, it can be hard to find exactly what you\u2019re looking for or to know if a topic has already been covered. Two years ago, we published several project compilation articles. These posts group related tutorials into one place and are also a good way to highlight old content that\u2019s still useful. We\u2019re thinking about doing more of these next year as well. What do you think? Do you like this kind of article?<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>New Project Coming Soon<\/strong>: Rui is currently working on a completely new project (something totally different from what we have published so far, related to IoT) that we&#8217;ll announce soon at the beginning of next year. So, stay tuned!<\/li>\n<\/ul>\n\n\n\n<p>As always, we want to publish at least one new tutorial once a week. We also want to continue sending our Monthly RNT Recap (a compilation of the previous month\u2019s publications). If you don\u2019t receive our newsletters, you can subscribe below.<\/p>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"82989\" class=\"elementor elementor-82989\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-892f2d5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"892f2d5\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ece90aa\" data-id=\"ece90aa\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-28e6244c elementor-widget elementor-widget-heading\" data-id=\"28e6244c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Stay updated by subscribing to our weekly newsletter!<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0b97f09 elementor-widget elementor-widget-html\" data-id=\"0b97f09\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<form action=\"https:\/\/mail.ruisantos.me\/subscribe\" method=\"POST\" accept-charset=\"utf-8\" style=\"display: flex; flex-direction: column; align-items: center; gap: 10px; width: fit-content; margin: 0 auto;\">\r\n\t<input \r\n\t\ttype=\"email\" \r\n\t\tname=\"email\" \r\n\t\tid=\"email\" \r\n\t\tplaceholder=\"Your Email Address\" \r\n\t\tstyle=\"padding: 10px; width: 260px; border: 1px solid #aaa; border-radius: 4px; font-size: 16px;\"\r\n        required\r\n\t\/>\r\n    <input type=\"hidden\" name=\"list\" value=\"Sy892IiAnzPawd8nsKJDKqOw\"\/>\r\n\t<input type=\"hidden\" name=\"subform\" value=\"yes\"\/>\r\n    <button \r\n        type=\"submit\" \r\n        name=\"submit\" \r\n        id=\"submit\" \r\n        style=\"padding: 10px 20px; width: 260px; background-color: #007bff; color: white; border: none; border-radius: 4px; font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 5px;\">\r\n        <i class=\"far fa-envelope\" style=\"font-size: 16px;\"><\/i>\r\n        SUBSCRIBE\r\n    <\/button>\r\n<\/form>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading\">My Travel Blog and Our Adventures This Year<\/h2>\n\n\n\n<p>Every year, we also share a bit about our travel adventures (that have nothing to do with electronics). If you&#8217;re not interested in this, you can skip to the <a href=\"#wrap-up\" title=\"\">Wrapping Up section<\/a>.<\/p>\n\n\n\n<p>For those of you who don&#8217;t know, two years ago, I started a travel blog to share our adventures and travel guides, itineraries, and tips about the places we visit. This is just a hobby, but I&#8217;ve already invested a lot of work into it as I&#8217;ve written more than 60 articles about 14 different countries\/locations.<\/p>\n\n\n\n<p>You can check out our Travel blog at the link below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/tripiwi.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"442\" height=\"150\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/07\/tripiwi-logo-150.png?resize=442%2C150&amp;quality=100&amp;strip=all&amp;ssl=1\" alt=\"\" class=\"wp-image-133392\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/07\/tripiwi-logo-150.png?w=442&amp;quality=100&amp;strip=all&amp;ssl=1 442w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2023\/07\/tripiwi-logo-150.png?resize=300%2C102&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 442px) 100vw, 442px\" \/><\/a><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/tripiwi.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Tripiwi Travel Blog<\/strong><\/a><\/li>\n<\/ul>\n\n\n\n<p>You can also follow our travel adventures on social media.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.instagram.com\/tripiwi_\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Instagram<\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.tiktok.com\/@tripiwi\" target=\"_blank\" rel=\"noreferrer noopener\">TikTok<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/@tripiwi_\" target=\"_blank\" rel=\"noreferrer noopener\">YouTube<\/a><\/li>\n<\/ul>\n\n\n\n<p>However, I\u2019m not posting much there at the moment. My real passion is writing, and I\u2019ve been focusing on keeping the <a href=\"https:\/\/tripiwi.com\/\" target=\"_blank\" rel=\"noopener\" title=\"\">blog<\/a> as up to date as possible with our trips. There are still many articles from previous trips that need to be completed, though.<\/p>\n\n\n\n<p>Something I\u2019m really proud of, even if it\u2019s just a small step, is that I was finally able to monetize my travel blog. It\u2019s not much at the moment, but I\u2019m still proud because travel is such a competitive niche that I honestly thought I would never earn anything from it. Even though I write on the blog mainly for passion, it\u2019s always nice to get a little reward for our hard work.<\/p>\n\n\n\n<p><strong>Netherlands<\/strong><\/p>\n\n\n\n<p>At the beginning of the year, we took a short trip to the Netherlands to visit a friend who is currently living and working there. We had visited the Netherlands several times before and always enjoyed it. This time, we spent some time exploring Leiden, which is near where our friend lives, and also visited Rotterdam.<\/p>\n\n\n\n<div class=\"wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular\"><div class=\"\"><div class=\"tiled-gallery__gallery\"><div class=\"tiled-gallery__row\"><div class=\"tiled-gallery__col\" style=\"flex-basis:63.94296%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Leiden.jpg?strip=info&#038;w=600&#038;ssl=1 600w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Leiden.jpg?strip=info&#038;w=750&#038;ssl=1 750w\" alt=\"\" data-height=\"563\" data-id=\"186667\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186667#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Leiden.jpg\" data-width=\"750\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Leiden.jpg?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><div class=\"tiled-gallery__col\" style=\"flex-basis:36.05704%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Rotterdam.jpg?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"\" data-height=\"800\" data-id=\"186668\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186668#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Rotterdam.jpg\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Rotterdam.jpg?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><\/div><\/div><\/div><\/div>\n\n\n\n<p><strong>Philippines<\/strong><\/p>\n\n\n\n<p>Our trip to the Philippines in February was definitely the highlight of the year. We had an incredible time exploring several islands over more than three weeks. It was such an epic journey. People were kind, friendly, humble, and welcoming to tourists. We saw stunning coral reefs (I love snorkeling, and I was amazed by what we saw there), paradise-like beaches, and so much more. I honestly have no words to describe how amazing this trip was.<\/p>\n\n\n\n<div class=\"wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular\"><div class=\"\"><div class=\"tiled-gallery__gallery\"><div class=\"tiled-gallery__row\"><div class=\"tiled-gallery__col\" style=\"flex-basis:33.33333%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/El-Nido-Secret-Beach.webp?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"Secret Beach, El Nido\" data-height=\"800\" data-id=\"186352\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186352#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/El-Nido-Secret-Beach.webp\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/El-Nido-Secret-Beach.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><div class=\"tiled-gallery__col\" style=\"flex-basis:33.33333%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Manmade-Forest-Bohol.webp?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"Bohol, Philippines\" data-height=\"800\" data-id=\"186353\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186353#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Manmade-Forest-Bohol.webp\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Manmade-Forest-Bohol.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><div class=\"tiled-gallery__col\" style=\"flex-basis:33.33333%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Snorkeling-Apo-Island-From-Siquijor.webp?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"\" data-height=\"800\" data-id=\"186357\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186357#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Snorkeling-Apo-Island-From-Siquijor.webp\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Snorkeling-Apo-Island-From-Siquijor.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><\/div><\/div><\/div><\/div>\n\n\n\n<p>I&#8217;ve written a long list of travel guides for all the islands we visited in the Philippines and articles about some of the travel experiences and tours we did there.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/tripiwi.com\/philippines-three-weeks-itinerary\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Three Weeks in the Philippines \u2013 Our Itinerary<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/tripiwi.com\/el-nido-travel-guide\/\" target=\"_blank\" rel=\"noopener\" title=\"\">How to Spend Four Days in El Nido: Travel Guide and Best Things to Do<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/tripiwi.com\/siquijor-travel-guide\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Siquijor 3-Day Itinerary &amp; Travel Guide: Best Things to Do<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/tripiwi.com\/moalboal-travel-guide\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Moalboal Travel Guide: Best Things to Do &amp; 3-Day Itinerary<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/tripiwi.com\/category\/philippines\/\" target=\"_blank\" rel=\"noopener\" title=\"\">\u00bb All our Philippines Travel Guides \u00ab<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Bangkok and Dubai<\/strong><\/p>\n\n\n\n<p>On our way to the Philippines, we made a 4-day layover in <a href=\"https:\/\/tripiwi.com\/bangkok-travel-guide\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Bangkok <\/a>because we&#8217;re missing the city so much (the food, the people, the chaos). As always, we had a great and we can&#8217;t wait to come back. <a href=\"https:\/\/tripiwi.com\/category\/thailand\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Thailand <\/a>is always a good idea.<\/p>\n\n\n\n<p>On our way back, we made another 4-day layover, this time in <a href=\"https:\/\/tripiwi.com\/dubai-three-days\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Dubai<\/a>. We had been there already a couple of years ago. We revisited some of our favorite places and visited some new places like the Miracle Garden, and Museum of the Future.<\/p>\n\n\n\n<div class=\"wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular\"><div class=\"\"><div class=\"tiled-gallery__gallery\"><div class=\"tiled-gallery__row\"><div class=\"tiled-gallery__col\" style=\"flex-basis:63.96336%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Sumeru-Mountai-Entrance.webp?strip=info&#038;w=600&#038;ssl=1 600w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Sumeru-Mountai-Entrance.webp?strip=info&#038;w=900&#038;ssl=1 900w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Sumeru-Mountai-Entrance.webp?strip=info&#038;w=1024&#038;ssl=1 1024w\" alt=\"Sumeru Mountain, Thailand\" data-height=\"768\" data-id=\"186683\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186683#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Sumeru-Mountai-Entrance.webp\" data-width=\"1024\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Sumeru-Mountai-Entrance.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><div class=\"tiled-gallery__col\" style=\"flex-basis:36.03664%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Miracle-Garden-Dubai.webp?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"Miracle Garden, Dubai\" data-height=\"800\" data-id=\"186684\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186684#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Miracle-Garden-Dubai.webp\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Miracle-Garden-Dubai.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><\/div><\/div><\/div><\/div>\n\n\n\n<p><strong>Kefalonia and Zakynthos, Greece<\/strong><\/p>\n\n\n\n<p>In September, at the end of summer, we went on a relaxing beach trip to Greece. We visited the islands of Kefalonia and Zakynthos. We liked Kefalonia more for its local feel, but we really enjoyed both places, especially the food.<\/p>\n\n\n\n<div class=\"wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular\"><div class=\"\"><div class=\"tiled-gallery__gallery\"><div class=\"tiled-gallery__row\"><div class=\"tiled-gallery__col\" style=\"flex-basis:26.49526%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Navagio-Beach-Shipwreck-1.webp?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"\" data-height=\"800\" data-id=\"186670\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186670#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Navagio-Beach-Shipwreck-1.webp\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Navagio-Beach-Shipwreck-1.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><div class=\"tiled-gallery__col\" style=\"flex-basis:47.00947%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Petani-Beach-Drone-Shot-1.webp?strip=info&#038;w=600&#038;ssl=1 600w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Petani-Beach-Drone-Shot-1.webp?strip=info&#038;w=768&#038;ssl=1 768w\" alt=\"\" data-height=\"576\" data-id=\"186669\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186669#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Petani-Beach-Drone-Shot-1.webp\" data-width=\"768\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Petani-Beach-Drone-Shot-1.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><div class=\"tiled-gallery__col\" style=\"flex-basis:26.49526%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Mizithres-rocks-Kefalonia-1.webp?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"\" data-height=\"800\" data-id=\"186671\" data-link=\"https:\/\/randomnerdtutorials.com\/?attachment_id=186671#main\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Mizithres-rocks-Kefalonia-1.webp\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/Mizithres-rocks-Kefalonia-1.webp?ssl=1\" data-amp-layout=\"responsive\"\/><\/figure><\/div><\/div><\/div><\/div><\/div>\n\n\n\n<p>We have a travel guide for each of the islands with our itinerary.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/tripiwi.com\/zakynthos-travel-guide\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Zakynthos Travel Guide: Best Things To Do and 4-Day Itinerary (with Map)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/tripiwi.com\/kefalonia-travel-guide\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Kefalonia Travel Guide: 5-Day Itinerary and Best Things to Do (with Map)<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Our Random Thoughts<\/h2>\n\n\n\n<p>This section is a bit more personal, so if you&#8217;re only interested in the content about our blog, you can skip to the <a href=\"#wrap-up\" title=\"\">Wrapping Up section<\/a>.<\/p>\n\n\n\n<p><strong>About AI at the moment&#8230;<\/strong><\/p>\n\n\n\n<p>Overall, this was a great year for the Random Nerd Tutorials blog. We have amazing readers and followers who give us feedback, and that really motivates us to keep going, especially in times like these, when it feels like AI is taking over the world. <\/p>\n\n\n\n<p>Sometimes I wonder if what we\u2019re doing is still relevant, or if our content will lose value compared to AI and LLMs. One interesting thing I\u2019ve noticed is that many LLMs are trained on our content and many times give answers that come directly from our blog, sometimes even referencing it. That\u2019s encouraging, and I believe things will evolve so that creators get some form of reward for this. Some companies are already testing this idea, but it\u2019s still too early for us to try it in our blog.<\/p>\n\n\n\n<p><strong>Updating vs Creating New Content<\/strong><\/p>\n\n\n\n<p>This year was a bit difficult for me (Sara) in terms of content creation. Something that is really important, but that I don\u2019t like at all, is updating content, because I could have been using that time creating new tutorials and explore new subjects. This was one of those years when it seemed that suddenly everything stopped working. There were breaking changes in the newest version of the ESP32 core (version 3), many libraries we used in our projects were deprecated, and we had to adjust to use new ones, and so on&#8230; you get the idea.<\/p>\n\n\n\n<p>So, we spent a lot of time updating content this year. Sometimes, the same tutorial\/project was updated multiple times. I admit this is something that I don&#8217;t like to do, but it&#8217;s essential to keep our tutorials working, and I&#8217;m very proud that we always have the most up-to-date content, or at least we try to.<\/p>\n\n\n\n<p>I\u2019ve been a bit frustrated this year because I felt I couldn\u2019t dedicate as much time or deep focus to my work on the blog. I usually reply to our readers\u2019 questions quickly, but this year it felt like it took me longer to give a proper answer.<\/p>\n\n\n\n<p><strong>Happy News and a Big Change<\/strong><\/p>\n\n\n\n<p>And now, the biggest news of the year is that we&#8217;re going to have a <strong>baby boy<\/strong>. Expected to be born in a couple of months. Everything is going well with me (Sara), and the baby and I haven&#8217;t experienced any issues or complications until now.<\/p>\n\n\n\n<p>But, my first trimester was quite bad. I was constantly nauseous and hungry, and I couldn&#8217;t eat. I was sleepy and tired all the time. I couldn&#8217;t even be on the computer for more than 10 minutes without getting tired. That&#8217;s one of the reasons that I couldn&#8217;t be as productive as I wanted, and I couldn&#8217;t do many of the things I had planned. I was almost two complete months without working.<\/p>\n\n\n\n<p>Right now, I\u2019m getting a bit stressed because I don\u2019t have much time to get everything done before the due date. But fortunately, I\u2019m feeling much better. One of our biggest goals for next year is to keep up with our regular publishing schedule without missing a single week. I know it will be challenging, but we\u2019ll try.<\/p>\n\n\n\n<p>At the same time, we&#8217;ve been searching for a new house, and everyone who has been involved in the house search process knows how stressful it can be and how expensive things are for what they&#8217;re worth. We&#8217;ve been in this apartment for over 6 years now, and we absolutely love it here. But, we feel we need a little more space to have an appropriate office (out of our living room) and a proper living room too (that we don&#8217;t have at the moment) and other comforts that we don&#8217;t have here. This seems like the perfect moment to do the upgrade.<\/p>\n\n\n\n<p>In the last couple of days, we decided on a house that is still under construction, which means we can choose how we want it to be finished. There will be a lot of home automation implemented in the house as we are building it from scratch. We can\u2019t wait to see the construction progress and watch it being built.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wrap-up\">Wrapping Up<\/h2>\n\n\n\n<p>Overall, this was a great year for the blog and for both of us. We don&#8217;t have many plans for the next year right now (besides finishing the house and taking care of a little human). We want to maintain our publishing schedule and weekly newsletters, which may be a challenge next year, but we&#8217;ll try our best.<\/p>\n\n\n\n<p>We ask you to be a bit more patient if we&#8217;re taking longer to answer your questions at the moment and in the upcoming months.<\/p>\n\n\n\n<p>Thank you so much for your support, for following our work, and for sharing your feedback.<\/p>\n\n\n\n<p>Now it\u2019s your turn to <strong>share in the comments below<\/strong> anything about our work, your projects, or topics you\u2019d like us to publish.<\/p>\n\n\n\n<p>We hope you had an amazing year, and we wish you the best for the upcoming 2026 year.<\/p>\n\n\n\n<p>Thank you so much.<\/p>\n\n\n\n<p>Sara and Rui.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the beginning of a new year, it is time to share our Year in Review. Every year seems to pass faster than the last, and 2025 was no different. &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Year in Review 2025 \u2013 Random Nerd Tutorials\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/year-in-review-2025\/#more-186351\" aria-label=\"Read more about Year in Review 2025 \u2013 Random Nerd Tutorials\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":186544,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[305],"tags":[],"class_list":["post-186351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-0-other"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/12\/year-in-review-Random-Nerd-Tutorials-2025.jpg?fit=1920%2C1080&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/186351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=186351"}],"version-history":[{"count":10,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/186351\/revisions"}],"predecessor-version":[{"id":186719,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/186351\/revisions\/186719"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/186544"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=186351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=186351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=186351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}