LOGBOOK

HELP

1 / 104
time's up — finish this card
Other keys: show • Space: good • 1-4: rate • 0: skip • 5: flag
Topic ESP32 Development with ESP-IDF and FreeRTOS Tasks

Question

On an ESP32 dev board, why can't you wire a peripheral to just any GPIO pin? Which pins are restricted?

Answer

Some pins are already taken or behave specially: GPIO6-11 connect to the module's flash chip, GPIO34-39 are input only, GPIO0/2/5/12/15 are strapping pins that set the boot mode, GPIO1/3 are the serial port used for flashing, and the ADC2 pins stop working as analog inputs while Wi-Fi is on.

ESP32-DevKitC header pins coloured by restriction: free, strapping, input only, flash, UART0 and power.

* Both headers of the ESP32-DevKitC, coloured by what each pin is already used for. *

Pins Restriction What goes wrong if you ignore it
GPIO6-11 Wired to the SPI flash that holds the program Using them crashes the chip, because the CPU can no longer read its code
GPIO34-39 Input only, no internal pull-up or pull-down They cannot drive an LED; a button needs an external resistor
GPIO0, 2, 5, 12, 15 Strapping pins, read once at reset to choose the boot mode and flash voltage A circuit that pulls one the wrong way at power-on stops the board from booting or flashing
GPIO1, GPIO3 UART0 TX/RX, used by the flasher and the serial monitor Your device and the log output fight over the line
ADC2 pins (GPIO0, 2, 4, 12-15, 25-27) The Wi-Fi driver uses ADC2 Analog reads fail once Wi-Fi starts; use the ADC1 pins (GPIO32-39) instead

The pin diagram marks these with symbols (the ! next to the flash pins, "GPIO input only", the STRAP and ADC labels), and the label on the board header (IO5, D2, CMD) is the only link from the chip's GPIO number to the physical pin. Strapping pins differ in how much they matter. GPIO0 and GPIO2 choose between running the program and waiting for new firmware, and GPIO12 sets the flash voltage, so a wrong level there breaks booting. GPIO5 only sets the timing of the SDIO slave interface, which a normal boot from flash ignores, so it can drive an LED.

Go deeper:

or press any other key
Topic IoT Networking and Security

Question

What are the main security and networking challenges specific to edge computing with constrained devices?

Answer

Protecting data at rest, in motion and in use, on hardware whose resource budget can restrict cryptography and transport choices — which is why lightweight primitives and UDP can be useful design choices.

The data-centred challenges first:

  • Data storage — readings must be securely stored both on the device and in the cloud: encryption of data at rest.
  • Data transmission — the link must be secured: encryption of data in motion.
  • Data usage — data is fed into analytical processing and potentially fused with information from other sources to derive actionable insights. This is the sneaky one: the fusion can create sensitivity that no individual reading had.
  • Privacy — preserving mechanisms are needed from the start, not retrofitted.

Then the constraint-driven ones:

  • Security for resource-constrained edge devices — the umbrella problem.
  • Lightweight cryptographic primitives, where the energy budget and computational power make conventional implementations too costly.
  • Software and firmware updates, which must work in the field.
  • Networking — UDP can reduce transport overhead; where TCP fits, it remains an option. Choose DTLS or TLS to match the transport.
  • End-to-end security and privacy across all of the above.

Tip: the data-usage point is the one people skip. A stream of household electricity readings is dull; fused with a calendar it reveals when the house is empty. Ask not only "is this reading sensitive?" but "what does it become when combined?"

Go deeper:

or press any other key