ESP32 Lab Notes — My First Experiments
Over the last weeks I started experimenting with ESP32 boards, embedded development, UART communication, and low-level hardware concepts.
This post documents my setup, troubleshooting sessions, lessons learned, and ideas for future projects.
Hardware Used
Boards
- ESP32-C3
- ESP32 SuperMini
- ESP32 Dev Boards
- HW-131 power module
- USB-C ESP32 boards with dual ports (
USBandCOM)
Accessories
- Breadboards
- USB-C cables
- Jumper wires
- Multimeter / tester
- External power supplies
- Mac Mini for development
Understanding the USB Ports
One of the first confusing things was discovering that some ESP32 boards expose two USB-C ports.
COM Port
Usually connected to:
- UART bridge
- flashing firmware
- serial monitor
- debugging logs
This is typically the port used by:
idf.py -p /dev/cu.wchusbserialXXXX monitor
USB Port
Usually connected directly to the ESP32 USB peripheral.
Can be used for:
- native USB
- HID devices
- keyboard/mouse emulation
- USB networking
- custom firmware features
Serial Communication & UART
The ESP32 serial monitor runs over UART.
Typical baud rate:
115200
This defines the speed of serial communication.
OSI Perspective
UART is mostly Layer 1 / Layer 2 adjacent:
- Physical signaling
- byte transport
- no routing
- no packet switching
Compared to:
| Protocol | Typical Use |
|---|---|
| UART | Serial debugging |
| SPI | Fast chip communication |
| I2C | Sensor buses |
| CAN | Automotive/industrial |
| TCP/IP | Network communication |
| HTTP | Application layer APIs |
ESP-IDF Setup
I experimented with Espressif’s official SDK:
- ESP-IDF
idf.pyesptool- serial monitoring
Export Environment
Fish shell:
source ~/esp/esp-idf/export.fish
Common Commands
Monitor serial logs
idf.py -p /dev/cu.wchusbserialXXXX monitor
Detect chip
esptool chip-id
Flash firmware
idf.py flash
Troubleshooting Serial Detection
One major issue:
Found 0 serial ports...
Things checked:
- USB cable quality
- power-only cables
- USB permissions
- drivers
- rebooting the board
- disconnecting/reconnecting
- checking
/dev/cu.* - verifying CH340/WCH serial devices
Arduino IDE vs ESP-IDF
I tested both environments.
Arduino IDE
Pros:
- fast setup
- beginner friendly
- huge ecosystem
Cons:
- abstracts many low-level details
- harder to debug internals
ESP-IDF
Pros:
- official framework
- lower-level access
- RTOS integration
- production-grade tooling
Cons:
- steeper learning curve
Power Supply Lessons
I experimented with powering modules using:
- 12V 300mA adapters
- 12V 2A adapters
One module was damaged after using a larger supply.
Important lesson:
Voltage matters first
Current is available, not forced.
But:
- unstable supplies
- incorrect regulators
- wiring mistakes
- reverse polarity
can still destroy components.
Learning Electronics Basics
Topics explored:
Measuring Voltage
Using a tester/multimeter to:
- measure DC voltage
- identify polarity
- verify outputs
Identifying 220V Wires
Important concepts:
- phase/live
- neutral
- grounding
And understanding why reversing connections may still work electrically but can reduce safety.
ESP32 Project Ideas
Distributed Sensor Network
Small IoT infrastructure:
- multiple ESP32 publishers
- one central consumer
- MQTT messaging
- environmental sensors
BLE Tracker
Using BLE advertisements to:
- detect nearby devices
- estimate presence
- track movement patterns
WiFi Sniffer
Educational exploration of:
- WiFi beacons
- probe requests
- RSSI analysis
CAN Bus Experiments
Learning:
- SocketCAN
candumpcansendpython-can
Potential use cases:
- automotive reverse engineering
- industrial protocols
- telemetry
RF & Wireless Curiosity
Topics I want to explore further:
- WiFi
- Bluetooth Low Energy
- NRF24
- CC1101
- RTL-SDR
- RF packet analysis
Comparisons:
| Module | Focus |
|---|---|
| NRF24 | Simple 2.4GHz communication |
| CC1101 | Sub-GHz RF experimentation |
| RTL-SDR | Signal analysis / SDR |
| ESP32 | WiFi + BLE embedded platform |
ESP32 + AI
One interesting direction is combining ESP32 hardware with local AI systems.
Potential architecture:
ESP32 -> MQTT -> Local LLM -> Analysis Dashboard
Applications:
- sensor anomaly detection
- HTTP traffic correlation
- distributed telemetry
- smart home automation
- industrial monitoring
Future Experiments
Planned projects:
- BLE proximity detector
- ESP32 mesh networking
- MQTT infrastructure
- LoRa communication
- CAN bus dashboard
- SDR signal visualization
- custom PCB design
- low-power battery deployments
Final Thoughts
The ESP32 ecosystem is an excellent bridge between:
- software engineering
- networking
- embedded systems
- RF experimentation
- IoT infrastructure
- low-level debugging
Coming from backend/security engineering, working directly with hardware changes the perspective completely.
You stop thinking only in APIs and services and start thinking about:
- signals
- timing
- power
- buses
- protocols
- physical constraints
And that opens a completely different layer of computing.