User Manual

Introduction

ESP32 Open IoT and IIoT Gateways (P01 & P02)

Open IoT Gateway is also called as a PAC (Programmable Automation Controller). PAC products combine the functionality and openness of a PC, the reliability of a programmable logic unit like PLC and the intelligence of I/O modules with flexible software tools for a wide range of applications from data acquisition, process control, motion control to energy and building management.

Our PAC family includes FreeRTOS PACs and MicroPython PACs for different requirements in OS, CPU and development platform.

The P01 and P02 Gateways are based on ESP32 Xtensa LX6.

03721241-0db7-42b5-aad8-857a25a30481.png

If you want to get started, make sure you have complete set of:

c151dd12-f0ae-47d7-b01b-a1520c0afbba (1).png

Hardware

ESP32 Open IoT and IIoT Gateways (P01 & P02)

Features

Features

5e0098af-74b7-4f6a-84e2-63efb7875497 (1).png

Open IoT gateway

ESD protection for the RS485 data line

Power supply: +12 to +30 VDC

Transmission speed up to 115200 bps

Tx, Rx and power LED indicators

RS485 embedded termination 120 ohm

Optional WiFi

Operating temperatures: -40°C to +75°C

DIN-rail mounting

Dimensions: 90x56.4x22.5 mm

3 years warranty

Customization of OEM is welcomed

Frame ground FG

Electronic circuits are constantly prone to electrostatic discharge ESD. Redisage Electronics modules feature a design for the frame ground terminal block FG. The frame ground provides a path for bypassing ESD, which provides enhanced static protection ESD abilities and ensures the module is more reliable. Connecting FG terminal block to the earth ground will bypass the ESD disturbances outside the device so will provide a better level of protection against ESD.

Frame Ground FG connection reference drawing is provided below.

If earth ground is not available FG can be left floating or it can be connected with the power supply GND.

Specifications‎‎‎

Redisage PN

P01

P02

Ports

RS232

-

-

RS485

-

-

RS232/RS485

2x

2x

Microcontroller

ESP32

WiFi

N/A

802.11 b/g/n 150 Mbps /

2.4 GHz

Bluetooth

N/A

v4.2 BR/EDR and BLE

SMA socket connector for WiFi/BT antenna

:x:

:white_check_mark:

Tactile switch

:white_check_mark:

:x:

Power

Voltage

12-30 VDC

Power

< 1 W

Frame ground protection

yes

Baud rate

up to 115200 bps

LED indicators

power, link activity, programmable RGB

RS485 termination

120 ohm manually enabled

Connector

RS232/RS485

8-pin terminal block max. 2.5 mm2 wire

Power

3-pin terminal block max. 2.5 mm2 wire

Ethernet

RJ45

Transmission
distance

RS485

max. 1,200 m at 9.6 kbps; max. 400 m at 115.2 kbps
(Belden 9841 2P twisted-pair cable, if different cables are used,
the transmission distance may change)

RS232

max. 15 m at 115.2 kbps

Mounting and enclosure

DIN rail, plastic PA - UL 94 V0, black/green

Temperatures

-40°C to +75°C operating and storage

Humidity

10 - 90% RH, non-condensing

ESD protection

±4 kV contact discharge / ±8 kV air discharge

Certification 

CE, RoHS, EMC, LVD

Norms

61000-6-2 - Immunity standard for industrial environments

61000-6-4 - Emission standard for industrial environments

LED indicators

Gateway P01
Gateway P02
image.png image.png
LED indicator Color Function LED indicator Color Function
PW Blue Power PW Blue Power
ETH Green Network activity ETH Green Network activity
ST Red / Green / Blue Programmable LED ST Red / Green / Blue Programmable LED

Pin assignments

P01

P01 Name Plate Label v1 #1099.png

P02

P02 Name Plate Label v1 #1098.png

Board overview

1e6588f9-6051-4dc4-b380-0d4c5910c79c (1).png

The complete Open IoT and IIoT Gateway kit consists of:

image-4.webp

Power input pinout

image.png

Test connectors

Provided test connectors can be used for board debugging.

Button / antenna

The antenna connector can be replaced with a button which can be used for, for example, restoring device to the default configuration, saved in EEPROM.

image-30.webp

In order to use the button instead of the antenna, the R52 resistor (near the microUSB connector, on the bottom side) has to be soldered to the board.

RS232 ports

The device has 2 independent RS485 ports.

image.png

RS485 ports

The device is equipped with two MAX481 transceivers that enable communication in the RS485 standard on two channels independently.

image.png

As the RS485_1 / RS232_1 and RS485_2 / RS232_2 standards use common microcontroller serial ports, it is possible to use only 1 interface from the pair at a time.

ETHERNET

In order to support the Ethernet network interface communication, the network adapter available in the kit must be installed on the module (pay attention to its correct installation). This interface is supported by the external IP101G physical layer which communicates with the ESP32 microcontroller.

image-33.webp

Programming

The device can be programmed only with the external hardware programmer connected via Tag-Connect connector.

image-6.webp

Programming

ESP32 Open IoT and IIoT Gateways (P01 & P02)

Install IDE

Please, follow the instructions located here to install the ESP-IDF framework on your local machine. ESP-IDF is available both on Windows and Linux. It can also be installed through some popular IDEs: VS Code or Eclipse.

ESP-IDF is required to build the examples written in C for the device. However, it can be also programmed in MicroPython (Thonny).

Connect the programmer

ESP32 IoT and IIoT Gateways can be programmed only with the external hardware programmer (for example P03) connected via the Tag-Connect connector. After connecting it to the board and a PC, a new COM port should be available.

image-4.webp image-6.webp

Connect the power supply

In order to successfully flash the device, it has to be connected to the power supply (9 - 30 VDC) using the VCC and GND connectors.

image.png

Create your own programs

After all of the above steps are done, the device should be ready to be programmed.

Build, flash and monitor the device

VS Code ESP-IDF extension

  1. Make sure that there is a ".vscode" folder in the project tree. If not, add it with the "F1" + "ESP-IDF: Add vscode Configuration Folder" command.

    image.png


  2. Set your device target with "F1" + "ESP-IDF: Set Espressif Device Target". Then choose current workspace folder and then "esp32". Lastly choose "Custom board" and confirm it.

    image.png

    image.png

    image.png

  3. Set port where the device is attached to with "F1" + "ESP-IDF: Select Port to Use (COM, tty, usbserial)".

    image.png

  4. Finally select "UART" flash method with "F1" + "ESP-IDF: Select Flash Method".

    image.png

    image.png


  5. Build your project, flash it to the device and open a serial monitor with the "F1" + "ESP-IDF: Build, Flash and Start a Monitor on your Device". If everything was set properly the serial monitor should open after a successful flash.

    image.png

Thonny

  1. Hit "F5" button in Thonny IDE to run the current script.

    image.png


  2. Click "File" -> "Save copy..." -> "MicroPython device" and save this file as "main.py" in order to execute this code every time the gateway powers on.

    image.png

    image.png

    image.png

Other IDEs

ESP32 Open IoT and IIoT Gateways (P01 & P02)

The device can be programmed also in other development environments. Programming gateways is supported on every popular operating systems like Windows, Linux or MAC OS. This document was prepared in reference to Windows.

ESP-IDF framework

The main tool is ESP-IDF framework provided by Espressif. To get more information about installation, visit manufacturer’s 
website: Get Started - ESP32 -  — ESP-IDF Programming Guide latest documentation.

Manual Installation of ESP-IDF: Standard Setup of Toolchain for Windows - ESP32 -  — ESP-IDF Programming Guide latest documentation.

During the ESP-IDF installation you might be asked for install Eclipse additionally.

After successful process it is necessary to add new enviroment variables.

Variables names:

f8899686-b97f-47ad-9a49-32b7a88b725c.png

11e4e082-6da0-4bff-9e2b-33098e5062b4.png

Finally you can run ESP-IDF CMD and start to manage your project. There should be an icon on the desktop or easy access to ESP-IDF.

e4d424cb-4a06-45e7-9c6b-3160777c93fe.png

Create new project

idf.py create-project -p <name>

Build project

idf.py -p <port> build

Flash project

idf.py -p <port> flash

idf.py -p <port> flash monitor

Erase flash

esptool.py --port <port> erase_flash

MinGW

Download MinGW with GUI from MinGW - Minimalist GNU for Windows and install on your PC. After a successful installation run MinGW Installation Manager (GUI).

04cab29c-1dae-42b6-a0c6-d013d37ffadd.png

Now we need to install Basic Setup. Right click on every square fields in “Package” tab, then “Mark for Installation”. Next, in “Installation” tab click on “Apply Changes” and then “Apply”.

67a06d6c-6dc6-4b4d-a4c4-25afbe706867.png 5e24edfe-6c42-48ba-bfb8-7701b7b71c77.png

To check if the installation is successful, open Command line and type:

gcc --version

d9abc443-bde5-4a2d-b6c4-55c0820cbe99.png

IDE

You can edit code in your preferred IDE as ESP-IDF is handling the final build and flash.

Recommanded IDEs:

Visual Studio Code

1dbaaf87-a363-40c9-a7e7-0ac416be86bd.png

7bfa65be-c841-4617-a3e5-b5c0a473d15d.png

5aa5ab7d-6595-47e4-bdd4-f9b552cbee39.png

c3529dd3-920f-44dd-beb6-9629385e9aaf.png

Visual Studio Code provides an extension “Espressif IDF” which has some issues at this moment. However it is not essential for editing code.

CodeBlocks

cmake -G "CodeBlocks - MinGW Makefiles"

1ccc0952-02b0-414f-93ee-aae2e4ce9fd7.png

0b03cd5a-5116-422e-a5de-c47d6e7a569b.png

7d20079f-f797-4a2d-9d74-4eb40a308cb3.png

06b76408-0f58-47f0-8894-a3e115cf8562.png

Thonny IDE

esptool.py --port <COMX> erase_flash

5af1e224-2094-49a3-96c6-80545ce5d8f5.png

 esptool.py --port <COMX> write_flash -z 0x1000 <name_of_the_bin_file>

2aae30b3-126b-420b-ad12-a8244c9384de.png

e6a97031-3316-44aa-b31a-8259727b87d8.png

2ba64294-f54b-4a64-a837-dae5c60e23d9.png

57f3a021-1371-45d6-b13f-c21b10f9d21c.png

f70a61dc-1ec9-4ea3-9960-e90cfd98c478.png

Uploading firmware

To upload firmware, you need to use external programmer with Tag-connect.

3665aeb3-48ae-44d7-9f2d-4d2decaefb59 (1).png

Pin Map

ESP32 Open IoT and IIoT Gateways (P01 & P02)

CGE2 rev. 4.1

Element Connection
LED
Power LED7 (blue) +3V3
ETHERNET LED1 (green) ETH_LED3/PHY_AD3
RGB programmable LED5 (red) Q6
RGB programmable LED5 (blue) Q5
RGB programmable LED5 (green) Q4
74HC595BQ shift register
VCC +3V3
Q7S Q7S
Q0 Q0
Q1 Q1
Q2 Q2
Q3 RS485_TER_EN2
Q4 Q4
Q5 Q5
Q6 Q6
Q7 RS485_TER_EN1
MR/ CHIP_PU (pull up)
OE/ GND
DS SERIAL_REG_DATA
SHCP SHCP
STCP STCP (pull down)
GND GND
TPAD GND
MAX481CSA_1 UART RS485 transceiver
DI UART1_TX
DE UART1_DIR
RE/ UART1_DIR
RO UART1_RX
A A_1
B B_1
MAX481CSA_2 UART RS485 transceivers
DI UART2_TX
DE UART2_DIR
RE/ UART2_DIR
RO UART2_RX
A A_2
B B_2
ST3232BTR RS232 driver and receiver
C1+ C1 (100 nF)
C1- C1 (100 nF)
C2+ C2 (100 nF)
C2- C2 (100 nF)
T1IN

UART1_TX

T2IN

UART2_TX

R1OUT

UART1_RX

R2OUT

UART2_RX

V+

C3 (100 nF)

V-

C4 (100 nF)

T1OUT

TXD1

T2OUT

TXD2

R1IN

RXD1

R2IN

RXD2

USBLC6-2SC6 ESD protection

VCC

USB_V

GND

GND

IO1_A

DATA-

IO1_B

CONSOLE_RX

IO2_A

DATA+

IO2_B

CONSOLE_TX

MicroUSB type B

V_BUS

USB_V

D-

DATA-

D+

DATA+

ID

GND

GND

GND

M24C02-RMC6TG_1 I2C EEPROM

E0

GND

E1

GND

E2

+3V3

VSS

GND

VCC

+3V3

WC/

GND

SCL

I2C_SCL

SDA

I2C_SDA

M24C02-RMC6TG_2 I2C EEPROM

E0

+3V3

E1

+3V3

E2

GND

VSS

GND

VCC

+3V3

WC/

GND

SCL

I2C_SCL (pull up)

SDA

I2C_SDA (pull up)

GD25Q64CSIGTR QSPI FLASH

CS#

SPICS0

SO

SPIQ

WP#

SPIWP

VSS

GND

VCC

VDD_SDIO

HOLD#

SPIHD

SCLK

SPICLK

SI

SPID

IP101GRI ETHERNET transceivers

MDC

ETH_MDC

MDIO

ETH_MDIO

MDI_TP

TXD+

MDI_TN

TXD-

MDI_RP

RXD+

MDI_RN

RXD-

X2 -
X1 GND
RESET_N ETH_RESET_N (pull up)
ISET ETH_ISET (pull down)
LED0/PHY_AD0 ETH_LED0/PHY_AD0 (pull up)
LED3/PHY_AD3 ETH_LED3/PHY_AD3 (pull down)
TEST_ON -
REGOUT C21 (100 nF), C35 (10 uF)
VDDIO +3V3
AVDD33 +3V3
GND GND
TXEN ETH_TX_EN
TXER/FXSD -
TXCLK/50M_CLKI ETH_CLK_IN
TXD0 ETH_TXD0
TXD1 ETH_TXD1
TXD2 -
TXD3 -
RXDV/CRS_DV/FX_HEN ETH_RX_CRS_DV
RXCLK/50M_CLKO -
RXD0 ETH_RXD0
RXD1 ETH_RXD1
RXD2 -
RXD3 -
RXER/INTR_32 -
COL/RMII ETH_COL/RMII (pull up)
CRS/LEDMOD -
ESP32-DOWD
VDDA_1 +3V3
LNA_IN ANT
VDD3P3_1 VDD3P3 (+3V3)
VDD3P3_2 VDD3P3 (+3V3)
SENSOR_VP (GPI36) USB_DETECT (pull down)
SENSOR_CAPP (GPI37) UART2_RX
SENSOR_CAPN (GPI38) GPI_38
SENSOR_VN (GPI39) P_DETECT (pull up)
CHIP_PU CHIP_PU (pull up)
VDET_1 (GPI34) BUTTON_IN (pull up)
VDET_2 (GPI35) UART1_RX
32K_XP (GPIO32) UART1_TX
32K_XN (GPIO33) SHCP
GPIO25 ETH_RXD0
GPIO26 ETH_RXD1
GPIO27 ETH_RX_CRS_DV
MTMS (GPIO14) UART1_DIR
MTDI (GPIO12) UART2_DIR
VDD3P3_RTC +3V3
MTCK (GPIO13) I2C_SDA (pull up)
MTDO (GPIO15)

STCP (pull down)

GPIO2 I2C_SCL (pull up)
GPIO0 ETH_CLK_IN, SPICS1
GPIO4 SERIAL_REG_DATA
GPIO16 ETH_CLK
VDD_SDIO VDD_SDIO
GPIO17 SPICS1
SD_DATA_2 (GPIO9) SPIHD
SD_DATA_3 (GPIO10) SPIWP
SD_CMD (GPIO11) SPICS0
SD_CLK (GPIO6) SPICLK
SD_DATA_0 (GPIO7) SPIQ
SD_DATA_1 (GPIO8) SPID
GPIO5 UART2_TX
GPIO18 ETH_MDIO
GPIO23

ETH_MDC

VDD3P3_CPU +3V3
GPIO19 ETH_TXD0
GPIO22 ETH_TXD1
U0RXD (GPIO3) CONSOLE_RX
U0TXD (GPIO1) CONSOLE_TX
GPIO21 ETH_TX_EN
VDDA_2 +3V3
XTAL_N XTAL_N
XTAL_P XTAL_P
VDDA_3 +3V3
CAP2 CAP2
CAP1 CAP1
GND GND

Optional

Element Connection
Expander
1 FGC
2 -
3 CHIP_PU (pull up)
4 Q7S
5 SHCP
6 STCP (pull down)
7 Q2
8 BUT_EXT
9 GPI_38
10 +3V3
11 I2C_SCL (pull up)
12 I2C_SDA (pull up)
13 GND
14 GND
15 -
16 FGC
Programmer
1 CONSOLE_RX
2 CONSOLE_TX
3 +3V3
4 CHIP_PU
5 GND
6 P_DETECT
7 -
8 -
9 BOOT
10 I2C_SCL

870-62WS5128 QSPI RAM

CS#

SPICS1

SO

SPIQ

WP#

SPIWP

VSS

GND

VCC

VDD_SDIO

HOLD#

SPIHD

SCLK

SPICLK

SI

SPID

Secure element

SCL

I2C_SCL (pull up)

SDA

I2C_SDA (pull up)

VCC

+3V3

IO

-

GND

GND

SI7006-A20/SI7020-A20 humidity and temperature sensor

SDA

I2C_SDA (pull up)

GND

GND

DNC1

-

SCL

I2C_SCL (pull up)

VDD

+3V3

DNC2

-

HTS221 humidity and temperature sensor

VDD

+3V3

CS

+3V3

GND

GND

SCL/SPC

I2C_SCL (pull up)

SDA/SDI/SDO

I2C_SDA (pull up)

DRDY

-

LSM6DS33 accelerometer and gyro

GND

GND

GND

GND

RES

GND

RES

GND

RES

GND

RES

GND

INT1

-

INT2

-

CS

+3V3

SDO

-

SDA

I2C_SDA (pull up)

SCL

I2C_SCL (pull up)

VDDIO

+3V3

VDD

+3V3

RES

GND

NC

-

LIS3DH accelerometer

VDD_IO

+3V3

NC

-

NC

-

SCL/SPC

I2C_SCL (pull up)

GND

GND

SDA/SDI/SDO

I2C_SDA (pull up)

SDO/SAO

-

CS

+3V3

INT2

-

RES

GND

INT1

-

GND

GND

ADC3

-

VDD

+3V3

ADC2

-

ADC1

-

IP101GRI ETHERNET transceivers

ETH_RESET_N Q1

P03 Programmer

ESP32 Open IoT and IIoT Gateways (P01 & P02)

P01 and P02 can be programmed via P03 USB RS232 RS485 Converters.

More info here