S100 Master - ESP32
The S100 Master - ESP32 module is a certified Rhomb.io module with WiFi, Bluetooth and BLE capabilities that targets a wide variety of applications ranging from low-power sensor networks to the most demanding tasks such as voice encoding, music streaming and MP3 decoding.
The integration of Bluetooth, Bluetooth LE and Wi-Fi ensures that a wide range of applications can be targeted, and that the module is future proof: using Wi-Fi allows a large physical range and direct connection to the internet through a Wi-Fi router, while using Bluetooth allows the user to conveniently connect to the phone or broadcast low energy beacons for its detection. It solves one of the major customer roadblocks for fast time-to-market as it integrates antenna connector, software and RF certifications, saving months of engineering effort and testing.
The S100 Master - ESP32 can act as a host for standalone applications and is extraordinarily well suited for any battery operated devices as well as other systems requiring high performance and low energy consumpt.
The next figure shows a 3D view for the S100 Master - ESP32.
- Internet of Things
- Home automation
- Smart lighting
- Security alarms
- Monitor and scales
- Mesh Networks
- Industrial Wireless Control
- Wereable electronics
- WiFi Position System Beacons
- Health, sports and wellness devices
- Smart phone, tablet and PC accessories
The S100 Master - ESP32 mounts the powerful ESP32-WROOM-32 module from Espressif. Its connectivity capabilities and low power consumption has made this module well known in the IoT industry.
At the core of the S100 Master - ESP32 can be found the ESP32-D0WDQ6 chip, who contains two low-power Tensilica Xtensa 32-bit LX6 microprocessors. The chip embedded is designed to be scalable and adaptive. There are two CPU cores that can be individually controlled, and the clock frequency is adjustable from 80 MHz to 240 MHz. The user may also power off the CPU and make use of the low-power co-processor to constantly monitor the peripherals for changes or crossing of thresholds.
The internal memory of the Module includes 448 kB of ROM for booting and core functions, 520 kB of on-chip SRAM for data and instructions and 4 MB of SPI flash. An additional 16 MB QSPI flash has been added, mapped onto the CPU code space, supporting 8, 16 and 32-bit access with support of code execution.
The S100 Master - ESP32 integrates a rich set of peripherals, ranging from capacitive touch sensors, Hall sensors, SD card interface, Ethernet, high-speed SPI, UART, I2S and I2C. All these interfaces are accesible, making their way to the Rhomb.io connectors.
The operating system chosen for ESP32 is freeRTOS with LwIP; TLS 1.2 with hardware acceleration is built in as well. Secure (encrypted) over the air (OTA) upgrade is also supported, so that developers can continually upgrade the Module.
The following figure identifies the main components onboard:
The next figure shows the block diagram for the S100 Master - ESP32:
|Microcontroller||Espressif ESP32-D0WD, 32-bit dual core Xtensa LX6, 80-240 MHz|
|Internal Memory||4 MB Flash, 520 KB SRAM, 448 KB ROM|
|External Memory||Up to 16 MB QSPI Flash Memory|
|Encryption Memory||16 Keys/ECDSA/ECDH/SHA-256/SMAC/NIST|
|ID Memory||64-bit Unique-ID Memory with 112 B User EEPROM|
|Connectivity||802.11b/g/n 2.4 GHz, up to 150 Mbps; Bluetooth v4.2 and BLE compliant; FCC/CE(RED)/TELEC/KCC/SRRC/IC/NCC; WPA/WPA2-Enterprise/WPS|
|Rhomb.io config.||USB, 2xUART, SPI, I2C, SDIO, QSPI, 2xINT, PWM, 12xGPIO, AD|
|MCU I/O||34xI/O (34xPWM, 18xADC, 34xINT)|
|Op. Voltage||2.8 V / 3.3 V|
|Op. Temperature||-40 ºC to +85 ºC|
The following table indicates the available serial interfaces of the Rhomb.io standard used in this module. This table relates the interfaces of the Rhomb.io standard with the net names of the schematic and with the components to which they are connected.
|Rhomb.io Interface||Schematic Signal||Component||Component Pin||Comments|
|Crypto Memory (U3)||SCL|
|Crypto Memory (U3)||SDA|
|Flash Memory (U4)||CLK|
|QSPI_CS0||ESP32-WROOM-32U (U1)||IO15||SJ4 must be closed|
|Flash Memory (U4)||DI (IO0)|
|Flash Memory (U4)||DO (IO1)|
|Flash Memory (U4)||IO2|
|Flash Memory (U4)||IO3|
|SDIO||SDIO_CLK||ESP32-WROOM-32U (U1)||IO18||Not real SDIO interface|
|USB to UART (U2)||TXD|
|USB to UART (U2)||RXD|
|USB to UART (U2)||RTS#||R16 must be assembled|
|USB to UART (U2)||CTS#||R13 must be assembled|
|USB||USB_N||USB to UART (U2)||D-||-|
- I2C-A: The I2C interface provides communication between the Master and a serial I2C bus. It is capable of acting as both a master and a slave. Standard-mode and fast-mode speeds are supported, allowing transmission rates from 100 kbit/s up to 400 Mbit/s. This interface reads the crypto memory. It is tied directly to the Rhomb.io standard I2C-A bus. I2C line is connected to UART-A_RTS line through a 220R resistor.
- QSPI: An SPI interface is accesible, supporting slave and master modes in 4-line half-duplex communication mode. This interface is connected to the Rhomb.io standard QSPI. The module has and on-bard QSPI flash memory which requires a chip-select line. If QSPI bus is exclusively used by the on-board memory, SJ6 must be mounted, while SJ4 must be disassembled.
- SDIO: This interface is not a real SDIO interface. The lines used are the same as the SPI-A interface. This is so to able to read SD memories through the SPI-A interface. The CS line is routed to the IO32 pin of the ESP32 (SJ10 must be clossed) The connections are the following:
- SDIO-CMD → SPI-A_MOSI
- SDIO_CLK → SPI-A_CLK
- SDIO-DATA3 → CS
- SDIO_DATA0 → SPI-A_MISO
- SPI-A: A VSPI interface is accesible, supporting slave and master modes in 1-line full-duplex and 1/2-line half-duplex communication modes. It can be used to connect to the external flash/SRAM and LCD. VSPI can be served by DMA controllers. This interface is connected to the Rhomb.io standard SPI-A. SPI-A_MISO line is connected to UART-A_CTS line through a 220R resistor.
- UART-A: ESP32 UART0 interface provides asynchronous communication (RS232 and RS485) and IrDA support, communicating at a speed of up to 5 Mbps. UART provides hardware management of the CTS and RTS signals and software flow control (XON and XOFF). All of the interfaces can be accessed by the DMA controller or directly by the CPU. UART0 is tied directly to the Rhomb.io standard UART-A bus. UAR-A_CTS line is conected to SPI-A_MISO line through a 220R resistor.
- UART-B: ESP32 UART1 interface is tied directly to the Rhomb.io standard UART-B bus.
- USB: An USB to UART bridge has been added to facilitate the connection to a computer.
The location of the solder-jumpers required for the use of the interfaces are shown in the following image:
GPIOs and Control Signals
The following table summarizes the GPIOs and Control Signals used on the S100 Master - ESP32. This table relates the signals of the Rhomb.io standard with the net names of the schematic and with the components to which they are connected.
|Rhomb.io Signal||Schematic Signal||Component||Component Pin||Comments|
|1WIRE||1WIRE||ESP32-WROOM-32U (U1)||IO33||SJ7 must be closed|
|ID Memory (U5)||IO|
|IO5||IO15||SJ5 must be closed|
|IO6||IO33||SJ8 must be closed|
|IO7||IO15||SJ9 must be closed|
- #NMI: When #NMI signal is asserted low during power up, the ESP32-WROOM-32U enters in Download Boot Mode. It can be asserted externally or by the "non-button" upload circuit.
- #NMI & INT0: the GPIO subsystem supports asynchronous external pin interrupts.
- 1WIRE: This signal can be used to read the ID Memory.
- AD0: A SAR ADC is accesible in this pin. This pins can be used to build a programmable gain amplifier which is used for the measurement of small analog signals. The ULP-coprocessor in ESP32 is also designed to measure the voltages, while operating in the sleep mode, which enables low-power consumption. The CPU can be woken up by a threshold setting and/or via other triggers.
- IO0 - IO7: Can be assigned to various functions by programming the appropriate registers. There are several kinds of GPIOs: digital-only GPIOs, analog-enabled GPIOs, capacitive-touch-enabled GPIOs, etc. Analog-enabled GPIOs can be configured as digital GPIOs. Capacitive-touch-enabled GPIOs can be configured as digital GPIOs. Most of the digital GPIOs can be configured as internal pull-up or pull-down, or set to high impedance. When configured as an input, the input value can be read through the register. The input can also be set to edge-trigger or level-trigger to generate CPU interrupts. Most of the digital IO pins are bi-directional, non-inverting and tristate, including input and output buffer with tristate control. For low-power operations, the GPIOs can be set to hold their states.
- PWM0: The Pulse Width Modulation (PWM) controller can be used for driving digital motors and smart lights. Additionally, a LED PWM controller can generate digital waveforms with configurable periods and duties. PWM0 lines controls a LED if the SJ1 solder-jumper is closed.
Nevertheless, the versatility of the ESP32-WROOM-32 module lies in the multifunction of all of its pins. The above table is an adaptation of the module pinout to the Rhomb.io standard pinout. Be sure that most of the pins of the S100 Master - ESP32 have way more functions than the ones shown in the schematics and the table.
For more details, check the module schematics and the ESP32-WROOM-32U manufacturer documentation.
The location of the solder-jumpers required for the use of the GPIO and control signals are shown in the following image:
The S100 Master - ESP32 can use the 2.8V rail or the 3.3V rail. You can choose the voltage shorting the corresponding solder-jumper. Make sure this rail is enabled on the motherboard you are going to plug this module. The power consumption varies with different power modes/sleep patterns and work statuses of functional modules.
Bill Of Materials
- Precaution against Electrostatic Discharge. When handling Rhomb.io products, ensure that the environment is protected against static electricity. Follow the next recommendations:
- The users should wear anti-static clothing and use earth band when manipulating the device.
- All objects that come in direct contact with devices should be made of materials that do not produce static electricity that would cause damage.
- Equipment and work table must be earthed.
- Ionizer is recommended to remove electron charge.
- Contamination. Be sure to use semiconductor products in the environment that may not be exposed to dust or dirt adhesion.
- Temperature/Humidity. Semiconductor devices are sensitive to environment temperature and humidity. High temperature or humidity may deteriorate semiconductor devices characteristics. Therefore avoid storage or usage in such conditions.
- Mechanical Shock. Care should be exercised not to apply excessive mechanical shock or force on the connectors and semiconductors devices.
- Chemical. Do not expose semiconductor device to chemical because reaction to chemical may cause deterioration of device characteristics.
- Light Protection. In case of non-EMC (Epoxy Molding Compound) package, do not expose semiconductor IC to strong light. It may cause devices malfunction. Some special products which utilize the light or have security function are excepted from this specification.
- Radioactive, Cosmic and X-ray. Semiconductor devices can be influenced by radioactive, cosmic ray or X-ray. Radioactive, cosmic and X-ray may cause soft error during device operation. Therefore semiconductor devices must be shielded under environment that may be exposed to radioactive, cosmic ray or X-ray.
- EMS (Electromagnetic Susceptibility). Note that semiconductor devices characteristics may be affected by strong electromagnetic waves or magnetic field during operation.
Rhomb.io reserves the right to make corrections, enhancements, improvements and other changes to its products and services, and to discontinue any product or service. Buyers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All the hardware products are sold subject to the Rhomb.io terms and conditions of sale supplied at the time of order acknowledgment.
All brand names, trademarks and registered trademarks belong to their respective owners.
We are constantly striving to improve the quality of our technical notes. If you find an error or omission please let us know.
Email us at: firstname.lastname@example.org