Introduction to Arduino MKR WAN 1310

Hi Guys! Hope you’re well today. I welcome you on board. In this post today, I’ll walk you through the Introduction to Arduino MKR WAN 1310. The Arduino MKR WAN 1310 includes Lora connectivity that can perform very long-range transmission operations consuming low power. This device is an ideal pick for the hobbyists requiring to develop IoT devices using the minimum networking experience using low power devices. The MKR WAN 1300 is incorporated with the Microchip® SAMD21 which is the low-power processor, the MKR family’s characteristic crypto chip (the ECC508), and the Murata CMWX1ZZABZ LoRa® module. Before you read further, I recommend you have a look at Introduction to Arduino Nano Every and Arduino MKR Vidor 4000 that I have uploaded previously. I suggest you read this post all the way through, as I’ll cover the complete Introduction to Arduino MKR WAN 1310 covering pinout, features, pin description, programming, and applications. Let’s jump right in.

Introduction to Arduino MKR WAN 1310

  • The Arduino MKR WAN 1310 includes Lora connectivity that can perform very long-range transmission operations consuming low power.
  • A range of technologies available for the communication between IoT devices including WiFi and Bluetooth. But there is one major problem with these technologies – they consume a lot of power.
  • This leads to the introduction of Lora technology that not only offers communication between devices using low power but it is also cost-effective and efficient compared to other technologies.
  • The MKR WAN 1310 is an improved version of its predecessor, the MKR WAN 1300. It is still incorporated with the Microchip® SAMD21 which is a low-power processor, the MKR family’s characteristic crypto chip (the ECC508), and the Murata CMWX1ZZABZ LoRa® module. This board features a new battery charger, a 2MByte SPI Flash, and the board’s power consumption is incorporated with improved control.
  • The operating voltage of the circuit is 3.3V while the voltage through Vin and USB is 5V.
  • There are total 8 digital I/O pins incorporated on the board while the number of analog pins is 7. And the pins that can be used for the PWM motor control are 13.
  • The board controller comes with a flash memory of 256KB while the SRAM memory is 32KB. There is no EEPROM memory available on the board. The flash memory is mainly reserved to store the Arduino program (sketch). While the SRAM memory is reserved to generate and manipulate variables when it runs.
  • Interface this MKR board with Arduino IoT cloud that guarantees safe communication between all connected devices.
  • The carrier frequency of this board is 433/868/915 MHz which is termed as the frequency of a carrier wave, calculated in cycles per second, or Hertz, mainly modulated to transmit signals.

Arduino MKR WAN 1310 Pinout

The following figure represents the pinout diagram of Arduino MKR WAN 1310.

Arduino MKR WAN 1310 Pin Description

This is the brief idea of the WAN board. In this section, we’ll cover the pin description of each pin available on the board. Let’s jump right in.

Analog Pins

There are 7 analog pins available on the board. These pins can get any number of values in opposed to Digital pins that get values in two states only i.e. HIGH or LOW

Digital Pins

Total 8 digital pins are installed on the board which you can use either as an input or output based on the requirement. These pins offer only two states HIGH or LOW. When voltage is 5V these pins are in the HIGH state and when the voltage is 0V these pins remain in a LOW state.

PWM Pins

The number of pins that can be used as PWM pins is 13. These pins generate analog results with digital means when PWM pins are activated.

UART Pins

The board contains two pins Rx and Tx for the serial UART communication. The Rx line is used to receive the serial data and the Tx pin is used to transfer the serial data.

SPI Pins

This device also offers an SPI communication protocol that is mainly used to develop communication between the microcontroller and other peripheral devices like shift resistors and sensors. Two pins: MISO (Master Input Slave Output) and MOSI (Master Output Slave Input) are employed for SPI communication between devices. These pins are used to send or receive data by the controller.

I2C Pins

The WAN board comes with a two-wire communication protocol known as the I2C protocol. This features two pins SDL and SCL. The SDL is a serial data line that carries the data while SCL is a serial clock line that is mainly employed for the synchronization of all data transfer through the I2C bus.

Arduino MKR WAN 1310 Features

Microcontroller = SAMD21 Cortex®-M0+ 32bit low power ARM MCU Radio module = CMWX1ZZABZ Supported Batteries = rechargeable Li-Ion, or Li-Po, 1024 mAh minimum capacity Digital I/O Pins = 8 Circuit Operating Voltage = 3.3V Board Power Supply (USB/VIN) = 5V PWM Pins = 13 UART = 1 SPI = 1 I2C = 1 Analog Pins = 7 SRAM = 32KB CPU Flash Memory = 256 KB (internal) LED_BUILTIN = 6 EEPROM = no USB = Full-Speed USB Device and embedded Host QSPI Flash Memory = 2MByte (external) DC Current per I/O Pin = 7mA Carrier frequency = 433/868/915 MHz Size = 25x67mm Weight = 32 gr. External Interrupts = 10 (0, 1, 4, 5, 6, 7, 8, 9, 16 / A1, 17 / A2)

Related Boards

If you’re getting confused about buying the right device for wireless communication, the Arduino MKR series also offers other boards that you can pick for wireless communication.
  • MKR NB 1500
  • MKR GSM 1400
  • MKR WAN 1300
  • MKR FOX 1200

Programming

  • This board is programmed using Arduino IDE software which is an official software to program all Arduino boards.
  • When you open the software, you’ll be offered a basic LED blinking program which you can use to test the board if it’s working fine.
  • The WAN board carries a USB port which is used for direct communication with the computer system. You can send a number of instructions to the Arduino board using this USB protocol.
  • This device incorporates a built-in Bootloader that is used to burn the program inside the board. This means you don’t need to buy an external burner to program the microcontroller inside the board.

Arduino MKR WAN 1310 Applications

The WAN board is used in a range of applications. And it is the best pick for the development of IoT devices that require low power. The addition of Lora technology makes this device cost-effective and efficient for developing communication between devices compared to devices that only use WiFi or Bluetooth for communication. That’s all for today. I hope you’ve enjoyed reading this article. If you have any questions, you can approach me in the section below. I’d love to help you the best way I can. Feel free to share your valuable suggestions and feedback around the content we share, so we keep producing quality content based on your needs and requirements. Thank you for reading the article.

Introduction to Arduino Nano Every

Hi Guys! I welcome you on board. Thank you for clicking this read. In this post today, I’ll detail the Introduction to Arduino Nano Every. Arduino Nano Every is a tiny powerful board that is based on the ATMega4809 AVR processor. It comes with a clock speed of around 20MHz and flash memory of around 48KB. It carries two 15 pin connectors on each side of the board that are pin-pin compatible with the Arduino Nano Every. The low price and small size make this board an ideal pick for the range of electrical projects like electronic musical instruments, low-cost robots, and general development of the small parts of the large projects. Needless to say, Arduino has been a cornerstone of many electronic projects ranging from simple student projects to complex automation and embedded projects. The working of this tiny beast is simple and straightforward. It takes the input like a finger on a button or light on a sensor and converts it into an output like turning on the motor, activating LED blinking, and something sharing online. You can use Arduino IDE software to program the Arduino board. In other words, you can control the board by sending a lot of instructions to the microcontroller of the board. The Arduino comes with easy to use hardware and software platform that even a non-tech person can get a hands-on experience without having prior technical knowledge about these boards. I suggest you read this post till the end as I’ll walk you through the complete Introduction to Arduino Nano Every covering datasheet, pinout, pin description, features, and applications. Let’s get started.

Introduction to Arduino Nano Every

  • Arduino Nano Every is a tiny powerful board that is based on the ATMega4809 AVR processor.
  • The Arduino Nano Every is almost similar to the Arduino Nano board with the addition of a more powerful processor like Atmega4809.
  • This board comes with more program memory compared to Arduino Uno and RAM is 200% bigger, helping you create a lot of variables.
  • If you’ve used Arduino Nano earlier for your project, you’ll come to know the Arduino Nano Every board is a pin-equivalent substitute of Arduino Nano. The difference lies in the addition of a micro-USB connector and a more powerful processor.
  • Arduino Nano Every is available in two versions: with or without headers, helping you incorporate this board into hard-to-reach places including wearables.
  • No components are available on the B-side, this gives you the ability to solder the board directly into your main PCB design, reducing the height of the entire project.
  • It carries a crystal oscillator with a clock speed of around 20MHz which is necessary to synchronize all internal functions of the board.
  • The SRAM memory is 6KB while the flash memory and EEPROM memories are 48KB and 256bytes respectively.
  • The flash memory is the location where the Arduino program (sketch) is stored. While SRAM is used to generate and manipulate variables when it starts running. And the EEPROM is a non-volatile memory which means data stays stored inside the board even if the board power is removed.

Arduino Nano Every Datasheet

While working with this board, it’s better to look into the datasheet of the board that features the main characteristics of the board. Click the link below to download the datasheet of Arduino Nano Every.

Arduino Nano Every Pinout

The following figure shows the pinout diagram of Arduino Nano Every.   There is a built-in LED at pin 13 and it also features one power LED that turns on when the board is supplied with power.

Arduino Nano Every Pin Description

Still reading? Perfect. I hope you’ve read the brief intro of this Every board. In this section, we’ll highlight the description of each pin incorporated on the board. Let’s get started.

Digital Pins

20 digital I/O pins are incorporated on this device which you can use as an input or output based on the requirements. These pins are either in a HIGH state or LOW state. When they are LOW they receive V0 and when they are HIGH they receive 5V.

Analog Pins

The number of analog pins incorporated on the board is 8. These are analog pins which projects they can receive any number of values in contrast to Digital pins that only receive two values i.e. HIGH or LOW

PWM Pins

The number of PWM pins incorporated on the board is 5. The board creates analog results with digital means when these pins are activated.

I2C Pins

This board incorporates a two-wire communication protocol which is known as I2C protocol. It carries two lines i.e. SCL and SDA. The SCL is a serial clock line mainly used for the synchronization of all data transfer through the I2C bus and the SDA is a serial data line mainly used to carry the data.

SPI Pins

This device comes with SPI (serial peripheral interface) pins that are mainly used to lay out the communication between the controller and other peripheral devices such as sensors or shift registers. There are two pins: MISO (Master Input Slave Output) and MOSI (Master Output Slave Input) used for SPI communication. These pins are employed to receive or send data by the controller.

UART Pins

The UART pins are used for serial communication. It carries two lines Tx and Rx. The Tx is used to transmit the serial data while Rx is used to receive the serial data.

Arduino Nano Every Features

The following are the main features of Arduino Nano Every. Operating Voltage = 5V Microcontroller = Atmega4809 Vin range = 7 to 21 V D/C current per 3.3V pin = 50mA D/C current per I/O pin = 20mA Oscillator = 20MHz EEPROM = 256bytes SRAM = 6KB Flash Memory = 48KB LED_BUILTIN = 13 USB = 1 UART = 1 SPI = 1 I2C = 1 Digital Pins = 20 Analog Pins = 8 PWM pins = 5 Size = 18x45 mm Weight = 5g

Programming

  • Arduino IDE (integrated development environment) is used to program this board. This software is used to program all kinds of Arduino boards.
  • This device contains a built-in Bootloader which is used to burn the program inside the controller. Yes, you don’t need a separate burner to burn and transfer the program into the controller.
  • Moreover, it also carries a micro USB port which is used to connect the device with the computer. Using this port, you can test and run the program directly from the computer.

Difference between Arduino Nano Every and Arduino Nano

  • The Nano carries microcontroller ATmega 328p which is the same as Uno.
  • While the Nano Every and Uno WiFi Rev 2 are incorporated with a modern version of the AVR based MCU known as megaAVR_0-series, an ATmega4809.
  • It carries the same AVR CPU architecture in the base of the MCU so initially, both MCUs (Atmega 328p and Atmega 4809) share the same compiler but there lies a difference in MCU peripherals configuration. So know that the previous knowledge about AVR MCU peripherals won’t help here.
  • The Arduino Nano Every is priced lower than Arduino Nano.

Arduino Nano Every Applications

The small size of this board makes it a good pick for a number of applications. Following are some applications of this board.
  • USB Trackpad
  • Automatic Pill Dispenser
  • USB Joystick
  • Electric Bike
  • Creating a wireless keyboard
  • Water Level Meter
That was all about the Introduction to Arduino Nano Every. If you have any queries, you can approach me in the comment section below. I’d try to help you according to the best of my expertise. Feel free to share your valuable feedback and suggestions around the content we share so we keep producing quality content based on your needs and requirements. Thank you for reading the article.

Introduction to Arduino MKR Vidor 4000

Hey Everyone! Hope you’re well today. I welcome you on board. In this post today, I’ll walk you through the Introduction to Arduino MKR Vidor 4000. The Arduino MKR Vidor 4000 is a powerful board with which you can develop your own controller board. The inclusion of FPGA makes this device unique and separate from other Arduino boards available in the market. With this FPGA feature, you can do audio and video processing which is not possible with other Arduino boards. Using this device, you can design a real-time computer reading sensor information and the best part is this board is compatible with all other Arduino boards. With this board, you can make all pins PWM signals (on the FPGA block side) for handling the speed of motors. Moreover, you can develop a sound effect pedal for your guitar by capturing the sound in real-time. With Arduino IoT cloud, you can also handle the complex laboratory machine connected with a number of motors. Before moving further, I suggest you read the Introduction to Arduino MKR NB 1500 that I’ve uploaded previously. I suggest you buckle up as I’ll walk you through the complete introduction to Arduino MKR Vidor 4000 covering datasheet, pinout, features, programming, and applications. Let’s get started.

Introduction to Arduino MKR Vidor 4000

  • The Arduino MKR Vidor 4000 is a powerful board with which you can develop your own controller board.
  • This board is incorporated with SAMD21 microcontroller and Intel® Cyclone® 10CL016 (FPGA).
  • The inclusion of the most powerful reprogrammable chip FPGA makes this device unique and separate from other Arduino boards available in the market.
  • With this FPGA feature, you can do audio and video processing which is not possible for other Arduino boards.
  • The FPGA carries 504Kbit of embedded RAM, 16K Logic Elements, and 56 18x18 bit HW multipliers that are employed for high-speed DSP (digital signal processing).
  • Every pin is activated at over 150 MHz and normally configured for functions such as (Q)SPI, high res/ high freq PWM, UARTs, quadrature encoder, Sigma Delta DAC, I2C, I2S, etc.
  • Using this Vidor device you can do an experiment with precision as it comes with the RESET button which you can use in case anything goes wrong. As you press and release this button, the board gets reset, helping you program the board from scratch.
  • The operating voltage of this board is 3.3V and one Mini PCI express port with programmable pins is also installed on the board that carries up to 25 user-programmable pins.
  • The board also features a MIPI (mobile industry processor interface) camera connector which is nothing but a set of standards that allow implementing important features of smartphones including displays and imaging devices. In simple words, the MIPI standard is employed to offer connectivity in mobile, multimedia, automotive, augmented reality, and virtual reality, and other related applications.
  • Other features include - Wifi & BLE powered by U-BLOX NINA W102 module, Micro HDMI connector, the MKR interface where all pins are controlled by both SAMD21 and FPGA.
  • The flash memory of FPGA on this Vidor board is 2MB and SDRAM memory is 8MB. There is no EEPROM memory. The flash memory is used to store the Arduino program (sketch) and SDRAM memory is used to produce and manipulate variables when it runs.
  • The flash memory on the microcontroller side is 256KB and the SRAM memory is 32KB. There is no EEPROM memory on the microcontroller side.
  • The power to the board by USB is 5V. Moreover, the board also features a Li-Po charging circuit that runs the board in two ways: either from the external 5V source or from battery power.

Arduino MKR Vidor 4000 Pinout

The following figure shows the pinout diagram of Arduino MKR Vidor 4000.

Arduino MKR Vidor 4000 Pin Description

Hope you’ve got a brief idea about this Vidor board. In this section, we’ll cover the description of each pin installed on the microcontroller block side and FPGA block side. Let’s jump right in.

Digital Pins

There are total 22 headers + 25 Mini PCI Express pins installed on the FPGA block side. The PCI Mini Express is a port with programmable pins. There are total 8 Digital pins on the microcontroller block which remain in two states i.e. either HIGH or LOW. When these pins are HIGH they are considered ON and receive 5V and when these pins are LOW they are considered OFF and receive 0V.

Analog Pins

It is important to note that the analog pins on board are not routed through FPGA. These pins are attached to both - FPGA and SAMD. Moreover, using these pins on the SAMD side is totally fine, as long as you're not using these pins as outputs on the FPGA side. On the FPGA block, there is no analog pin applicable. While on the microcontroller block there are 7 analog pins.

PWM Pins

The PWM feature in this board is unique. You can use all pins on the FPGA as PWM pins to control the speed of motors. When these PWM pins are activated, the board produces an analog result with digital means. There are 13 PWM pins on the microcontroller block.

UART Pins

There are two UART pins installed on the microcontroller block side. The Rx is a pin used to receive serial data while Tx is a pin used to transfer serial data. On the FPGA side, up to 7 UART are used depending on the FPGA configuration.

I2C Pins

Two pins SDA and SCL are used for I2C communication. The SDA is a serial data line that carries the data and SCL is a serial clock line used for the synchronization of all data transfer through the I2C bus. Again on the microcontroller block side, there is only one I2C protocol. While on the FPGA side up to 7 I2C protocols can be used.

SPI Pins

The Vidor board comes with one SPI (serial peripheral interface) communication protocol that is mainly used to develop the communication between the controller and other peripheral devices such as sensors or shift registers. There is only one SPI protocol on the microcontroller’s side while up to 7 SPI protocols are used on the FPGA side depending on the FPGA configuration. Two pins… MISO (Master Input Slave Output) and MOSI (Master Output Slave Input) are employed for SPI communication. These pins are used to receive or send data by the controller.

Arduino MKR Vidor 4000 Features

Microcontroller = SAMD21 Cortex®-M0+ 32bit low power ARM MCU FPGA = Intel® Cyclone® 10CL016 Camera Connector = MIPI camera connector PCI = Mini PCI Express port with programmable pins Digital I/O Pins on FPGA = 22 headers + 25 Mini PCI Express Digital I/O Pins on MCU side = 8 PWM pins on FPGA = all pins PWM pins on MCU side = 13 pins Analog Pins on FGPA = n/a Analog Pins on MCU side = 7 UART for FGPA = up to 7 depending on the FPGA configuration SPI for FGPA = up to 7 depending on the FPGA configuration I2C for FGPA = up to 7 depending on the FPGA configuration UART for MCU = 1 SPI for MCU = 1 I2C for MCU = 1 Board power supply (USB, Vin) = 5V Circuit operating voltage = 3.3 V Flash Memory on FGPA = 2MB SDRAM Memory on FGPA = 8MB Flash memory on MCU = 256KB SRAM memory on MCU = 32KB Clock speed for FGPA = 48 MHz - up to 200 MHz Clock speed for MCU = 32.768 kHz (RTC), 48 MHz USB = Full-speed USB device and embedded host Size = 25x83mm Weight = 43.5 gm

Programming

The Vidor board is programmed using the Arduino IDE (integrated development environment) software. This software is used to program all Arduino boards. This board carries a USB port through which you can connect this device with the computer and send a number of instructions to program the board. This device contains Bootloader which is a built-in feature of this board, setting you free from buying the external burner to burn the program on the microcontroller.

Arduino MKR Vidor 4000 Applications

  • Vidor is used to making LED sequencer
  • Used for audio and video processing
  • Employed for making sound effect for guitar
  • You can also make Vidor clock
  • MIPI used for implementing important features of smartphones
That’s all for today. I hope you find this article helpful. If you’re unsure or have any questions, you can pop your comment in the section below. I’d love to help you the best way I can. Feel free to share your valuable feedback and suggestions around the content we share so we keep generating quality content customized to your exact needs and requirements. Thank you for reading the article.

Introduction to Arduino MKR NB 1500

Hi Guys! Hope you’re well today. Happy to see you around. In this post today, I’ll walk you through the Introduction to Arduino MKR NB 1500. The Arduino MKR NB 1500 is mainly developed for working in remote areas where no power or internet connection is available. This board is based on a SAMD21 Cortex-M0+ 32bit low power microcontroller and comes with an operating voltage of 3.3V. Admit it. The Arduino board is a remarkable addition to the development of many automation and embedded projects. These boards are incorporated with a series of digital and analog pins that can be connected with the expansion boards or other breadboards. Most of the Arduino boards are integrated with 8-bit Atmel AVR microcontrollers. And all these boards incorporate different flash memory size to store the code. The two-way serial communication is added in the boards and some boards are given with the facility of the USB port that is used for the direct connection with the computer systems and to program and test the boards on the go. Arduino is an open-source platform that means you can edit and modify the hardware and software based on your requirements. The Arduino IDE software is used to program all kinds of Arduino boards. These boards are programmed using C and C++ language. I suggest you read this post all the way through, as I’ll walk you through the Introduction to Arduino MKR NB1500 covering datasheet, pinout, features, programming, pin description, and applications. Let’s jump right in.

Introduction to Arduino MKR NB 1500

  • The Arduino MKR NB 1500 is an Arduino board based on the SAMD21 Cortex-M0+ 32bit microcontroller that is mainly developed for applications in remote areas with no power or internet connection. On-field monitoring systems use these Arduino boards.
  • These are 22 digital I/O pins incorporated on the board. 7 analog and 12 PWM pins are also included in the chip.
  • The Rx and Tx pins are added to the board for the UART serial communication where Rx is used to receive the serial data and Tx is used to transmit the serial data.
  • Moreover, I2C and SPI communication protocols are also included in the device.
  • The power delivered to the board by USB is 5V. Plus, the board also incorporates a Li-Po charging circuit that makes the board run in two ways: either from the external 5V source or from battery power.
  • The clock speed of the oscillator is 32.768 kHz (RTC), 48 MHz which is required for the synchronization of the internal functions.
  • You can also interface the micro-sim with the board, however, micro-sim is not provided with the board. You need to purchase it separately.
  • You can interface breadboard with this board, giving you the ability to actually test and run your project on a breadboard before switching to the PCB design of the electrical circuit.
  • The board’s flash memory is 256KB. And it doesn’t incorporate EEPROM memory while the SRAM memory is 32KB.
  • The Arduino Program (sketch) is stored in the flash memory and SRAM memory is used to generate and manipulate variables when it runs.

Arduino MKR NB 1500 Datasheet

Before you apply this device to your electrical project it’s better to scan through the datasheet of the device that features the main characteristics of the board. You can download the datasheet of Arduino MKR NB 1500 by clicking the link below.

Arduino MKR NB 1500 Pinout

The following figure shows the pinout diagram of Arduino MKR NB 1500. There are three LEDs on the board. One is a built-in LED, and the other power LED and battery charger LED.

Arduino MKR NB 1500 Pin Configuration

Hope you’ve got a brief idea about this board. In this section, we’ll discuss the pin description of the pins incorporated on the board.

Digital I/O Pins

There are total 8 digital I/O pins integrated on the board which you can use as an input or output according to the requirements. They remain either HIGH or LOW. When they are HIGH they receive 5V and when they are LOW they receive 0V.

Analog Pins

There are total 7 analog pins incorporated on the board. As they are analog pins, they can get any number of values in opposed to Digital pins that only get two values i.e. HIGH or LOW

PWM Pins

The board comes with 12 PWM pins on board. When these pins are activated, the board generates analog result with digital means.

SPI Pins

This board incorporates SPI (serial peripheral interface) pins that are mainly employed to develop the communication between the controller and other peripheral devices such as sensors or shift registers. Two pins… MISO (Master Input Slave Output) and MOSI (Master Output Slave Input) are used for SPI communication. These pins are used to receive or send data by the controller.

I2C Pins

I2C is a two-wire communication protocol. That uses two lines i.e. SDA and SCL. The SDA is a serial data line mainly used to carry the data while SCL is a serial clock line mainly used for the synchronization of all data transfer through the I2C bus.

UART Pins

This device supports UART serial communication. Two pins Rx and Tx are used for the transmission and receiving of serial data.

Battery Connector

If you want to power up the board with the battery be sure to find the female 2 pin JST PHR2 Type connector. Polarity:  while you look at the board connector pins… Polarity is Left = Positive and Right = GND Vcc – This pin generates 3.3V using the on-board voltage regulator. 5V – This pin generates 5V when powered from the Vin pin of the board or from the USB connector. Vin – This pin provides power to the board using a regulated 5V source. If you supply power using this pin, the power through the USB port will be disconnected. This way you can power the board not using USB.

Arduino MKR NB 1500 Features

Microcontroller = SAMD21 Cortex®-M0+ 32bit low power ARM MCU Power Supply (USB/Vin) = 5V Operating voltage = 3.3V Digital I/O Pins = 22 Analog Pins = 7 PWM Pins = 12 I2C = 1 SPI = 1 UART = 1 DC current per I/O pin = 7mA EEPROM = no SRAM = 32KB Flash Memory = 256KB Supported Battery = Li-Po Single Cell, 3.7V, 1500mAh Minimum External Interrupts = 10 (0, 1, 4, 5, 6, 7, 8, 9, 16 / A1, 17 / A2) Size = 25 x 67 mm Weight = 32gr

Arduino MKR NB 1500 Programming

  • You can program this board using Arduino IDE (integrated development environment) software. This software is launched by Arduino.cc you can get this software by going to their site.
  • This board comes with a built-in Bootloader where you can burn the internal program, setting free from the hassle of burning and testing the program with the external burner.
  • This tiny device incorporates a USB port through which you can connect this device with the computer and run and test the program directly from the computer.

Arduino MKR NB 1500 Applications

This tiny little beast is used for a range of applications. Following are some major applications of this device.
  • Automatic Pill Dispenser
  • USB Joystick
  • USB Trackpad
  • Creating a wireless keyboard
  • Water Level Meter
  • Electric Bike
That’s all for today. I hope you’ve enjoyed reading this article. If you’re unsure or have any questions, you can pop your comment in the section below. I’d love to help you the best way I can. Feel free to share your valuable suggestions around the content we share so we keep producing quality content tailored to your exact needs and requirements. Thank you for reading the article.

Introduction to Arduino Pro Micro

Hi Folks! Hope you’re well today. Happy to see you around. In this post today, I’ll walk you through the Introduction to Arduino Pro Micro. Arduino Pro Micro is an Arduino compatible microcontroller board that is based on ATmega32u4. It operates at a frequency of 16MHz and 5V. It comes with 4 analog pins, 12 digital I/O pins, and 5 PWM pins. Moreover, it also supports serial communication UART with pins Rx and Tx. Arduino is an open-source platform provided by Arduino.cc that offers both hardware and software customization. Open-source means you can use, edit, or customize the board and software based on your requirements. Arduino boards are introduced in 2005 in Italy with the aim to provide a single platform where non-tech persons can get a hold of these boards and develop electronic devices that can interact with the environment using actuators and sensors. These boards are so easy to operate that even a common man with little knowledge about the boards can use them. These boards come in different sizes, memory space that you can incorporate in your electrical project. Not only can you program these boards, but you can also interface them with other shields and breadboard through digital I/O pins. Loading program from the personal computer is just one click away as some boards incorporate USB (universal serial bus) through which you can test and upload program directly from computers. This board is slightly different from the Arduino Micro board. The Arduino Pro Micro doesn’t include a reset button, 13 pin LED, and ICSP header and is smaller in size compared to the Arduino Micro board. I suggest you buckle up as in this tutorial I’ll detail the complete Introduction to Arduino Pro Micro covering pinout, pin description, features, communication and programming, and applications. Let’s jump right in.

Introduction to Arduino Pro Micro

  • Introduced by Sparkfun, Arduino Pro Micro is an Arduino compatible microcontroller board based on ATmega32u4.
  • This board operates at the frequency of 16 MHz which is required for the synchronization of the internal functions.
  • It comes with a built-in micro USB port that helps you test and program the Arduino board with a computer.
  • Though this tiny beast is small in size, it can perform functions like regular Arduino boards. This board comes with a flash memory of 32KB. And SRAM and EEPROM memories are 1KB and 2.5KB respectively.
  • The flash memory is the memory where the Arduino Program (sketch) is stored. While EEPROM memory is used to store long-term information and SRAM memory is used to produce and manipulate variables when it starts running.
  • In addition, this board is compatible with breadboards which makes it an ideal pick for a range of testing projects before you actually incorporate this device into your electrical project.
  • This board supports UART serial communication with two pins Rx and Tx. The former is the receive data line used to receive serial data while the latter is the transmission line used to transmit serial data.
  • The board incorporates resettable poly-fuse mainly employed to secure the USB port. It keeps the board from consuming too much power from the computer. When the current exceeds the given limit, the resistance of this polymeric material increases while it heats up. When the overcurrent is removed from the device, this fuse cools down and its resistance comes back to its original value.

Arduino Pro Micro Datasheet

Before you install this board into your electrical project, it’s wise to go through the datasheet of the board that contains the main characteristics of the board. Click the link below to download the datasheet of Arduino Pro Micro.

Arduino Pro Micro Features

The following are the main features of the Arduino Pro Micro board. CPU = 8bit Microcontroller = Atmega32u4 Digital I/O pins = 12 Oscillator = 16MHz USB = 1 ADC = 4x 10-bit ADC inputs PWM pins = 5 UART = 1 Reset button = no ICSP header = no Pin 13 LED = no Software Used = Arduino IDE Flash memory = 32KB EEPROM = 1KB SRAM  = 2.5KB Size = 34mm x 18mm

Arduino Pro Micro Pinout

The following figure shows the pinout diagram of Arduino Pro Micro.

Arduino Pro Micro Pin Description

Hope you’ve got the sneak peek of this Arduino board. In this section, we’ll detail the pin description of pins incorporated on the board.

Digital I/O Pins

There are 12 digital I/O pins available on the board that are either used as input or output based on the requirement. These pins are either OFF or ON. When they are ON they receive 5V and are considered as HIGH and when they are OFF they receive 0V and are considered LOW.

Analog Pins

This board incorporates 9 channels of 10-bit ADC. These are analog pins that receive any number of values in contrast to digital pins that get only two values i.e. HIGH and LOW.

PWM Pins

The Pro Micro board features 5 PWM channels which are used to get some of the analog output’s functions. When the PWM pins are triggered, the board creates analog results with digital means.

UART Pins

Moreover, it supports UART serial communication with two pins Rx and Tx. Both pins are used to transmit and receive serial data.

SPI Pins

This board comes with a serial peripheral interface (SPI) used to layout communication between the microcontroller and other peripheral devices such as and sensors shift registers. There are two pins for SPI communication i.e. MOSI (Master Output Slave Input) and MISO (Master Input Slave Output) – these pins are employed for sending and receiving the data by the microcontroller.

I2C Pins

  • Two pins are used for I2C communication which is a two-wire communication protocol. One is SDA and the other is SCL.
  • The former is a serial data line used to carry the data and the latter is a serial clock line used for the synchronization of all data transfer over the I2C bus.

Programming

  • The Arduino IDE (integrated development environment) software is used to program this Arduino board. This software is introduced by Arduino.cc which is used to program all kinds of Arduino boards.
  • This software is easy to use. As you install the software, you are given some basic LED blinking programs through which you can easily test the board on the go.
  • This tiny little beast contains a built-in Bootloader that is used to burn the program and it sets you free from the drill of compiling and burning the program from the external burner.
  • With a micro USB port, you don’t require a secondary processor as it appears to an attached computer as a keyboard and mouse. With this port, you can test and program the Arduino board directly from the computer.

Difference between Arduino Pro Micro and Arduino Micro

  • Through both boards incorporate Atmega32u4 microcontroller they differ in few features.
  • The Micro board comes with a reset button and ICSP header while the Pro micro board doesn’t incorporate those features.
  • Moreover, pro micro is smaller than micro board thus fewer pins are brought out to the Arduino terminal pins.
  • The missing pins include AREF, A4, A5, SS, 11, 12, and 13. This also projects that pin 13 doesn’t carry LED but it still supports Tx and Rx pins with LEDs for serial communication.
  • In addition, you cannot use the SPI interface in slave mode in the case of the Pro micro board as this board doesn’t bring out SS pin. And since the pro micro board cannot bring out AREF, the external ADC reference voltage ability is absent.
  • It is important to note that, though the board doesn’t carry ICSP connector, still it supports ICSP interface through which you can program the board.

Arduino Pro Micro Applications

The ability to easily groove in hard to reach places makes this board an ideal pick for a range of applications. This board can be used in the following projects.
  • Windows PC lock/unlock application
  • USB Trackpad
  • USB Joystick
  • Water Level Meter
  • Electric Bike
  • Creating a wireless keyboard
  • Automatic Pill Dispenser
That’s all for today. I hope you’ve got a clear idea about this Arduino Pro Micro board. If you have any questions, you can approach me in the section below. I’d love to help you the best way I can. Feel free to share your valuable feedback and suggestions around the content we share, so we keep producing quality content customized to your exact needs and requirements. Thank you for reading the article.

Introduction to Arduino USB Host Shields

Hello Everyone! Hope you’re well today. I welcome you on board. In this post today, I’ll walk you through the Introduction to Arduino USB Host Shields. With Arduino USB host shield you can interface the USB device to your Arduino board. This USB host shield is based on MAX3421E which is mainly known as the USB host controller that contains the analog circuitry and digital logic required to apply the USB full speed peripheral to USB specifications rev. 2.0. Moreover, this shield is compatible with TinkerKit which projects you can plug this TinkerKit module with the Arduino Boards.

Introduction to Arduino USB Host Shields

  • Arduino USB host shield is used to connect a USB device with the Arduino Board. Simply put, USB host shields provide the USB host capabilities to the Arduino boards.
  • With this USB host shield, you can connect any USB device with the Arduino boards.
  • What does this USB host mean? To understand this, you need to understand the USB protocol that comes with two types of devices. One is called the peripheral (client) and the other is called a host (server).
  • When the mouse or keyboard is attached to the computer through a USB port, your system acts as a host and the keyboard acts like a peripheral (client).
  • Successful communication is carried out using this USB protocol when one of the devices acts like a host which indicates you cannot attach two keyboards for the communication because both are peripheral devices.
  • The USB Host shield incorporates MAX3421E which is a separate chip that is mainly used to provide the USB host support to the Arduino board.
  • Once you connect this shield with the Arduino board, the board starts behaving like a host with you can attach other peripheral devices like a keyboard or mouse.
  • USB host shield is normally installed on the top of the Arduino boards.

Device Classes

The shield supports the following device classes.
  • Game controllers = Nintendo Wii, Sony PS3, Xbox360.
  • ADK-capable Android phones and tablets.
  • Bluetooth dongles.
  • USB to serial converters = FTDI, PL-2303, ACM, as well as certain cell phones and GPS receivers.
  • Mass storage devices: External hard drives, memory card readers, USB sticks.
  • Digital cameras: Powershot, Canon EOS, generic PTP, Nikon DSLRs and P&S
  • HID devices = keyboards, joysticks, mice, etc.

MAX3421E USB Peripheral/Host Controller with SPI Interface

  • Recall, MAX3421E chip known as the USB host controller that contains the analog circuitry and digital logic required to apply the USB full speed peripheral to USB specifications rev. 2.0.
  • This chip comes with a built-in transceiver that contains ±15kV ESD protection with programmable USB disconnect and connect.
  • SIE stands for (serial interface engine) which is mainly employed to control the low-level USB protocol details including bus retries and error checking.
  • The SPI interface can access the register set which is used to operate the chip and works at the frequency 26MHz.
The following figure shows the pinout diagram of the chip.
  • When MAX3421E operates as a host it provides a huge collection of USB peripherals to DSP, ASIC, and microprocessor.
  • The SPI interface operates at a voltage between 1.4V and 3.6V due to the internal level translators.
  • The MAX3421E comes in a 32-pin TQFN package (5mm x 5mm) and 32-pin TQFP package (5mm x 5mm) with operating temperature range from -40°C to +85°C

MAX3421E Datasheet

Before you apply any component to your electrical project, it’s wise to go through the datasheet of the component that contains the main characteristics of the device. Click the link below to download the datasheet of MAX3421E.

Applications

  • Embedded Systems
  • Microprocessors and DSPs
  • Medical Devices
  • Cameras
  • PDAs
  • Custom USB Devices
  • PLCs
  • MP3 Players
  • Set-Top Boxes
  • Instrumentation
  • Desktop Routers
That’s all for today. I hope you have enjoyed reading this article. If you’re unsure or have any questions you can approach me in the section below. You’re most welcome to share your valuable feedback and suggestions around the content we share so we keep producing quality content customized to your exact needs and requirements. Thank you for reading the article.

ESP32 Pinout, Datasheet, Features & Applications

Hi Guys! I hope you’re doing great. Today, I am going to share Chapter Zero of the ESP32 Programming Course. I have called it Chapter 0 because today, we won't practically work on the ESP32. Instead, I’ll walk you through the detailed theoretical Introduction to the ESP32 Module, where we will discuss the ESP32 Pinout, Datasheet, Specifications, Features, Applications etc. in detail.

ESP32 is an embedded module that supports both WiFi and BT(dual-mode) connectivity and is thus used in Cloud-based IoT projects. ESP32 is the upgraded model of the ESP8266 module and is designed by Espressif Systems in China.

The following tables show the main features and technical specifications of the ESP32 module.

ESP32 Technical Specifications
No. Parameter Name Parameter Value
1
Microprocessor Tensilica Xtensa single-/dual-core 32-bit LX6 microprocessor(s)
2
CoreMark® score 1 core at 240 MHz: 504.85 CoreMark; 2.10 CoreMark/MHz
2 cores at 240 MHz: 994.26 CoreMark; 4.14 CoreMark/MHz
3 Operating Voltage 3.3V
4
DC Current on 3.3V Pin 50 mA
5
DC Current on I/O Pins 40 mA
6
Maximum Operating Frequency 240MHz
7
Frequency Oscillators 8MHz (Internal Oscillator)
Internal RC Oscillatoror
2MHz ~ 60MHz External Crystal Oscillator(40MHz required for WiFi/BT)
32kHz External Crystal Oscillator(For RTC)
8
Timers 2 x 64-bit Timers, 1 RTC Timer,

ESP32 Pinout
1
DAC
2 Channels (8-bit, digital to analog converter)
2
ADC 18 Channels (12-bit, analog to digital converter)
3
Capacitive Touch Sensors
10
4
LED PWM
16 Channels

ESP32 Communication Protocols
1
Wi-Fi 802.11 b/g/n (Speed upto 150Mbps)
2
Bluetooth Supports Classic Bluetooth v4.2 BR/EDR & Bluetooth Low Energy(BLE)
3
Bluetooth Low Energy Supports BLE
4
UART Protocol 3 Channels
5
SPI Protocol 4 Channels
6
I2C Protocol 2 Channels
7
I2S Protocol 2 Channels (for digital audio)
8 CAN Protocol 1 Channels

ESP32 Builtin Memory
No. Parameter Name Parameter Value
1 SRAM 520kb
2 ROM(Flash Memory) 448kb
3 RTC SRAM
16kb

So, let's get started with the Introduction to ESP32:

Where To Buy?
No.ComponentsDistributorLink To Buy
1ESP32AmazonBuy Now

Introduction to ESP32 Module

  • ESP32 (designed by Espressif Systems, a Shanghai-based Chinese Company) is a 48 Pin microprocessor-based embedded IC(available in QFN package), that supports both WiFi & BT(dual-mode) connectivity and is used majorly in wearable devices, mobile & cloud-based IoT applications.
  • The microprocessor used in the ESP32 chip is the Tensilica Xtensa LX6 microprocessor (single-core and dual-core).
  • A few LX6 based ESP32 ICs are:
    • ESP32-D0WDQ6 (and ESP32-D0WD)
    • ESP32-D2WD
    • ESP32-S0WD
    • ESP32-PICO-D4

ESP32 vs ESP8266

  • Both the ESP32 and ESP8266 are inexpensive WiFi modules with low power consumption.
  • Both modules are desirable for DIY projects in the areas of IoT (Internet of Things) and automation.
  • The ESP32 is a dual-core 160Mhz 240Mhz CPU, while the ESP8266 has an 80Mhz single-core processor. Therefore, if your primary concern is processor speed, you should prioritize the ESP32 over the ESP8266.
  • The ESP32 offers more GPIO than the ESP8266.
  • ESP32 supports Bluetooth 4.2 and BLE(Bluetooth Low Energy).
  • The ESP32 offers a 12-bit ADC, while the ESP8266 offers only a 10-bit ADC.

ESP32-WROOM-32

  • ESP32-WROOM-32 is a 38-pin breakout board of ESP32, which is most commonly used in third-party ESP32 modules.
  • As ESP32 IC is available in the QFN(Quad Flat No Leads) package, so it's quite difficult to solder the IC in embedded projects.
  • So, to ease the process of using ESP32 IC, Espressif Systems designed numerous small modules(using ESP32 chip) that have a built-in antenna and easily usable pinout.
  • Other ESP32 modules are ESP32-SOLO and ESP32-WROVER.
  • One of the most commonly used breakout boards of ESP32 is ESP32-WROOM-32, shown in the below figure:

Third-Party ESP32 Development Modules

  • Many embedded companies have used ESP32-WROOM-32 and designed different ESP32 development boards, which are plug-and-play modules and are thus normally used for learning and prototyping purposes.
  • One of the most commonly used ESP32 development boards is called ESP32-DevkitC.
  • ESP32-DevKitC is a 30-pin ESP32-based development board, designed by Espressif Systems and is used in embedded and IoT projects.

  • All you need to do is plug this device using a USB cable and play with it on the fly.
  • Boot mode and Reset buttons are incorporated on the board.
  • USB micro connector and USB-UART Bridge, and LDO regulator are also included in the device.

Types of ESP32 Development Boards

  • The following are the five different versions of ESP32-DevKitC.
    1. ESP32-DevKitC-32E
    2. ESP32-DevKitC-32UE
    3. ESP32-DevKitCVE
    4. ESP32-DevKitCVIE
    5. ESP32-DevKitCS1

So, that was the evolution of ESP32 from a simple IC to plug & play board. Now let's have a look at the Pinout of the ESP32 microcontroller and modules:

ESP32 Pinout

We have seen above that ESP32 has evolved first into ESP32-WROOM-32 and is further upgraded into ESP32-DevKitC. So, let's have a look at the pinout of all these boards, one by one:

Pinout of ESP32 IC

  • ESP32 IC in its pure form consists of 48 pins in total.
  • The following figure shows the labeled ESP32 Pinout diagram:

Pinout of ESP32-WROOM-32

  • ESP32-WROOM-32 is a breakout board of ESP32 and consists of 38 pins in total.
  • Here's the pinout of the ESP-WROOM-32 board:

Pinout of ESP32-DevkitC

  • ESP32-DevKitC is a development board based on the ESP32 microcontroller and it has 36 pins in total.
  • Here's the pinout diagram of ESP32 DevKitC:

ESP32 Pin Description

Now, let's have a look at the functions of ESP32 Pinout:

Power Pins in ESP32

  • Power: Power is applied through Micro-USB, 3.3V pin, 5V pin, and GND. Regulated 5V is supplied to this pin which is further regulated to 3.3V to power up the board. And 3.3V pin directly supplies the 3.3V regulated to the board. And the ground is connected to GND.
  • Enable: The enable pin is represented by ‘En’ on the board and is used to reset the microcontroller.
  • AREF: It is marked as AREF which is used to provide a reference voltage for input voltage.

GPIO Pins in ESP32

ESP32 has 36 GPIO(general purpose input/output) pins to perform numerous operations(normally one at a time). Third-party ESP32 modules have different numbers of GPIO pins i.e. ESP32 Dev Kit V1 includes 30 GPIO pins. Let's have a look at the functionality of ESP32 GPIO Pins:

ADC Pins in ESP32

  • ADC Pins: ESP32 has a total of 18 ADC channels(12-bit each) used to measure the analog voltage within the range of 0-3.3V.

ESP32 is equipped with two SAR analog-to-digital converter modules named ADC1 and ADC2. ADC1 has 10 Channels labeled from ADC2_1 to ADC2_7, while ADC2 has 10 Channels labeled from ADC2_0 to ADC2_9. The ADC output value ranges from 0 to 4093 at 12-bit resolution.

DAC Pins in ESP32

  • DAC Pins: ESP32 features 2 distinct 8-bit digital-to-analog converters(DAC1 and DAC2) for translating digital values to analog signals. The DAC function is attached to below two GPIO pins:
  1. DAC1-GPIO25
  2. DAC2-GPIO26

The DAC employs a power supply as an input reference voltage and features an internal resistance network.

PWM Pins in ESP32

  • PWM Pins: ESP32's PWM controller has 16 independent PWM channels with configurable frequency and duty cycles. Any GPIO pin can be used as a PWM pin.

PWM pulses are used to control the speed of motors or the brightness of LEDs. You can configure the frequency, channel, GPIO pin, and duty cycle of the PWM signal.

SPI Pins in ESP32

  • SPI Pins: ESP32 has three SPI blocks that operate in both master and slave modes, named SPI, HSPI, and VSPI.

Among these 3 blocks, SPI is used as an interface to flash memory. So, we are left with HSPI and VSPI for normal use:

  1. VSPI: ESP32 VSPI Pins are GPIO23 (MOSI), GPIO19 (MISO), GPIO18 (CLK) and GPIO5 (CS) used for SPI-1 communication.
  2. HSPI: ESP32 HSPI Pins are GPIO13 (MOSI), GPIO12 (MISO), GPIO14 (CLK) and GPIO15 (CS) used for SPI-2 communication.

I2C Pins in ESP32

The ESP32 has two I2C interfaces. The SCL and SDA pins of both I2C interfaces can be assigned by a user in the program. The default I2C pins are:

  • SDA-GPIO21
  • SCL-GPIO22

ESP32 Capacitive Touch Sensors

  • ESP32 has 10 capacitive touch-sensing GPIO Pins(T0 to T9), which get electrostatically charged when a finger touches the respective GPIO pin.

Without any additional hardware, these touch GPIOs can be utilized to make capacitive touchpads. Variations in capacitance are evident.

RTC GPIO

  • ESP32 has 18 Low-Power RTC GPIO Pins(RTCIO0 to RTCIO17) used to wake up the ESP32 board from deep sleep mode.

  • Serial: Two serial pins are represented on boards as Tx and Rx. The Tx is used to transmit serial data while Rx is used to receive serial data.

  • External Interrupts: All GPIO pins can be used as external interrupts.

ESP32 Datasheet

Before you incorporate this device into your electrical project, it’s wise to go through the datasheet of the component that features the main characteristics of the device. You can click the link given below to download the ESP32 datasheet.

Now, let's have a look at the features of ESP32:

ESP32 Features

Here are the main features of ESP32 IC:

  • ESP32 has built-in integration of both WiFi and Bluetooth dual-mode.
  • ESP32 has 34 programmable GPIOs present on the chip.
  • ADC is of 12-bit SAR and can support up to 18 channels.
  • DAC is 8-bit and it has 2 DAC channels.
  • ESP32 also has 10 touch sensors embedded in it.
  • ESP32 also has a Hall sensor in it.
  • It supports 4 SPI channels.
  • It also has 2 I²S channels.
  • ESP32 has 2 I²C ports in it.
  • It supports 3 UART channels.
  • It also has 1 host(SD/MMC/SDIO) and 1 slave(SDIO/SPI).
  • ESP32 also supports the Ethernet MAC interface with dedicated DMA and IEEE 1588 support.
  • It supports Two-Wire Automotive Interface (TWAI®, compatible with ISO11898-1)
  • LED PWM up to 16 channels

A few of ESP32's key features are discussed below in detail:

ESP32 WiFi Key Features

  • Wireless Networking Standard: 802.11 b/g/n
  • Wireless Standard: 802.11 n (2.4 GHz), up to 150 Mbps
  • WiFi Multimedia(WMM)
  • WiFi Aggregation: TX/RX A-MPDU, RX A-MSDU
  • Immediate Block ACK: suitable for high bandwidth & low latency traffic.
  • Automatic Beacon monitoring (hardware TSF)
  • Simultaneous support for SoftAP, Infrastructure Station and Promiscuous modes.
  • Diverse Antenna
  • Defragmentation to smoothen the data.
  • Supports 4 virtual WiFi Interfaces.

ESP32 Bluetooth Key Features

  • Compliant with Bluetooth v4.2 BR/EDR
  • Class-1, Class-2 and Class-3 transmitters without external power amplifier
  • Increased Power Control
  • Transmission Power: +12 dBm
  • BLE sensitivity: –94 dBm (NZIF receiver)
  • Adaptive Frequency Hopping (AFH)
  • Standard HCI supports SDIO/SPI/UART
  • High-speed UART HCI, up to 4 Mbps
  • Bluetooth 4.2 BR/EDR BLE dual-mode controller
  • CVSD and SBC for audio codec
  • Classic BT and BLE support Multiple connections.
  • It can advertise and scan simultaneously.
  • Bluetooth Piconet and Scatternet

ESP32 Microcontroller Key Features

  • ESP32 uses an Xtensa® single-/dual-core 32-bit LX6 microprocessor(s) .
  • It supports data rates up to 600 MIPS (200 MIPS for ESP32-S0WD/ESP32-U4WDH)
  • It has a Flash Memory of 448 KB.
  • It has an SRAM memory of 520 KB.
  • 16 KB SRAM in RTC
  • QSPI supports multiple flash/SRAM chips.

ESP32 Clocks & Timers Key Features

  • ESP32 has a calibrated 8MHz crystal oscillator (internal)
  • Calibrated RC oscillator (internal)
  • External 2 MHz ~ 60 MHz crystal oscillator (40 MHz only for Wi-Fi/BT functionality)
  • External 32 kHz crystal oscillator for RTC with calibration
  • Two timer groups, including 2 × 64-bit timers and 1 × main watchdog in each group
  • ESP32 also has one RTC timer.
  • RTC watchdog is also present in ESP32.

ESP32 Projects & Applications

ESP32 modules have brought a revolution in embedded and especially IoT projects. As these boards are small-sized, low-powered and support both WiFi & BT, thus are gaining popularity in IoT-based handheld devices. A few applications of the ESP32 module are as follows:

  • Used in Network projects.
  • Employed for beginner-level DIY projects.
  • Employed in the prototyping of IoT devices.
  • Used in cloud-based smart security projects.
  • Used in low-power battery-operated applications.

That was all about the Introduction to ESP32 module. If you have any questions, you can approach me in the comment section below. I’ll help you according to the best of my expertise. You’re most welcome to share your valuable feedback and suggestions around the content we share so we keep coming up with quality content customized to your exact needs and requirements. Thank you for reading the article.

Introduction to Arduino Beetle

Hi Friends! Hope you’re well today. I welcome you on board. In this post today, I’ll walk you through the Introduction to Arduino Beetle. Arduino beetle is the smallest Arduino board that comes with the functionality of Arduino Leonardo. This board is a remarkable addition to the minimalistic Arduino technology. It is based on the microcontroller Atmel Atmega32u4. With the inception of innovations in modern technology, electronic devices are becoming light, more compact that happen to perform a lot of functions. These devices are economical and require little to no prior knowledge to get your hands dirty with them. All Arduino boards are microcontrollers but not all microcontrollers are Arduino board. While using the Arduino board, you don’t need to attach extra peripherals with the board, as it comes with built-in functions that don’t require the addition of external components. Earlier we have shared the articles on scores of Arduino boards including Arduino Uno, Arduino Leonardo, Arduino Due, and Arduino Mega. You can check these articles to find the basic information about them. I suggest you buckle up, as I’ll walk you through the complete introduction to Arduino Beetle covering datasheet, pinout, pin configuration, features, communication and programming and applications. Let’s jump right in.

Introduction to Arduino Beetle

  • Introduced by Arduino.cc, Arduino Beetle is the smallest Arduino Leonardo board that is based on Atmel Atmega32u4.
  • The Atmega32u4 is an 8-bit CMOS low power microcontroller
  • Arduino.cc offers an open-source platform for everyone which means you can optimize the boards and software programs as you like better.
  • The IDE (integrated development environment) is a software used to program the Arduino board. You don’t require prior knowledge and technical skills to start working with this board. The C and C++ are the languages used to program the Arduino beetle.
  • Though IDE software is compatible with MAC, Windows, or Linux Systems, Windows is a preferable operating system to use this board.
  • This tiny device comes with a micro USB port which means you can directly connect the device with the computer and program it based on your needs and requirements.
  • You don’t need a separate burner to burn and run the program on the board as it comes with a pre-burned Bootloader that allows you to upload the code in the hex file of the board.
  • The beetle is mainly introduced to provide the solution for low-cost disposable projects including DIY, gift projects, student projects, and e-textile.
  • This device operates at 5V and it also functions at 3.7V. Make sure voltage doesn’t exceed 5V else it can damage the device.
  • It comes with a clock time 16MHz. Several pins are incorporated on board out of which 10 are digital pins, 4 are PWM pins and 5 are analog pins.
  • This module comes with a crystal oscillator frequency up to 16 MHz that is mainly used to produce the clock pulses with decent speed. This oscillator is required for the synchronization of all the internal operations.
  • This module supports different communication protocols including I2C and UART.
  • The flash memory is 32KB out of which 4KB is used by the Bootloader. It is the memory where the sketch (the program we create on IDE is called a sketch) is stored.
  • The SRAM memory is 2.5KB which is the memory where sketch manipulates and produces variables when it operates. And EEPROM memory is 1KB and it is the space used for storing long-term information.
  • The price of this board at the time of writing this article is around 8$ which carries all powerful functions like Arduino Leonardo.

Arduino Beetle Datasheet

Before you incorporate this device into your electrical project, it’s wise to go through the datasheet of the device that features the main characteristics of the board. Click the link below to download the datasheet of Arduino beetle.

Arduino Beetle Features and Specifications

The following are the main features and specifications of Arduino beetle.
  • Board size 20mm x 22mm.
  • Direct testing and uploading program through a micro USB port.
  • I/O ports are V-shaped gold plated.
  • Two power interfaces that are gold plated and are used to supply power to the board.
  • Blue Light blink indicator which indicates the operation of the board.
  • Incorporated with Atmel Atmega32u4 microcontroller.
  • The operating voltage is 5V and the clock speed is 16MHz.
  • There are 5 analog pins, 4 PWM pins, and 10 digital pins on board.
  • Micro USB = 1
  • UART = 1
  • I2C = 1
  • EEPROM = 1KB
  • SRAM = 2.5 KB
  • Flash Memory = 32KB out of which 4KB is used by the Bootloader.
  • Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
  • Data retention: 20 years at 85°C/ 100 years at 25°C

Arduino Beetle Pin Configuration

Still, reading? Perfect. I hope you’ve got a clear idea about this board. In this section, we’ll cover the pin description of the pins incorporated on the board.

Analog Pins

There are 5 analog pins incorporated on the board. These pins can receive any number of values in contrast to digital pins which receive only two values HIGH and LOW.

PWM Pins

This board doesn’t incorporate DAC (digital to analog converter) but it does incorporate 4 PWM pins which are used to get some of the analog output’s functions. During this PWM (pulse width modulation) process, the board generates analog results with digital means.

Digital Pins

There are total 10 digital pins incorporated on board. These pins are developed to be configured as outputs or inputs based on the requirement. These pins are either ON or OFF. When they are ON they are in HIGH voltage state getting 5V and when they are OFF they are in LOW voltage state getting 0V.

Atmega32u4 Pinout

The following figure shows the pinout diagram of Atmega32u4.

Atmega32u4 Pin Description

In this section, we’ll cover the pin description of each pin incorporated on Atmega32u4.

Vcc

It is a digital voltage supply pin.

GND

This pin is connected to the ground.

Port B (PB7...PB0)

Port B is an 8-bit bidirectional I/O port that is incorporated with pull-up resistors. These resistors are used to limit the current and prevent it exceeding from a certain number. This port comes with efficient driving capabilities compared to other ports. When this port is used as an input, this will source current due to the port pins that are extremely pulled low. This happens when the pull-up resistors are activated.

Port C (PC6, PC7)

Port C is similar to Port B - an 8-bit bidirectional I/O port incorporated with pull-up resistors. When the pull up resistors are activated, Port C will source current with port pins extremely pulled low.

Port D (PD7..PD0)

Port D is an 8-bit bidirectional I/O port that comes with pull-up resistors. When the reset condition meets, the Port D pins are tri-stated.

Port E (PE6, PE2)

Only two bits... PE6 and PE2 are present on the device pinout. It is an 8-bit bidirectional port incorporated with internal pull-up resistors.

Port F (PF7..PF4, PF1,PF0)

Port F is a bidirectional port that acts like analog inputs to the A/D converter. Two bits PF2 and PF3 are not present on the product pinout.

D-

USB Full speed / Low Speed Negative Data Upstream Port. It should be attached to the USB D- connector pin along with the serial resistor 22W.

D+

USB Full speed / Low Speed Positive Data Upstream Port. It is connected to the USB D+ connector pin along with the serial resistor 22W.

UGND

USB pads ground.

UVCC

Regulator Input supply voltage applied to USB pads.

UCAP

Internal Regulator Output supply voltage applied to USB pads.

VBUS

USB VBUS monitor input.

RESET

This is a reset pin. A low level applied to this pin for a longer time will produce a reset. Shorter pulses may not generate a reset.

XTAL1

Input to the internal clock operating circuit and Input to the inverting Oscillator amplifier.

XTAL2

Output from the inverting Oscillator amplifier.

AREF

This is used as the analog reference pin for the A/D Converter.

AVCC

AVCC is the supply voltage pin for all the A/D Converter channels.

Communication and Programming

  • Recall, this module supports different communication protocols i.e. I2C, and UART.
  • The I2C is a two-wire communication protocol that carries two main lines called SCL and SDA. The former is a serial clock line required for the synchronization of all data transfer over the I2C bus. While the latter is a serial data line mainly employed to carry the data.
  • And the UART is mainly used for serial communication and comes with two lines Tx and Rx where the former is used to transfer the serial data and the latter is used to receive the serial data.
Arduino IDE software is used to program all types of Arduino Boards. Attach micro USB to the Beetle and select Arduino Leonardo from your board type on the Arduino IDE software.

Arduino Beetle Applications

This tiny little beast is a full system in a small package as it incorporates almost all functions like Arduino Leonardo. The following are some applications of Arduino Beetle.
  • Health and security systems
  • Creating a wireless keyboard
  • Industrial automation
  • Embedded systems
  • Student projects
  • Automatic pill dispenser
  • Water level meter.
You’ll find a lot of microcontrollers in the market that are more economical than the Arduino board. But still, most of the hobbyists and students prefer Arduino Board over microcontroller. The reason is clear. Arduino board comes with a big community that shares expertise and knowledge for a wide range of audiences. Help is readily available that you’ll never find in the case of microcontrollers. Moreover, when you select Arduino board over microcontroller, you don’t need additional components and extra peripherals to connect with the board, as this board comes with a lot of built-in functions, setting you free from the hassle of connecting a lot of components. Simply, you need to plug the device with the computer and play with it on the fly. That’s all for today. I hope you’ve enjoyed reading this article. If you’re unsure or have any questions, you can pop your comment in the section below, I’d love to help you the best way I can. Feel free to share your valuable suggestions and feedback around the content we share so we keep coming up with quality content customized to your exact needs and requirements. Thank you for reading the article.

Interfacing Flame Sensor with Arduino

Hello everyone! I hope you all will be fine and having fun. Today I am going to tell you that how can you make a simple program for Interfacing Flame Sensor with Arduino. Flame sensor is used in offices, home and at different places to detect the fire. First of all I would like to tell you about the working principle of the flame sensor. Flame sensor is a device designed for the detection of the fire and to respond it. They are usually designed for the detection of most frequently used industrial fuel e.g. diesel, gasoline, karosene, ethylene, hydrogen etc. They are designed in way to distinguish between the radiations from the sunlight and the actual flames. There different types of flame sensors e.g. Ultraviolet (UV) detectors, Infrared (IR) flame detectors, UV/IR detectors, IR/IR flame detectors, closed circuit video cameras. The purpose of these all flame detectors/sensors is almost similar i.e. to detect the fire and responding quickly to it. The flame sensors have a wide range of applications in our daily life e.g. fume cupboards, felt manufacture, nuclear industry, pharmaceutical industries, printing, spray booths, generator, storage tanks, industrial heating and drying systems etc.
Where To Buy?
No.ComponentsDistributorLink To Buy
1Flame SensorsAmazonBuy Now
2Arduino UnoAmazonBuy Now

Interfacing Flame Sensor with Arduino

In this section of the tutorial Interfacing Flame Sensor with Arduino, I will explain you the step by step procedure to make a simple algorithm or program in Arduino software for the interfacing of flame sensor with Arduino. The algorithm is pretty simple. I will set a threshold limit, when the temperature exceeds that limit, an LED will be turned on to show the there is something wrong. You can also attach a buzzer with the Arduino. When the fire will be detected buzzer will be turned on automatically. First if all I would like to share the complete source code for Interfacing Flame Sensor with Arduino with all of you guys.
  • You can download the complete source code here by clicking on the button below.
  • Just download the .rar file, extract it and enjoy the complete simulation.

Components Required

Here, I am going to show you the list of all the components used in this project.
  • Arduino UNO
  • Flame Sensor
  • LED
  • Soldering Iron
  • Soldering Gum
  • Power Supply (12V)
  • Jumper Wires
  • Varrow Board
Brief Description of the Components
  • Arduino UNO acts as the back bone of the project. It manipulates the whole source code uploaded to the board, prints the desired data on the serial monitor and also prints the executed commands on the LCD. Arduino UNO is shown in the figure below.
  • Power Supply of 12V is used to turn the entire system ON. Because, we can not test and verify our system until we have not switched it ON. Power supply used for this project is shown in the figure below.
  • Jumper Wires are used to make the connections of the all the components in order to make the complete circuit with proper working. Jumper wires are shown in the figure below.
  • Flame Sensor is used for the detection of the temperature and for showing the immediate response when the temperature is above the threshold. Flame sensor is shown in the figure below.
Circuit Diagram
  • Circuit diagram for the tutorial Interfacing Flame Sensor with Arduino is shown in the figure below.
  • You can run this project properly, by making the circuit first, identical to the circuit diagram shown in the figure above.
  • The analog pin A5 of the Arduino UNO will help us in reading the data from the sensor.
  • The other two pins of the sensor are connected to the supply of 5V and ground respectively as you can see from the above figure.

Block Diagram

  • The block diagram for the project Interfacing Flame Sensor with Arduino is shown in the figure below.
  • Power supply is provided in order to run the project properly.
  • Arduino is the backbone of the whole system and controls all of the devices used.
  • When the temperature crosses the adjusted threshold the LED will be turned ON to indicator that the fire is detected.
  • In normal condition LED will remain Off.

Source Code Descritption

  • Source code for Interfacing Flame Sensor with Arduino is given below.
  • Just copy the entire code and paste it in your Arduino software and upload it to the Arduino board.
#include<SoftwareSerial.h>//library for software serial object

int sensorPin = A0; // flame sensor is attached to A0 pin of Arduino

int sensorValue = 0; // Initial value of the sensor is 0

int led = 9; // an LED is attached to the pin no 9 of Arduino

void setup() //method used to run the code for the one time
{

pinMode(led, OUTPUT);//changint the mode of LED as an output

Serial.begin(9600);//rate at which arduino communicates with laptop

}

void loop()//method used to run the code repeatedly

{

Serial.println("Welcome to TechPonder Flame Sensor Tutorial");//prints on the serial monitor

sensorValue = analogRead(sensorPin);//reads the analog data from the sensor

Serial.println(sensorValue);//prints the sensor data on serial monitor

if (sensorValue < 100)//threshold for the LED indication

{

Serial.println("Fire Detected");//prints on the serial monitor

Serial.println("LED on");//prints on the serial monitor

digitalWrite(led,HIGH);//turning on the LED

delay(1000);//delay of 1 second

}

digitalWrite(led,LOW);//turning of the LED

delay(sensorValue);

}
  • First of all I have declared library of software serial.
  • Then I have defined the pins of Arduino UNO at which the flame sensor and LED are connected.
  • Then I have changed the mode of LED to output.
  • Then I have started reading the analog data from the flame sensor.
  • I have adjusted a threshold, when the temperature exceeds that value LED will be turned on.
  • When the temperature is below the threshold LED will remain off e.g in normal conditions.
So, that is all from the tutorial Interfacing Flame Sensor with Arduino. I hope you enjoyed this tutorial. If you face any sort of problem you can ask me in comments anytime without even feeling any kind of hesitation. I will try my level best to solve your issues in a better way, if possible. I will explore Arduino by making different projects on it and will share all of them with you as well in my later tutorials. Till then, Take care :)

Interfacing Temperature & Humidity Sensor with Arduino

Hello everyone! I hope you all will be absolutely fine and having fun. In the tutorial Interfacing Temperature & Humidity Sensor with Arduino I will tell you that how can you interface temperature and humidity sensor named as DHT11 with Arduino and how can you observe the temperature and humidity level using this sensor. This sensor has usually three pins but some of its types has four pins but only the three pins are of importance for us e.g. VCC, GND and the third pin for reading the data from the sensor. In the tutorial Interfacing Temperature & Humidity Sensor with Arduino, I will make a simple Arduino program which will estimate the level of temperature and humidity continuously and will display the value of both temperature and humidity on the serial monitor. You will see that the sensor will give different readings for the different environments.
Where To Buy?
No.ComponentsDistributorLink To Buy
1LCD 16x2AmazonBuy Now
2DHT11AmazonBuy Now
3Arduino UnoAmazonBuy Now

Temperature & Humidity Sensor with Arduino

I will tell you the step by step procedure that how can you interface DHT11 sensor with Arduino and how to make a simple program in Arduino software to read the data continuously from the sensor and how to display the obtained data on the serial monitor. You can also display this data on Liquid Crystal Display (LCD) as I have discussed in detail in my previous tutorial DC Motor Direction Control using Arduino, DC Motor Speed Control using Arduino, Stepper Motor Direction Control in Arduino and Stepper Motor Speed Control using Arduino.
  • You can download the complete source code here by clicking on the button below.
  • Download .rar file, extract this file and enjoy the complete simulation code.

Block Diagram

  • First of all, I would like to explain you the algorithm with the help of a block diagram.
  • It will help in better understanding of an algorithm.
  • The block diagram for interfacing of temperature and humidity sensor with Arduino is given in the figure below.
  • Power supply in necessary to turn the whole system ON.
  • DHT11 is connected with the Arduino UNO.
  • Arduino UNO reads the data from the DHT11 sensor and displays the obtained data on the serial monitor.
  • That data will also be displayed on the LCD.

Circuit Diagram

  • The complete wiring diagram for this project is shown in the figure below.
  • You can run this project properly, by making the circuit first, identical to the circuit diagram shown in the figure above.
  • The analog pin A3 of the Arduino UNO will help us in reading the data from the sensor.
  • The other two pins of the sensor are connected to the supply of 5V and ground respectively as you can see from the above figure.

Flow Chart

  • The flow chart will help you to understand the flow of the program while executing.
  • The flow chart for this project is shown in the figure below.
  • The data from the sensor can be estimated on the serial monitor only after opening the serial port
  • Then data will be displayed on the LCD and at end serial port must be closed in order to avoid the exchange of unwanted commands.

Source Code Description

  • The source code for this project is given below.
  • You have to just copy and paste the code given below in your Arduino software after properly interfacing DHT11 with the Arduino.
  • After uploading the code onto your Arduino board you will be able to observe the humidity and temperature and humidity level on serial monitor.
#include<dht.h>// DHT11 humidity sensor library
#include<LiquidCrystal.h> //LCD library
dht DHT; //Creating sensor object
#define DHT11_PIN A3 // Sensor is connected to Arduino pin 3
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);// LCD connected with Arduino on these pins
void setup()
{
  Serial.begin(9600); //setting baud rate
  Serial.println("   =====================================================");
  Serial.println("   ||   Welcome to Temperarue and Humidity Detector   ||");
  Serial.println("   =====================================================");
  Serial.println("");
  lcd.begin(20, 4); // initialinzing the LCD order
  lcd.setCursor(4,1); //Setting the cursor on LCD
  lcd.print("Welcome to");//printing on LCD
  lcd.setCursor(2,2);
  lcd.print("Humidity detector");
  delay(2000);//adding delay of 2 secons or 2000 msec
  }
void loop()//method used to run the code repeatedly
{
  int chk = DHT.read11(DHT11_PIN); //Reading data from sensor
  Serial.print(" Humidity = ");//prints on the serial monitor
  Serial.print(DHT.humidity);// prints obtained humidity on serial port
  Serial.print(" g/m^3");

  lcd.clear();//clears all the data on LCD
  delay(1000);//adding delay of 1 second
  lcd.display(); //starting the display of LCD after clearing
  lcd.setCursor(0,0);
  lcd.print("Humidity=");
  lcd.print(DHT.humidity);
  lcd.print(" g/m^3");
  
  Serial.print("    \tTemperature = ");//prints on the serial monitor
  Serial.print(DHT.temperature, 1);//prints obtained temperature on serial port
  Serial.println(" degrees");

  lcd.setCursor(0,1);
  lcd.print("Temperature=");//prints on LCD
  lcd.print(DHT.temperature, 1);//prints the obtained temperature on LCD
  lcd.print(" deg");

  lcd.setCursor(1,2);
  lcd.print("www.TheEngineering");
  lcd.setCursor(4,3);
  lcd.print("Projects.com");

  delay(2000);//adding the delay of 2 seconds
  }  
  • I am going to explain you that how this code is working!
  • First of all I have added the library in the libraries folder at the destination where the Arduino software is installed.
  • I have defined DHT11’s library in the source code then.
  • Then I have defined the library for LCD.
  • I have defined the pin at which DHT11 is attached with the Arduino board.
  • Then I have defined the Arduino pins at which the LCD in interface.
  • Then by opening the serial port I have started to print the level of temperature and humidity on the serial monitor as well as on the 20×4 LCD.
  • At the end, I have added the delay of 2 seconds so that the speed of the data to be printed on the serial monitor can be reduced to some extent in order to observe properly.
  • This was the brief description of the source code.
That is all from the tutorial Interfacing Temperature & Humidity Sensor with Arduino. I hope you enjoyed this tutorial. If you are facing any problem regarding any of my tutorials, you can ask me freely in the comments without even feeling any kind of hesitation, I will try my level best to solve you issues in a better way, if possible. I will explore Arduino by making further projects and will share them with you as well. So, till then, Take Care :)
Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir