Links

IoT Node - ESP32

This documentation includes hardware info, installation guidelines and sample code for your hardware.

Overall Info

IoT Node is an ESP32 development & application board. It features modular sensor slot, WiFi + Bluetooth connection and Arduino IDE compatible ESP32 SoC. The ESP32 chip has 4MB Flash, 520KB RAM, dual-core processor, and numerous peripheral functions. Programming is done by FT231X interface with automatic boot & reset circuit.

Illustration

IoT Node Front View

Connections

  • Power: The board powers from USB port or VUSB and GND pins. VUSB is 5V power input. Do not apply power to VUSB if USB port is connected.
  • Modular Slot: This slot exposes 3.3V power, I2C, interrupt, PWM, analog input and a GPIO pin with a plug-and-play interface.
  • Side Pins: Left pins include communication pins including I2C, UART, and SPI with one SS. Right pins include GPIO pins with analog input functionality. Also, power inputs - outputs, reset and boot pins are also available.
  • USB Port: For programming and data communication, a Micro USB 2.0 port is available.
  • Antenna: IoT Node includes 2.4GHz Wi-Fi and Bluetooth antenna. The antenna route is masked to protect it from external factors.

Pinout Diagram

The following diagram displays the pin connections of the board.
IoT Node Pinout Diagram

Specifications

IoT Node's specifications are as follows:
  • Controller: Espressif ESP32-PICO-D4 SoC.
  • Connectivity: Wi-Fi, Bluetooth, and BLE.
  • Functional pins count: 16.
  • Modular slot count: 1.
  • USB to UART: FTDI FT231X Full Speed USB to Full Handshake UART.
  • Dimensions: 57 x 40mm.
ESP32-PICO-D4's specifications are as follows:
  • Two independently controlled CPU cores with adjustable clock frequency, ranging from 80 to 240 MHz.
  • 4MB Flash, 520KB RAM.
  • Classic Bluetooth for legacy connections, also supporting L2CAP, SDP, GAP, SMP, AVDTP, AVCTP, A2DP (SNK) and AVRCP (CT).
  • Support for Bluetooth Low Energy (BLE) profiles including L2CAP, GAP, GATT, SMP, and GATT-based profiles like BluFi, SPP-like, etc.
  • Bluetooth Low Energy (BLE) connects to smart phones, broadcasting low-energy beacons for easy detection.
  • Wi-Fi 802.11 b/g/n (802.11n up to 150 Mbps).
  • 16 KB SRAM for RTC.

Prerequisites

To get maximum performance from your hardware, please make sure you'll meet the following requirements.

Hardware

To program IoT Node, you'll need a USB 2.0 port and Micro USB cable. The port and cable should supply 750mA power to the board.

Drivers

Communication between the host computer and IoT Node is performed by an onboard USB - Serial converter, called FT231X. If you're using Windows, it automatically installs the drivers when you connect IoT Node to your PC. Mac OS X and Linux systems do not require any driver installation.
If you need to install the drivers manually, you can download it from ftdichip.com/Drivers/VCP.htm address.

Software

Python is required to compile your code for ESP32. To download Python, go to python.org/downloads/ then download and install the latest version for your OS.

Arduino Core Set-up

Using Arduino IDE as the development platform is the easiest (but not the most advanced) method of programming ESP32. Arduino IDE supports not only Arduino boards but also third-party boards like ESP32.Installation
To download Arduino IDE, go to arduino.cc/en/main/software address and select the latest version for your OS. Then, install the Arduino IDE.

Set-up

To use ESP32 with Arduino IDE, you'll need to add ESP32 hardware library to the Arduino IDE. To do that, start Arduino IDE and open the Preferences window from the File menu. Then add the following line to the Additional Boards Manager URL area:
https://dl.espressif.com/dl/package_esp32_dev_index.json
Save and exit from the Preferences window.
Following, open Boards Manager from the Tools - Board menu. Find "esp32 by Espressif Systems" and install the latest version.

Programming

To test if everything is set-up correctly, create a new sketch with CTRL + N. Then select "Turta IoT Node" or "ESP32 Dev Module" from the Tools - Board menu. Delete all the lines and copy the following LED blink code to your sketch.
IoT_Node_Blink.ino
#define LED_PIN 13
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(200);
digitalWrite(LED_PIN, LOW);
delay(1000);
}
Finally, select IoT Node's COM port from the Tools - Port menu. Now, just click the upload button, and you should see your LED is blinking in a moment.

Troubleshooting

If you're experiencing difficulties while working with your device, please try the following steps.
Problem: The device is getting hot when connecting to the Wi-Fi. Cause: To connect Wi-Fi, ESP32 draws a high amount of power. When the connection process takes a long time, the whole board gets hot. Solution: This situation is in the nature of ESP32 and the wireless connection, and this is not a malfunction.
Problem: There is no COM port shown in the device manager. Cause: Your OS is getting difficulties loading the USB to serial converter drivers. Solution: Please download and install the FT231X drivers manually from the ftdichip.com/Drivers/VCP.htm address.
Problem: When uploading a sketch, you see -----_____-----_____ on the Arduino IDE, and then uploading fails. Cause: There is an auto boot and reset circuit on the IoT Node. Some host computers get difficulties triggering the circuit. Solution: In some cases, changing the USB port solves the problem. Therefore, use another USB port, if available. Please make sure your mainboard's chipset and USB host drivers are up to date.