Category Archives: Hardware

ESP32 Wifi-Bluetooth Module

In this article we describe briefly the ESP32  chip from Espressif

ESP32

This lower power SOC  contains a 32 bit MCU  with bluetooth and wifi modules. At the Espressif web site we can find the detailed informations about the ESP32

ESP32 Resources

The device datasheet is available in the following pdf document

ESP32 Datasheet

The ESP32 modules are available individually or in a development kits; the last system simplifies its usage as the development kit contains all the hardware to use rapidly the soc device; we are already ready to load the firmware and use the device.

On internet various web sites describe home automation or iot projects using this soc.

A reference site for the ESP32  is

esp32

At above link we can find the various development platforms utilized  for the ESP32. The most relevant  are

  • Arduino Ide

ESP32 Arduino

  • ESP-IDF

ESP32 IDF

  • Micropython

MicroPython

  • PlatformIO

PlatformIO

  • Firmware Lua

LuaNode

Lua-RTOS-ESP32

Nodemcu Development

We can buy the ESP32 modules/dev kits from various internet online websites, for example ebay

ESP32 on ebay

Different ESP32  modules are available from different vendors

Espressif esp-wroom-32

AI-Thinker esp32s

At the link

http://esp32.net/

different hardware configurations available are listed.

As development kits we report

AI-Thinker NodeMCU-32S

DoIT ESP32 Dev Kit

There are development kits based on esp32 that also integrate a LORA wireless  module internally

Lora

We report for example the following

Heltec Wifi LoRa 32

TTGO LoRa32

In the next articles we’ll describe how to build firmwares and use the ESP32 MCU.

Linkit 7688 Duo Connections

After the board specifications summary

Linkit 7688 and 7688 Duo Development Boards

this article describes how to connect to the board the following components that will be used later:

  • Micro USB OTG to the Host port
  •  USB  TTL Serial Device
  • 5 V power supply   to the port USB Power

The following diagram shows the connections to the board

Linkit connections

The table below shows the connections between the USB  TTL Serial device and the board

USB TTL PinLinkit Pin
RXUART_TXD2
TXUART_RXD2
GNDGND

In the netxt article we will show how to build the firmware for the Linkit 7688 and Linkit 7688 Duo

OpenWrt building for Linkit 7688 and 7688 Duo

Linkit 7688 and 7688 Duo Development Boards

This article briefly describes the Mediatek Linkit 7688 and 7688 Duo development boards. Below the links for the two boards

Linkit 7688

7688Linkit 7688 Duo

7688duo

The  specifications of the two boards are the following

Linkit 7688

ModelLinkit Smart 7688
MPUMT7688AN, MIPS24KEc, 580MHz
RAM128 Mb DDR2
Flash memory32 Mb
GPIO22 (MT7688AN) 3,3 V
PWM4 (MT7688AN) 3,3 V
Expernal Interrupts22 (MT7688AN)
SPI1 (MT7688AN)
UART Lite3 (MT7688AN)
PowerMicro USB 5V DC or PIN 3,3 V
USB HOSTMicro USB
EthernetBy extension
Wifi1T1R 802.11 b/g/n (2.4G)
User storareMicro SDSDXC sdcard
Dimensions55.7 x 26 mm
Weight39 grams

Linkit 7688 Duo

ModelLinkit Smart 7688 Duo
MPUMT7688AN, MIPS24KEc, 580MHz
MCUAtmel AVR 8MHz
RAM128 Mb DDR2
Flash memory32 Mb
GPIO3 (MT7688AN) 3,3 V
24 (ATmega32U4)
PWM8 (ATmega32U4) 3,3 V
External Interrupts8 (ATmega32U4)
SPI1 (ATmega32U4)
UART Lite1 (ATmega32U4)
1 (MT7688AN)
PowerMicro USB 5V DC or PIN 3,3 V
USB HOSTMicro USB
EthernetBy extension
Wifi1T1R 802.11 b/g/n (2.4G)
User storageMicro SDSDXC sdcard
Dimensions55.7 x 26 mm
Weight39 grams

The two boards share the same Microprocessor (MPU MT7688AN), but in the case of the Linkit 7688 Duo this MPU  is supported by the Atmel Microcontroller (MCU ATmega32U4) for device management.

The interfacing schemes are shown with peripherals in the two cases below

linkit_smart_7688lintit_smart_7688-duo

The operating system used for both bords is OpenWrt, but the peripherals management is different. While in the case of Linkit 7688 we only rely on MPUs and specific libraries to manage the interfacing with peripherals, for the Linkit 7688 Duo the ATmega32U4 microcontroller manages the peripherals. The programming  of the ATmega32U4 is executed with the Arduino IDE by adding the Linkit 7688 Duo board support into the tool as specified at the following link

Arduino Ide support for Linkit 7688 Duo

At the followning  link there is the Mediatek documentation for the two boards

Linkit 7688 and 7688 Duo Resources

The following pages  show how the two boards can interact with the various peripherals

Linkit 7688 peripherals

Linkit 7688 Duo peripherals

At the Mediatek site, there are also examples to follow step by step to test the various features of the development boards.

The next article shows how to connect the USB OTG cable , to use with a USB drive, an USB TTL serial cable,  to monitor the device,  to the board

 Linkit 7688 Duo Connections

MQTT with BeagleBone and ESP8266 – MQTT on ESP8266 with Relay

After the article about the connection with the temperature and humidity sensor

MQTT with BeagleBone and ESP8266 – MQTT on ESP8266 with temperature sensor

in this article we set the esp8266 to run a relay. Here is how we connect the relay to the ESP module

nodemcu relay

In this example too we will consider the option of putting the nodemcu in sleep. To have the node back form the sleep the system has to reboot and  it is necessary to connect the PIN D0 (GPIO16) to RST PIN as specified in the nodemcu documentation

Nodemcu sleep

Let us take a look at the lua code; It consists of init.lua and relay.lua files.

We analyze now the main points of each file

  • init.lua

In the file we set the the parameters to access the wifi network, the address and port of the MQTT broker  and the file to be run on the ESP after wifi connection to the access point is estabilished. If the ESP doesn’t acquire the network address the system is restarted.

  • relay.lua

The relay.lua file manages the relay, the subscription on MQTT broker with submission of the data. Global parameters have been set to manage the topic, the waiting time in tmr.alarm. There are in particular the following topics

  • /home/relay1/status : Status topic. The status is sent at the start and at  request from the command topic /home/relay1/command.
  • /home/relay1/monitor: Status of the esp sent periodically to this topic.
  • /home/relay1/command: Other clients can send commands to the esp:
    • Restart: Restarts the esp.
    • Sleep n: Put to sleep for n seconds the esp.
    • ON: Turn on the  relay.
    • OFF: Turn off the  relay.
    • Status: Request of tthe relay status (ON or OFF).

There are various service functions to manage all. The comments in the code describe each feature.

In the next article we will set up the webserver on Beaglebone and the websocket configuration for Mosquitto always on the Beaglebone

MQTT with BeagleBone and ESP8266 – WebServer and MQTT WebSocket

MQTT with BeagleBone and ESP8266 – MQTT on ESP8266 with temperature sensor

After loading the firmware into the device esp8266

MQTT with BeagleBone and ESP8266-MQTT ESP8266

we now connect this module with a DHT11 temperature and humidity sensor. Here is how we connect the sensor to the ESP module

nodemcu dht11

In this example we will consider the option of putting the nodemcu in sleep. To have the node back form the sleep  the system has to reboot and  it is necessary to connect the PIN D0 (GPIO16) to RST PIN as specified in the nodemcu documentation

Nodemcu sleep

Let us take a look at the lua code; It consists of init.lua and tempumid.lua files.

We analyze now the main points of each file

  • init.lua

In the file we set the the parameters to access the wifi network, the address and port of the MQTT broker  and the file to be run on the ESP after wifi connection to the access point is estabilished. If the ESP does’t acquire the netowrk address the system is restarted.

  • tempumid.lua

The temumid.lua file manages the measurement of temperature and humidity, the subscription on MQTT broker with submission of the data. Global parameters have been set to manage the topic, the waiting time in tmr.alarm. There are in particular the following topics

  • /home/room1/temperature: measured temperature topic.
  • /home/room1/humidity: measured humidity topic.
  • /home/room1/status : Status topic. The status is sent at the start and at  request from the command topic /home/room1/command.
  • /home/room1/monitor: Status of the esp sent periodically to this topic.
  • /home/room1/command: Other clients can send commands to the esp:
    • Restart: Restarts the esp.
    • Sleep n: Put to sleep for n seconds the esp.

There are various service functions to manage all. The comments in the code describe each feature.

In the next article we will set up the esp with the relay

MQTT with BeagleBone and ESP8266 – MQTT on ESP8266 with Relay

 

ESP8266 Wifi Module

In this article we describe briefly the ESP8266 wifi chip from Espressif

ESP8266

This lower power SOC  contains a 32 bit RISC MCU and a wifi module. At the Espressif web site we can find the detailed informations about the ESP8266

ESP8266 Resources

The device datasheet is available in the following pdf document

ESP8266 Datasheet

The ESP8266 modules are available individually or in a development platform; the last system simplifies its usage as the development kit contains all the hardware to use rapidly the soc device; we are already ready to load the firmware and use the device.

On internet various web sites describe home automation or iot projects using this soc.

A reference site for the ESP8266 is

ESP8266 Forum

In the forum we can find the various systems utilized to develop applications for the ESP8266. The most relevant tools are

  • Arduino Ide

Arduino IDE

ESP8266 Arduino github

  • Espressif SDK

SDK Forum

ESP8266 SDK

  • PlatformIO

PlatformIO

  • Nodemcu

Nodemcu at esp8266.com forum

Nodemcu

Nodemcu github

We can buy the ESP8266 module from various internet online websites, for example ebay, as a single module

ESP8266 on ebay

or as a development kit

ESP8266 Development Kit

Different ESP8266  AI-Thinker modules are available

AI-Thinker

We’ll use the Nodemcu development kit. This kit contains the AI-Thinker ESP-12/ESP-12E modules. In the ebay search we have as results  ESP8266 ESP-01 modules too and development kits from other vendors.

On the Nodemcu github we can find the development kits we’ll use afterward. There are two versions

  • Nodemcu V1 (ESP-12E) development kit

Nodemcu devkit V1.0

  • Nodemcu  V0.9 (ESP-12) development kit

Nodemcu devkit V0.9

At the following link we can find the description of the different AI-Thinker modules and as obtain informations about the flash inside the device

ESP8266 Modules

From the Nodemcu github

Nodemcu Devkit

the pins available in the devkit 1.0  are the following

In next articles we’ll describe how to obtain the Nodemcu firmware, how to load it on the device, how to compile it and we’ll show some example using the LUA scripting language utilized by the Nodemcu firmware

Lua

with the LUA software modules available for the ESP8266

Nodemcu documentation

In the next article we’ll describe the Nodemcu firmware

Nodemcu Firmware

Beaglebone development board

In this article we describe briefly the Beaglebone Black development board. What said is applicable also to its derivatives (Green, Enhanced) for most of the information

Beaglebone Black Board

From the above link  there is a comparison chart between the various models.

The card is the result of an Open Source project with all its elements distributed on site

Beaglebone Black Design Files

Below are the main features of the BeagleBone Black Rev. C (other versions differ with respect to Black).

CPUTexas Instruments Sitara AM3358BZCZ100, 1GHz, 2000 MIPS
Graphics EngineSGX530 3D, 20M Polygons/s
Memory512 MB DDR3L 800Mhz
On Board Flash4Gb, 8bit Embedded MMC
Analog Pins7
Digital Pins65 (3.3V)
PMIC (Power management integrated circuits)TPS65217C PMIC and one additional LDO (Low Dropout Regulator)
Debug20 pin JTAG CT Iopional, Serial Header
PowerMini USB,DC Jack, 5V DC via Expansion Header
Indicators1 Power, 2 Ethernet, 4 Led User controllable
USB client PortAccess to USB0, client mode via mini USB
USB Host PortAccess to USB1, socket type A, 500 mA LS/FS/HS
Serial PortAccess UART0 via Header 6 pin 3.3 V TTL
Ethernet10/100 RJ45
SD/MMC ConnectormicroSD 3.3 V
User InputReset Button, Boot Button, Power Button
Video Output16b HDMI, 1280x1024 (MAX)
AudioVia HDMI, Stereo
Supported Interfaces4x UART, 8x PWM, LCD, GPMC, MMC1, 2x SPI, 2x I2C, A/D Converter, 2xCAN Bus, 4 Timers,2 PRUs
Weight39.68 grams

From the link

Beaglebone Black Wiki

there is a complete description of all the features and sofware compatibility. The System Reference Document, available as a link in the site mentioned above, can be downloaded from the link

System Reference Beablebone Black

The card being Opensource and with many outputs and built-in controls lends itself very well to prototyping of IOT systems, Automation, Home Automation. The hardware functionality expansion can be executed by the usage of expansion cards called Capes

Beaglebone capes

The main linux distribution for the BeagleBone Black card is Debian. On the Debian distribution for BeagleBone it is also available  Cloud9

Cloud 9 Interface

that allows you to interact easily with the hardware on the BeagleBone Black. In subsequent articles we describe the installation, creation of the image and various uses of the card.

Here is the link to the software and hardware features of the card; in particular the page shows the input/outpuy pin of the BeagleBone Black

Beaglebone Black software and hardware

The card can be purchased by following the links listed on the website

Beaglebone Black Purchase

from online retailers or electronics stores.

Enigma2 set-top-boxes

In this article we describe briefly a hardware category using embedded linux in satellite/terrestrial/cable set-top-boxes with the Enigma2 framework.

Enigma2 system is based on Openembedde/Yocto

Openembedded

Wiki Openembedded

and is developed in python; in tv set-top-boxes is present a linux system with its system drivers. This framework was developed and installed in its hardware by Dream Multimedia TV

Dream Multimedia

Dreambox wiki

Dream Multimedia TV distributed source code allowing the creation of alternative system images by  various development teams.

Counterfeits of Dream Multimedia set-to-boxes appeared in the market, so they restricted the license and source code distribution, trying to prevent their set-top-boxes cloning.

Other set-top-boxes manufactures developed their version of the open source Enigma2 framework; various developed teams gathered in the OE-Alliance group to develop the common parts of the system, as drivers, a common github, etc, letting to each team their custom personalization. Here is a list of OE-Alliace group development teams and other important teams

OE-Alliance Group

This is the common github link

OE-Alliance github

Using Enigma2 framework it is possible to add other functionalities developing addons, strengthening clearly the set-top-box.  HD set-top-boxes use almost exclusively MIPS Broadcom Socs, but with the UHD era manufacturers are beginning to use ARM Broadcom Socs.

Here are some set-top-boxes manufactures that use Enigma2 in their products

Gigablue

Xtrend

Vuplus

In other blogs we’ll decrive how to setup the envinroment and generate an Enigma2 image from source code based on OE-Alliance github or other important team.

Orange PI PC board

In this article we describe an ARM mini pc, similar to Rasperry PI, but cheaper.

Looking at the manufacturer website

http://www.orangepi.org/

we put in evidence the main features of the board:

CPUH3 Quad-core Cortex-A7 H.265/HEVC 4K
GPUMali400MP2 GPU @600MHz·Supports OpenGL ES 2.0
RAM1GB DDR3 (shared with GPU)
StorageTF card (Max. 64GB)
Network10/100M Ethernet RJ45
Audio InputMicrophone
Audio OutputJack 3.5 mm and HDMI
USB portsThree USB 2.0 HOST, one USB 2.0 OTG
Low level Periphericals40 Pins Header,compatibile with layout Raspberry Pi B+
GPIO(1x3) pinUART, ground
LEDPower Led and Status Led
KeyIR input, POWER

This board belongs to a products family using the same soc, but with different accessories (mmc, ram, network, etc). This model is available for the purchase also from the manufacturer site.

For this device we have various Linux distribution, available from the manufacturer site, but we focus on the following flavours:

  1. Openelec : Media center usage linux distribution.
  2. Armbian: Server/desktop Linux image.

About point  1 informations are available at the following web site:

http://www.orangepi.org/orangepibbsen/forum.php

while from Armbian site we can dowload the Armbian Orange PI image:

http://www.armbian.com/orange-pi-pc/

In next blogs we’ll treat the installation, compilation of these Linux images on Orange PI PC board.