You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/blog/2025/02/rainmaker-over-thread/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ Additional benefits of using ESP RainMaker over Thread devices are:
42
42
- Direct point-to-point communication with the cloud, enabling direct remote control and device management such as cloud-based fleet management and OTA.
43
43
- Easy and secure network configuration with local and remote device control using phone apps.
44
44
- Compatibility with any Thread Border Routers that support NAT64, such as Apple HomePod and [Espressif's Thread Border Router solution](https://developer.espressif.com/blog/espressif-thread-border-router/).
45
-
- Supports a wide range of [smart home device types](https://rainmaker.espressif.com/docs/standard-types/#devices), enabling rapid productization of Thread-based products.
45
+
- Supports a wide range of [smart home device types](https://docs.rainmaker.espressif.com/docs/product_overview/concepts/terminologies#devices), enabling rapid productization of Thread-based products.
46
46
47
47
Thread device provisioning and control in the ESP RainMaker app:
Copy file name to clipboardExpand all lines: content/blog/2025/03/security-in-esp-rainmaker/index.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ Secure storage refers to the application-specific data that can be stored in a s
39
39
40
40
ESP-IDF provides the NVS (Non-Volatile Storage) management component which allows encrypted data partitions. This feature is tied with the platform Flash Encryption feature described earlier.
41
41
42
-
Please refer to [NVS Encryption](hhttps://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/storage/nvs_flash.html#nvs-encryption) for detailed documentation on the working and instructions to enable this feature.
42
+
Please refer to [NVS Encryption](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/storage/nvs_flash.html#nvs-encryption) for detailed documentation on the working and instructions to enable this feature.
43
43
44
44
In the ESP RainMaker context, each device has a unique key-certificate pair that helps the device identify itself to the ESP RainMaker cloud. We utilize the encrypted storage to store this information, to protect it from getting cloned across devices.
45
45
@@ -75,7 +75,7 @@ Before finalizing the images on the device, the devices perform a signature veri
75
75
76
76
#### Secure Signing
77
77
78
-
As mentioned earlier in the section for [Secure Boot](#secure-boot), ESP RainMaker makes it easier to manage OTA for devices with secure boot enabled. You can select appropriate signing key while creating an OTA Job. With the "Auto select key" option as mentioned [here](https://rainmaker.espressif.com/docs/secure-signing#ota-upgrades), even selecting the key is not required as the cloud backend can automatically choose the correct key as per the information reported in the node config and send a signed image during OTA.
78
+
As mentioned earlier in the section for [Secure Boot](#secure-boot), ESP RainMaker makes it easier to manage OTA for devices with secure boot enabled. You can select appropriate signing key while creating an OTA Job. With the "Auto select key" option as mentioned [here](https://docs.rainmaker.espressif.com/docs/dev/firmware/fw_usage_guides/secure-signing#ota-upgrades), even selecting the key is not required as the cloud backend can automatically choose the correct key as per the information reported in the node config and send a signed image during OTA.
Copy file name to clipboardExpand all lines: content/blog/2025/04/soft-ap-tutorial/index.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,9 +63,9 @@ Before starting this tutorial, ensure that you
63
63
- Can compile and flash the [`hello_world`](https://github.com/espressif/esp-idf/tree/master/examples/get-started/hello_world) example. Two main methods followed below are using `idf.py` directly (CLI approach) or using the VS Code ESP-IDF Extension. If required, you can follow the instructions in the [ESP-IDF Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/get-started/index.html) guide.
64
64
- Have an Espressif evaluation board or another compatible board for flashing the code. In this tutorial we will use the [ESP32-C3-DevkitM-1](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c3/esp32-c3-devkitm-1/user_guide.html) but any Espressif evaluation board will work just as well. If you built your own board, you might need an [ESP-PROG](https://docs.espressif.com/projects/esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html) programmer.
65
65
- Understand the difference between a Wi-Fi access point and a Wi-Fi station.
66
-
- (Optional) Have a basic knowledge of the [logging system](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/log.html#how-to-use-logging-library) in Espressif.
66
+
- (Optional) Have a basic knowledge of the [logging system](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/log.html#use-logging-library) in Espressif.
67
67
68
-
If you're not quite comfortable with any of the above steps yet, consider checking out the [ESP-IDF with ESP32-C6 Workshop](https://preview-developer.espressif.com/pr404/workshops/esp-idf-with-esp32-c6/). These resources can help you get hands-on experience with setup, flashing, and basic debugging before diving into this tutorial.
68
+
If you're not quite comfortable with any of the above steps yet, consider checking out the [ESP-IDF with ESP32-C6 Workshop](../../../../workshops/esp-idf-with-esp32-c6/). These resources can help you get hands-on experience with setup, flashing, and basic debugging before diving into this tutorial.
69
69
70
70
71
71
## Starting a new project from `hello_world`
@@ -323,7 +323,7 @@ void wifi_init_softap()
323
323
}
324
324
```
325
325
326
-
`ESP_LOGI` is a logging command which prints an information message on the terminal. If you're unsure about it, check the [logging library documentation](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/log.html#how-to-use-logging-library).
326
+
`ESP_LOGI` is a logging command which prints an information message on the terminal. If you're unsure about it, check the [logging library documentation](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/log.html#use-logging-library).
327
327
328
328
### Handle Wi-Fi Events
329
329
@@ -389,4 +389,4 @@ This serves as a foundation for building more advanced Wi-Fi applications, such
389
389
390
390
### Next step
391
391
392
-
> _Next Step_: Check the [basic http tutorial](/blog/2025/06/basic_http_server/)
392
+
> _Next Step_: Check the [basic http tutorial](/blog/2025/06/basic_http_server/)
Copy file name to clipboardExpand all lines: content/blog/2025/06/basic_http_server/index.md
+13-15Lines changed: 13 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,16 +4,16 @@ date: "2025-06-26"
4
4
showAuthor: false
5
5
summary: "This article shows how to create a simple HTTP server. It explains the functions you need and the setup required. After reading this, you should be able to create your own HTTP server on Espressif devices."
6
6
authors:
7
-
- "francesco-bez"
7
+
- "francesco-bez"
8
8
tags: ["ESP32C3", "HTTP", "Connectivity"]
9
9
---
10
10
11
-
## Introduction
11
+
## Introduction
12
12
13
13
This article is Part 2 of our [soft-AP tutorial](/blog/2025/04/soft-ap-tutorial/). If you're unfamiliar with what a soft-AP is or how to set one up, we recommend starting with the [Part 1](/blog/2025/04/soft-ap-tutorial/).
14
14
15
-
In this part, the main source file will be called `basic_http_server.c`. If you're starting here, you can use the same main filename, while if you're coming from Part 1, there is no need to change it. Just keep in mind that when you read `basic_http_server.c` we're talking about your `basic_soft_ap.c`.
16
-
15
+
In this part, the main source file will be called `basic_http_server.c`. If you're starting here, you can use the same main filename, while if you're coming from Part 1, there is no need to change it. Just keep in mind that when you read `basic_http_server.c` we're talking about your `basic_soft_ap.c`.
16
+
17
17
You can find the complete code in the `tutorial-http-server` folder in this [GitHub repository](https://github.com/FBEZ-docs-and-templates/devrel-tutorials-code/tree/main/tutorial-http-server).
18
18
19
19
In this tutorial, we'll walk through the following steps:
This makes your server setup more robust and easier to debug. If you're unsure about `ESP_LOGI` and `ESP_LOGE` macros, you can check Espressif's [loggin library documentation](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/log.html#how-to-use-logging-library).
129
+
This makes your server setup more robust and easier to debug. If you're unsure about `ESP_LOGI` and `ESP_LOGE` macros, you can check Espressif's [loggin library documentation](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/log.html#use-logging-library).
130
130
131
131
132
132
## HTTP URI Management
@@ -204,7 +204,7 @@ caption="Fig.2 - URI registration and management overview"
Since the response is a string, you can return HTML, JSON, or plain text with no difference in usage.
249
249
{{< /alert >}} -->
250
250
251
251
Your code should now resemble [this one](https://github.com/FBEZ-docs-and-templates/devrel-tutorials-code/blob/main/tutorial-http-server/main/basic_http_server.c).
252
252
253
-
## View the web page in the browser
253
+
## View the web page in the browser
254
254
255
-
Open the web browser again on your connected device and enter the IP address in the address bar. As shown in Fig.3, you should now get the HTML page that we sent in the `hello_get_handler` function.
255
+
Open the web browser again on your connected device and enter the IP address in the address bar. As shown in Fig.3, you should now get the HTML page that we sent in the `hello_get_handler` function.
256
256
257
257
{{< figure
258
258
default=true
@@ -261,7 +261,7 @@ height=100
261
261
caption="Fig. 3 – HTML page displayed"
262
262
>}}
263
263
264
-
You can now change the HTML and add additional routes.
264
+
You can now change the HTML and add additional routes.
265
265
266
266
## Conclusion
267
267
@@ -270,5 +270,3 @@ You've now set up a basic HTTP server on your Espressif device in soft-AP mode.
270
270
This forms a solid foundation for building more interactive web-based interfaces on your device. You can now easily expand by adding more routes, returning different data formats, or handling user input.
271
271
272
272
Check out the full example on [GitHub](https://github.com/FBEZ-docs-and-templates/devrel-tutorials-code/tree/main/tutorial-http-server), and keep experimenting!
Copy file name to clipboardExpand all lines: content/blog/2025/07/faster-device-restoration/index.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,15 +28,15 @@ In this post, we examine the ESP-IDF boot-up flow and highlight strategies to **
28
28
29
29
The ESP-IDF boot process consists of multiple stages that ensure secure and reliable startup:
30
30
31
-
1.**First-Stage Bootloader (ROM Bootloader):**
31
+
1.**First-Stage Bootloader (ROM Bootloader):**
32
32
- Initializes basic components and loads the second-stage bootloader from flash (basic read mode).
33
33
- Performs SHA-256 hash validation of the bootloader image. If Secure Boot is enabled, digital signature verification (e.g., RSA or ECDSA) is also done.
34
34
35
-
2.**Second-Stage Bootloader:**
35
+
2.**Second-Stage Bootloader:**
36
36
- Stored in flash and performs more advanced tasks like clock and peripheral initialization (e.g., flash quad mode).
37
37
- Verifies the application image’s integrity using a SHA-256 hash and, if Secure Boot is enabled, cryptographic signature checks.
38
38
39
-
3.**Application Execution:**
39
+
3.**Application Execution:**
40
40
- Once verified, control is passed to the application image.
41
41
42
42
This flow ensures system integrity and protection, but adds latency — particularly as the size of the application image increases.
@@ -73,8 +73,8 @@ Let's see how the default device restoration time looks like with 2MB applicatio
73
73
74
74
ESP-IDF also provides configuration options to **skip application image integrity checks** - only for Secure Boot disabled cases. These options include:
These options can reduce boot time by avoiding application integrity step. However, **this approach is not recommended** in most production use-cases, as it could **mask potential flash corruption** and lead to the execution of tampered or damaged firmware. For safety and reliability, it is advisable to keep all integrity checks enabled.
80
80
@@ -133,7 +133,7 @@ However, if you include additional device driver code, ensure the total size fit
133
133
134
134
## Practical Example and Benchmark
135
135
136
-
We created a demo application to test and validate the bootloader NVS restoration method. You can find the source code here:
136
+
We created a demo application to test and validate the bootloader NVS restoration method. You can find the source code here:<br>
137
137
👉 [Example: Faster Device State Restoration](https://github.com/Harshal5/esp-idf-faster-device-state-restoration-example)
138
138
139
139
The project simulates a lighting product where the last known state is restored during the bootloader stage.
@@ -171,4 +171,3 @@ To reduce device boot time:
171
171
This method provides the best of both worlds — **faster restoration** without sacrificing **security or reliability**.
Copy file name to clipboardExpand all lines: content/blog/2025/08/adc-performance/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -235,7 +235,7 @@ As you can see from the graphs presented above, some SoCs do not support full-sc
235
235
236
236
## Noise Impact
237
237
238
-
Noise can affect ADC measurements, causing variations between readings of the same input voltage. The [documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc_calibration.html#minimize-noise) recommends connecting a bypass capacitor (e.g., a 100 nF ceramic capacitor) to the ADC input pad to minimize noise. In addition, the technique of multisampling can further reduce the impact of noise.
238
+
Noise can affect ADC measurements, causing variations between readings of the same input voltage. The [documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc/adc_calibration.html#minimize-noise) recommends connecting a bypass capacitor (e.g., a 100 nF ceramic capacitor) to the ADC input pad to minimize noise. In addition, the technique of multisampling can further reduce the impact of noise.
0 commit comments