Welcome to IOT-A-SYNC Documentation
This is the documentation for the IOT-A-SYNC board.
What is IOT-A-SYNC?
IOT-A-SYNC is rapid prototyping development board for Internet of Things (IOT) applications. This board is powered by ESP32 sytem on chip microcontroller with Xtensa dual-core. Esp32 officially supports Arduino and ESP-IDF framework built around FreeRTOS.
Origin of design
This porduct was developed at CEDT, NSUT. Sicgrid was involved in designing process and currently mass manufacturing and markting it.
NIC Interfaces available on IOTA-SYNC
IOT-A-SYNC supports multiple globally accepted network interfaces for IOT devices communication. Various wireless communicaton options it supports are WIFI, BLE,NFC, LoRa PHY.
NIC Interfaces in terms of range
In terms of range of commuincation, For Short range, it supports NFC. For Medium range, it supports Wi-Fi (802.11 b/g/n) and Bluetooth (v4.2 BR/EDR and BLE). For Long range, it supports LoRa communication.
Topolgy of network that can be demonstrated
IOT-A-SYNC also support network topology like Star and Mesh for creating Wireless sensor network(WSN).
Programming and Debugging interfaces available
Programming of IOT-A-SYNC is supported by onboard USB-to-Serial converter as well as it also supports external JTAG interface for programming and debugging.
On board preipherals
Other on board peripherals that are available icludes:- On-Board Led, Switch, Oled(128x64) screen, BME280 sensor (provides Temperatue, Humidity, Pressue), IR transmitter led and IR Receiver sensor.
All I/O pins are provide on 0.1" male as well as female header, as well as few distictive feature I/O are available on 3 Pin JST connector compatible with commonly available sensors and other modules. The 180-point breadboard further facilitates temporary/external circuit testing via jumpers on board itself.
Low power mode
Also, for low power WSN, shorting jumpers are provided to limit power usuage.
Some example code repository
URL for ESP32-IOTA-SYNC repository: ESP32-IOTA-SYNC
URL for Design and Practicum Workshop: DPW
Functional block diagram of ESP32
Dual core processor
The predecessor of ESP32, the ESP8266 has a builtin processor. However due to multitasking involved in updating the WiFi stack, most of the applications use a separate micro-controller for data processing, interfacing sensors and digital Input Output. With the ESP32 you may not want to use an additional micro-controller. ESP32 has Xtensa® Dual-Core 32-bit LX6 microprocessors, which runs up to 600 DMIPS. The ESP32 will run on breakout boards and modules from 160Mhz upto 240MHz . That is very good speed for anything that requires a microcontroller with connectivity options.
The two cores are named Protocol CPU (PRO_CPU) and Application CPU (APP_CPU). That basically means the PRO_CPU processor handles the WiFi, Bluetooth and other internal peripherals like SPI, I2C, ADC etc. The APP_CPU is left out for the application code. This differentiation is done in the Espressif Internet Development Framework (ESP-IDF). ESP-IDF is the official software development framework for the chip. Arduino and other implementations for the development will be based on ESP-IDF.
ESP-IDF uses freeRTOS for switching between the processors and data exchange between them. We have done numerous tutorials on freeRTOS and with all the bare-metal programming tutorials for ESP32 we will try and cover this aspect in detail. Although the feature set is great at the price at which the chip is being sold, the complexity is enormous. For the chip to get widely adopted, it will require huge efforts from Espressif as well as the community