About Rik

Myself Rik and I am founder of Riktronics. I study Electronics and Communication Engineering in IIE. My hobby is playing with electronics and making various projects, mainly about embedded systems. Love to do coding, and making tutorials about electronics/programming. Contact me in any need at abhra0897@gmail.com My blog : riktronics.wordpress.com

SUNY Polytechnic Creates 3-in-1 Device That Can Be A Diode, A MOSFET And A BJT

In a recently published study, a team of researchers at SUNY Polytechnic Institute in Albany, New York, has suggested that combining multiple functions in a single semiconductor device can significantly improve device’s functionality and efficiency.

Nowadays, the semiconductor industry is striving to scale down the device dimensions in order to fit more transistors onto a computer chip and thus improve the speed and efficiency of the devices. According to Moore’s law, the number of transistors on a computer chip cannot exponentially increase forever. For this reason, scientists are trying to find other ways to improve semiconductor technologies.

To demonstrate the new technology which can be an alternative to Moore’s law, the researchers of SUNY Polytechnic designed and fabricated a reconfigurable device that can be a p-n diode (which functions as a rectifier), a MOSFET (for switching), and a bipolar junction transistor (or BJT, for current amplification). Though these three devices can be fabricated individually in modern semiconductor fabrication plants, it often becomes very complex if they are to be combined.

reconfigurable 3-in-1 semiconductor device
the reconfigurable 3-in-1 semiconductor device

Ji Ung Lee at the SUNY Polytechnic Institute said,

We are able to demonstrate the three most important semiconductor devices (p-n diode, MOSFET, and BJT) using a single reconfigurable device. We can form a single device that can perform the functions of all three devices.

The multitasking device is made of 2-D tungsten diselenide (WSe2), a new transition metal dichalcogenide semiconductor. This class of materials is special as the bandgap is tunable by varying the thickness of the material. It is a direct bandgap while in single layer form.

Another challenge was to find a suitable doping technique as WSe2 lacks one being a new material. So, to integrate multiple functions into a single device, the researchers developed a completely new doping method. By doping, the researchers could obtain properties such as ambipolar conduction, which is the ability to conduct both electrons and holes under different conditions. Lee said,

Instead of using traditional semiconductor fabrication techniques that can only form fixed devices, we use gates to dope.

These gates can control which carriers (electrons or holes) should flow through the semiconductor. In this way, the ambipolar conduction is achieved. The ability to dynamically change the carriers allows the reconfigurable device to perform multiple functions. Another advantage of using gates in doping is, it saves overall area and enable more efficient computing. As consequence, the reconfigurable device can potentially implement certain logic functions more compactly and efficiently.

In future, researchers plan to investigate the applications of this new technology and want to enhance its efficiency further. As Lee said,

We hope to build complex computer circuits with fewer device elements than those using the current semiconductor fabrication process. This will demonstrate the scalability of our device for the post-CMOS era.

Samba : Set Up Your Raspberry Pi As A Local Network File Server

Samba is the Linux implementation of the SMB/CIFS file sharing standard used by Windows PCs and Apple computers and widely supported by media streamers, gaming consoles, and mobile apps. In this tutorial, you will learn how to use a Raspberry Pi as a file server where you can save backups and share files with all the other computers on your network using Samba.

You need the following things for this tutorial:

  • A keyboard (Wired or wireless)
  • A mouse (Wired or wireless)
  • Raspberry Pi (Model 3B is recommended)
  • A 32GB (or smaller) micro SD card
  • Internet connection (Only to download Samba)

The SD card must have a reasonable amount of free storage space without requiring any extra steps to make it accessible. However, if you want extra storage, simply mount a large USB drive and create a Samba entry for it. If you want to keep your Samba file server compact and portable, install Raspbian on a 128Gb or 256GB SD card. Before purchasing, check online whether the SD card is fully compatible with Raspberry Pi or not.

Install Samba

Samba is available in Raspbian’s standard software repositories. Update your repository index, make sure that the operating system is fully updated, and install Samba using apt-get. Open a Terminal and type:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install samba samba-common-bin

The download and installation process will start and it will take a while depending on your internet speed.

Create A Shared Directory

Now you need to create a shared directory that will be accessible by other PCs/mobiles connected to the same network. You can put it anywhere, but in this tutorial, it will be at the top level of the root file system of the Pi’s microSD card. Type the following command:

sudo mkdir -m 1777 /share

To help prevent the directory from being unintentionally deleted, the above command sets the sticky bit (1) and gives everyone read/write/execute (777) permissions on the shared directory.

Configure Samba

In this step, edit the smb.conf  file to configure Samba to share the selected directory and allow users to perform various actions like read, write etc. Open the smb.conf file using the following command:

sudo leafpad /etc/samba/smb.conf

You need to add the following entry:

Comment = Pi shared folder
Path = /share
Browseable = yes
Writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes
Configure Samba On Raspberry Pi
Configure Samba On Raspberry Pi

As per the above configuration, anyone can read, write, and execute files in the shared directory, either by logging in as a Samba user or as a guest. Just omit the guest ok = yes line if you don’t want to allow guests. To share a larger external hard disk, simply create a smb.conf entry for the path you want to share across the network (here the external hard disk).

Create A User & Start Samba

Everything is configured and now it’s time to create a user. To set up a password for the user, enter the following command:

sudo smbpasswd -a pi

Then set a password as prompted. It’s recommended that the password should be different from your Pi’s login password. Finally, restart the Samba and set it to start automatically when the Raspberry Pi starts up. Enter the following command:

sudo /etc/init.d/samba restart

Once you’ve made sure that you can locate your shared folder on the network, you can safely disconnect the mouse, monitor, and keyboard from your Pi and just leave it running as a headless file server.

WD PiDrive Node Zero – A low-energy hard drive coupled with a Pi Zero

The WD PiDrive Node Zero is a compact, all-in-one unit that includes a WD PiDrive connected to a Raspberry Pi Zero through a custom adapter board with 2 USB ports. This unit offers an affordable, low-power storage node with an onboard computer. Suitable for data logging, offline analytics, and applications where stand-alone operation are required due to network or privacy-related limitations restrictions.

The PiDrive is Western Digital Corporation‘s low-energy hard drive, designed particularly for the Raspberry Pi. It replaces the regular SATA III port with a micro-USB connection. It’s a compact combination of USB hub, Pi Zero and 2.5″ hard drive that could easily be VESA (Video Electronics Standards Association) mounted behind a screen or tucked away in a neat case.

WD PiDrive Node Zero Exploded View
WD PiDrive Node Zero Exploded View

The WD PiDrive Node Zero comes with a 4GB microSD preloaded with a customized version of the popular NOOBS (New Out of Box Software). On first boot, Raspbian gets installed in the primary hard disk and not on the 4GB microSD. The SD card boots the device, but you run it from the hard drive. So you do not have to switch between the two drives.

Western Digital suggests this device as:

Ideal for video recording, data logging, offline analytics, and applications where stand-alone operations are needed because of network limitations or privacy/security restrictions.

As the Pi Zero has neither onboard WiFi module nor ethernet connector, you have only two options for taking a PiDrive Node Zero online. Either add a USB-to-Ethernet adapter and hook up to a wired network or use a USB WiFi dongle to access WiFi connection. The newer Pi Zero W has onboard WiFi chip. So, you can replace the Pi zero of WD PiDrive with a Pi Zero W to gain easier WiFi access.

The WD PiDrive Node Zero kit comes with the following:

  • WD PiDrive 314GB
  • Raspberry Pi Zero
  • USB Adapter board (PCBA) with full sized ports
  • 4GB microSD card (with preloaded software)
  • Mini HDMI adapter cable
WD Pi Drive Node Zero Kit
WD Pi Drive Node Zero Kit

Once you are connected to a network, you can make amazing DIY projects like data logging weather station, JukeBox with something like Volumio or PiMiusicBox for streaming your whole music collection, mini-DLNA and Samba file server, mobile backup device and much more.

Conclusion: Out of the box, this product runs fantastically. The inclusion of the customized NOOBS installer was a smart move and makes installation a lot easier. Disassembling the unit is not at all user-friendly and the lack of networking option is a limiting factor. But it remains a charming and handy piece of kit.

Post Tweets With Your Raspberry Pi

Raspberry Pi is famous for its great computing strength and ability to run the Linux operating system. In today’s tutorial, you’ll learn how to make your Raspberry Pi tweet. You can add extra features to this project to post tweets autonomously if any specific event occurs. Let’s get started.

Required Parts

You’ll need following parts to make this project.

  • Raspberry Pi running Raspbian OS (Any model)
  • USB Mouse
  • USB Keyboard
  • HDMI Compatible Monitor
  • HDMI Cable
  • USB power supply for Raspberry (5V 2A)
  • Working Internet Connection

Create App In Twitter

You need to create an app in Twitter so that Raspberry Pi can use to make tweets on your behalf. Go here to make a twitter app. The Raspberry Pi will require following parameters to make tweets:

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

You can find all these details from your app.

Creating An App In Twitter
Creating An App In Twitter

Store Keys In Raspberry Pi

In this step, you need to create a python file in your Raspberry Pi and store all the Keys and Tokens there. Create a file named keys.py in your working folder with all information in it.

consumer_key = "Place your consumer key here"
consumer_secret = "Place your consumer secret key here"
access_token = "Place the access token here"
access_token_secret = "place the access token secret here"
Get Access Keys And Access Tokens From App
Get Access Keys And Access Tokens From App

Now, save the file and go the nex step of this tutorial.

Install Twython

Well, what is Twython actually? Twython is the premier Python library providing an easy way to access the Twitter data. It’s been tested by companies, educational institutions and individuals alike. This amazing library will make our job a lot easier and the code much shorter. To install the Twython library, follow the given steps:

 sudo apt-get update sudo apt-get upgrade
 sudo apt-get install python-setuptools
 sudo easy_install pip
 sudo pip install twython
 sudo pip install requests
 sudo pip install requests-oauthlib

pip is required to install Twython, so it’s installed in 3rd step. But if you already have pip installed, just ignore that step.

Write The Python Script & Run It

Open a file in your working directory in your Raspberry Pi and rename it to twitter.py. Make sure that it is in the same directory wit previously created keys.py file. Now, copy-paste the following code using any editor or IDE:

import sys

from twython import Twython
from keys import (
twitter = Twython(
message = "My first tweet using Rapberry Pi! Yeh!"
print("Raspberry Pi successfully tweeted: %s " % message)

Pretty simple, isn’t it? Actually, the Twython library performs lots of tasks behind the screen keeping the code surprisingly small.

Now, save the file and open terminal in your raspberry pi. Write the following command and hit the Enter key to run this Python script:

python twitter.py

That’s all. Now you can see that is your Raspberry Pi is tweeting successfully.

Plug And Debug With ScanaQuad SQ200 Logic Analyzer and Signal Generator

The ScanaQuad 200 by Ikalogic is a high-performance 4-channel logic analyzer and digital pattern generator. It is designed to be the best companion of a hobbyist when working on serial protocols like UART, SPI, I2C, 1-Wire, USB, I2S, CAN, LIN, RS232, RS485, and more. With the ScanaQuad 200 Logic Analyzer, you can capture signals, you can play them back, and you can even program genuine test signals using ScanaStudio software and generate them.

Connecting ScannaSquad with PC to analyze signal
Connecting ScanaQuad with PC to analyze signal

Being able to capture and generate logic patterns simultaneously with a single tool, it is quite useful while testing and debugging logic signals. Now, you can achieve these same features with modern function generators and oscilloscopes. But unfortunately, these devices usually carries a price that puts them out of reach of those who only need them occasionally. So, the ScanaQuad is the best and the cheapest solution for hobbyists.

The sampling frequency of the ScanaQuad SQ200 is minimum 10KHz and maximum 200MHz, with 50MHz of input bandwidth. It has a stunning sampling resolution of ±5ns only. SQ200 is capable of handling ±15V input signal in continuous signal mode and the ±50V input signal in 10ms pulse mode.  The function of the four ports of this logic analyzer can be defined by the user with the help of the ScanaStudio software. The user can also control pulse width and duty cycle of the output signal. Complex data sequences may be programmed to simulate several communication protocols using JavaScript. ScanaQuad SQ200 comes with predefined sets of various protocol decoders. This logic analyzer even allows users to create their own protocol decoders.

The following table shows the input characteristics of SQ200:

Input resistance (Fixed) 1MΩ
Input resistance (optional) 10KΩ
Input Capacitance (Max.) 4pF
Input voltage range (continuous) ±15V
Input voltage range (10ms pulse) ±50V
Pull-Up resistance (optional) 10KΩ
Low-Level input voltage (VIL MAX) Adjustable
High-Level input voltage (VIL MIN) Adjustable
Adjustable threshold range 0V to 4.5V
Threshold hysteresis 350mV

The following table represents output characteristics:

Output resistance 270Ω
Output current (Max.) 20mA
Output High-Level voltage (VOH) Adjustable
Adjustable output voltage range (VOH) 1.65V to 5.5V

Finally, the below table shows all the timing characteristics:

Sampling Frequency (Max.) 200MHz
Sampling Resolution (Max.) ±5ns
Input bandwidth (Max.) 50MHz
Output frequency (Max.) 50MHz
Sampling Frequency (Min.) 10KHz
Embedded memory 16MB
Sampling Depth (Points/channel) 4M
Sampling Period (Max. at FS = 1MHz) 4s
Sampling Period (Max. at FS = 25MHz 160ms
Sampling Period Example (Max. no. of 115200 BAUD UART words at FS = 1MHz) 40K Words
SqannaStudio software shows analyzed signal
SqannaStudio software shows analyzed signal

ScanaQuad SQ200 supports lots of protocols by default and user can add his/her own protocol as mentioned earlier. Supported protocols (default) are:

  • 1-Wire
  • CAN
  • DHT11/22
  • DMX-512
  • HC-SR04
  • I²C
  • I²S
  • JTAG
  • LCD at 4 bits
  • LIN
  • Manchester
  • Maple
  • MIDI
  • NMEA 0183
  • nRF24L01
  • Oregon Scientific
  • Parallel Bus
  • PWM
  • SENT
  • SPI
  • SPI WIZnet W5100
  • UART
  • USB 1.1

The SQ200 has a really tiny form factor of 50mm × 50mm with a 7.5mm of thickness. As it weighs only 80g, you can carry it easily in your pocket without any problem. You can purchase this amazing product from the official site of IkaLogic at 149€ and change the way you debug and analyze signals.

Lightweight GSM Mobile With Arduino UNO and Nextion Display

Avishek Hardin at Arduino Project Hub designed a lightweight mobile using a GSM module, an Arduino UNO, and a Nextion touch screen display. The lightweight mobile has the following features:

  • Make calls
  • Receive calls
  • Send SMS
  • Receive SMS
  • Delete SMS

In this project, he uses a GSM SIM900A module to establish the cellular communication. The GSM SIM900A is an all-in-one cellular module that lets you add voice, SMS, and data to embedded projects. It works on frequencies 900/1800MHz and uses the RS232 standard to communicate with MCUs. Baud rate of this module is adjustable from 9600 to 115200 through specific AT Commands.

This GSM mobile features a Nextion touch display to take input from the user and visualize the GUI. Its easy-to-use configuration software (Nextion Editor) allows you to design your own interfaces using GUI commands. All GUI data is stored in Nextion display instead of the master MCU. Thus, lots of program space in MCUs can be saved efficiently and it makes the development procedure effortless. The Nextion displays communicate with microcontrollers over UART which is supported by a wide range of MCUs.

Required Parts

Required pats for this project
Required parts for this project

Required Tools


Connect the Nextion display and the GSM module with your Arduino using following instructions:

  • Nextion +5V to Arduino VDD_5v.
  • Nextion RX to Arduino pin 11
  • Nextion Tx to Arduino pin 10
  • Nextion GND to Arduino GND_0v.
  • GSM Rx to Arduino pin 1
  • GSM TX to Arduino pin 0
  • GSM GND to Arduino GND_0v.
Wiring Diagram
Wiring Diagram of Arduino-based GSM mobile

Program The Nextion Display

First of all, you need to design an HMI file using Nextion Editor. This editor allows you to design the interfaces using plug-and-play components like text, button, progress bar, pictures, gauge, checkbox, radio box, and much more. You can set codes and properties for each of these components later.

Design GUI using Nextion Editor
Design GUI using Nextion Editor

In this project, 8 different pages are used to design the GUI. All the icons used are easily available on the internet. Icons are resized and modified using an open source tool paint.net. Touch events like press and release are also covered when components are touched. More information on Nextion display commands can be found on this wiki page.

Designing dial pad using Nextion Editor
Designing dial pad using Nextion Editor

Steps To Upload

  • Load the .HMI file into the editor. Link to the Github repository is here.
  • Compile the .HMI file (just under the menu bar).
  • Go to File > Open build folder > Copy the .tft file > Paste into SD card. Note: make sure the SD card is formatted to FAT32.
  • Once copied, insert the SD card into the Nextion display and then turn the power on.
  • Wait for the .tft to upload.
  • Power off the Nextion, securely remove the SD card and then again power on the display.
  • Now you should see your new interfaces on the Nextion Display.

Program The Arduino

The Arduino is the brain of this project. It takes input from the Nextion display, sends commands to GSM module to create the cellular connection, and shows information on the display. This project does not use any Nextion library due to lack of documentations and difficulties to understand. Moving on without using libraries seems tough but it is really not.

The code can be found on the Github repositorySimply download it and upload to the Arduino board using the Arduino IDE. If you are using some other board than Arduino UNO, then don’t forget to select that specific board in Arduino IDE before uploading.

Editing the Arduino sketch
Editing the Arduino sketch
compile and upload the sketch using Arduino IDE
compile and upload the sketch using Arduino IDE

Open the Serial Monitor, you should see the AT command log for each event triggered from the Nextion Display.

Serial Monitor shows the AT command log
Serial Monitor shows the AT command log

Important Note

By default, the GSM module has an SMS buffer size of 20. Unfortunately, this Arduino-based mobile cannot display all the 20 messages at once on the Nextion display as it gives a buffer overflow while compiling the Nextion code. Hence, the Nextion display is programmed to show maximum 10 messages at once. If 10 or more SMS are present on the GSM buffer, the Low memory warning icon will be displayed on the Nextion display.

SMS log showing received messages on Nextion display
SMS log showing received messages on Nextion display


Watch the demonstration video to understand how this Arduino-based lightweight GSMmobile works.


Embedded Cryptography For Internet Of Things Security

As Internet of Things (IoT) devices are optimized for lower power consumption and affordability, most of them have poor computing resources. As consequence, these devices are more vulnerable to hacking attacks. The good news is there are several options for using cryptography to make it difficult for hackers to gain access to IoT devices of your smart connected home.

Cheap IoT devices that have little protection or no protection at all can be hacked to flood websites with high traffic and shut the servers down. As “things” are increasingly getting connected to the “internet”, chances are that hackers may have the water or electricity shut off, security system disabled, and even worse – they can cause loss of human life by attacking medical devices.

So, what is the solution? Well, the answer is, “Authentication and Encryption using embedded cryptography”. Now we shall discuss these methods of securing IoT devices from cyber attacks.

Secured Internet Of Things
Secured Internet Of Things


For the IoT, authentication works in both directions. An IoT device ensures that it is interacting with an authorized gateway and cloud service, and the cloud service (remote server), in turn, verifies it is working with an authentic IoT node. Only when both the sender and the receiver are sure that they’re dealing with “real” client/server, they proceed further and exchange confidential information. This authentication is done by using a hashing algorithm and shared secret keys to generate a tag known as a message authentication code (MAC). This MAC address is compared with a locally stored address.

Now, it’s clear that effectiveness of the authentication process depends on the strength of the MAC, and the MAC address itself depends on the strength of the hashing algorithm, the length of the key used, and whether the key is shared secretly and stored securely. The current state-of-the-art hashing algorithm for cryptographic purposes is SHA-256 with 256-bit keys. That means if the key is unknown, it will take 2^256 attempts to crack it.

The generated key must be shared over a secure channel to prohibit hackers from cracking it by sniffing the packets. The key can also be shared over an insecure channel using Diffie–Hellman key exchange method. Another important task is to store the key securely. It’s highly recommended not to store the key in the same place along with other application data.


AES is the accepted encryption method to encrypt and decrypt messages using digital keys. Symmetric key cryptography uses the same key to encrypt and decrypt the message. So it’s vital to keep the key secret. Asymmetric key cryptography uses the combination of a shared, public key and a private key which is kept secret locally. Asymmetric key cryptography is more useful and safer to use over insecure channels. But, this method is too much computationally expensive. That means it requires more computing resources to deal with asymmetric key cryptography.

Symmetric key encryption
Symmetric key encryption

A typical IoT device may not have enough computational strength to encrypt and decrypt all the data with asymmetric key cryptography. Rather this method can be used to create a secure channel only for sharing symmetric keys that encrypt/decrypt all messages.

To make the data exchange more secure, dedicated authentication chips and cryptographic co-processors can be used. This technique makes embedded systems more power efficient and in the long run, it’s the best thing to do.

SK Hynix Introduces Industry’s Highest 72-Layer 3D NAND Flash

SK Hynix Incorporated introduced the world’s first 72-Layer 256Gb (Gigabit) 3D (Three-Dimensional) NAND Flash based on its TLC (Triple-Level Cell) arrays and own technologies. This company also launched 6-Layer 128Gb 3D NAND chips in April 2016 and has been mass producing 48-Layer 256Gb 3D NAND chips since November 2016. Within 5 months the researchers in SK Hynix developed the new technology of producing 72-layer 3D NAND flash.

3D NAND flash 72 layers
72 layers 3D NAND flash

The technological achievement of this 72-Layer 3D NAND is compared to the difficulty of building approximately 4 billion 72-storied skyscrapers on a single dime. Well, now the question maybe, “Is the difficulty and complexity of this new technology giving any remarkable outcome?”. The answer is a big YES. The 72-layer NAND is said to stack 1.5 times more cells than the 48-layer, achieving 30% more efficiency in productivity and 20% higher read/write performance than a 48-layer 3D NAND chip, the predecessor of this 72-layer .D 256Gb NAND flash.

With this new chips having 30% more efficiency in productivity and 20% higher performance, SK Hynix has been currently developing NAND Flash solutions such as SSD (Solid State Drive) and storage for mobile devices such as smartphones. Having high reliability and low power consumption this 3D NAND flash should be an ideal solution for storage problems of mobile devices.

SK Hynix plans to expand the usage of the product to SSDs and mobile gadgets to further improve its business structure weighted towards DRAM. The vice president Jong Ho Kim said in the press release,

With the introduction of this industry’s highest productivity 3D NAND, SK Hynix will mass produce the 256Gb 3D NAND in the second half of this year to provide this to worldwide business clients for optimum use in storage solutions

According to a market research, 3D NAND flash demand is rapidly increasing across AI(Artificial Intelligence), big data, and cloud storage. The research by Gartner says that NAND Flash market revenue is expected to total USD 46.5 billion in this year and it will grow up to an amount of USD 56.5 billion in 2021.

Robot Core – The Ultimate Raspberry Pi Robot Controller

The Robot Core, which is a robot control board for the Raspberry Pi and Arduino, brings many different elements into one awesome package. It allows you to efficiently control motors, servos, and read sensor data without needing 3-4 additional boards to hookup. Several Robot Core boards can be connected together in a linear series to add even more functionality.

The Robot Core board
The Robot Core board

Robot Core uses I²C (Inter-Integrated Circuit) to communicate with Raspberry Pi. I²C is a widely used serial computer bus invented by Philips Semiconductor. It is a very easy-to-use two-wire bus that your Pi has no difficulty talking with. A built-in level shifter ensures compatibility to both 3.3 volt and 5 volts I²C buses. The Robot Core supports all Raspberry Pi boards (the past and present versions) and some Arduino boards also.

Now, let’s talk about the technical details.

Software Support:

The board has software provided in the form of libraries and python example programs to get you started fast. Thanks to Second Robotics for making the software Open Source. All required resources will be available in July 2017. Currently, available links are – Drivers and LibrariesSupport Documents.

Software for The Robot Core
Software for The Robot Core
The Robot Core Python Script
The Robot Core Python Script

Motor Drive:

This board provides up to two 5 Amp continuous load DC motor outputs that can be used as a pair to drive a single stepper motor. The Robot Core’s built in safety protection prevents overheating and detects the motor failure.

Servo Control:

The Robot Core can set servos to exact position with the help of 16 bit PWM signal. It has eight ports for both analog and digital conventional servos. You can tune each servo using software-based GUI tuning method and also set their start-up positions individually.

Two ports are provided for connecting Dynamixel servos. Connecting multiple Dynamixel servos at the same time is supported. All functionalities are accessible by simple low-level commands. Many example python codes are available there to get started with Dynamixel servos.

Ultrasonic Sensors:

You can connect up to 4 ultrasonic sensors (HC-SR04) with the board. Given libraries convert measured distance into millimeter. The Robot Core board can provide filtered outputs with higher accuracy or raw outputs with greater speed, the choice is yours.

Analog Input:

Up to 8 12-bit analog inputs are supported for sensors or feedback. Each input has a range of 0-5V and the board also provides protection from exceeding the input limits. The additional analog reading for main power voltage lets you monitor supply voltage in real-time. The Robot Core has configurable warnings for low power.


The range of input voltage is 6.4v to 14v. An onboard DC-DC regulator is there for generating 5 volts, capable of providing 6 Amps current to the load. Optional separate power supply inputs for servos and for Dynamixel servos are also present.

Other Technical Information:

  • Clear on-board labeling. Each port and screw terminal has its pins labeled.
  • Prototyping space for adding more functionality. This space removable to make the board smaller.
  • Easy to access voltage rails.
  • Access to the Raspberry Pi I²C at 5V logic level.
  • Status LEDs are for main power voltage, DC motor status, and script controllable status.
RobotCore board details
Robot Core board details

Application Of The Robotcore Board:

The Robot Core is an all-in-one solution for many projects. One can do pretty much any autonomous and/or robotics projects with this board. The possibilities are endless. Below are just some example projects:

  • A smart plant monitoring system that reads ambient light, temperature, plant moisture, and even uses two water pumps to water two different plants.
  • Using a single board, you can build a 2 wheeled robot with a ring of 8 analog ultrasonic sensors and a strong Dynamixel smart servo arm.
  • With an IMU (Inertial Measurement Unit) tied into the I²C bus, you can create a two-wheeled self-balancing robot.
  • Build a biped walker robot with sensors to navigate based around the board and a Pi using powerful servos or Dynamixel smart servos.
  • Make an automated greenhouse. Have analog sensors for light, temperature, carbon dioxide, moisture, water leaks, and also control two water pumps.
The Robot Core plant watering system
The Robot Core plant watering system

Make Your Own Arduino Nano In The Simplest Way (DIY – Arduino Nano)

In today’s post, we are going to learn how to make an Arduino nano at home. Electronics enthusiast Pratik Makwana designed this project in instructables.com. Every step in this project is well-explained. If you already don’t know what Arduino Nano is then here is a brief introduction: Arduino Nano is a tiny yet strong member of the Arduino family. It’s powered by an ATMega328P microcontroller running on 16MHz. But, the main strength is its very small form factor.

Arduino Nnao
Arduino Nano

Now, let’s get started and make your own Arduino Nano in no time.


  • Copper clad board (Double-sided)
  • Ferric Chloride (FeCl3)
  • Acetone (Nail polish remover)
  • Glossy Paper
  • LASER Printer
  • Marker Pen
  • Scissors
  • Plastic container
  • Sandpaper
  • Safety gloves (Optional)
  • Latex gloves
  • Saw – For copper board cutting
  • Laminator or iron
  • Components of Arduino Nano (Given later)

PCB Designing:

This is a very important step of this tutorial. You need to draw the circuit of Arduino Nano first. Then you’ll design the PCB using the schematic. Design the schematic diagram in an EDA tool (Electronic design automation Software).
Here is a list of EDA Tools:

EAGLE is the most widely used PCB and schematic design software. Though my personal favorite is Proteus. You can use any software from the list.

Importing the Schematic File to PCB Editor
Importing the Schematic File to PCB Editor

To make the schematic, use the Arduino Nano Circuit Diagram and Arduino Nano Components List. Once it’s drawn completely, open the PCB designing part of the software and you’ll see that schematic is imported there. Now place the components in correct places and connect them using traces. If you are using EAGLE then you can simply download the Arduino Nano Schematic File for EAGLE and Arduino Nano PCB File for EAGLE. Open the .brd file (PCB file) to print the PCB. You can also modify it if you wish.

Place the parts in correct position
Place the parts in correct position
Connect the components and the PCB is ready
Connect the components and the PCB is ready


  • Use Only Laser printer only.
  • Use glossy papers to print.
  • Set scale factor to 1.
  • Before top layer printing, you need to mirror the image of the top layer layout.

Cut The Copper Clad Board:

Now, cut the copper clad board according to the dimensions of the PCB. You can use a hacksaw to cut it off. Be precise about the dimensions. If it’s smaller than the actual PCB then you have to do it again. Also, cut the printed glossy paper as per the size of PCB.

Cut the copper clad board using a hacksaw
Cut the copper clad board using a hacksaw

Toner Transfer and Etching Process:

In this step, the PCB design from glossy paper will be transferred to the copper board. All you need to do is place the printed side of the glossy paper on the copper board and apply both pressure and heat. You can use a modified laminator machine or an iron for this purpose. Why “modified”? Because toner transfer method requires a temperature of 210°C, where a laminator can provide 150°C maximum.

Put the board in FeCl3 solution for a while
Put the board in FeCl3 solution for a while

Make your copper clad board as clean as possible beforehand. You can use sandpaper and alcohol to do this. When the toner is transferred successfully, prepare the ferric chloride (FeCl3) solution. Before putting the board into the solution check carefully for any broken path. If found, draw it with a marker. After the etching process, use the acetone to clean the board.

After washing the PCB with Acetone
After washing the PCB with Acetone

Drilling & Soldering:

Drill the PCB using PCB drill machine. Choose the drill bit wisely else components may not fit. Now, place the components on the PCB and solder them. You can use a helping hand device to get it done nicely.

Upper layer of PCB
Upper layer of PCB
Lower layer of PCB
Lower layer of PCB

Burning The Arduino Bootloader:

In this step, you’ll need another Arduino board (e.g. Arduino UNO) to burn the bootloader to your newly made Arduino Nano for the first time. Open Arduino IDE and upload the ArduinoISP sketch to the Arduino UNO from examples option. Now, connect your Arduino Nano with Arduino UNO over SPI bus following the given instructions:

  • Arduino UNO     >>    Arduino Nano
  • ——————————————-
  • SS (Pin 10)         >>     RESET (Pin 29)
  • MISO (Pin 11)    >>     MISO (Pin 16)
  • MOSI (Pin 12)    >>    MOSI (Pin 15)
  • SCK (Pin 13)       >>    SCK (Pin 17)
  • 5V                         >>    VCC
  • GND                    >>    GND
Follow this instruction to burn bootloader
Follow this instruction to burn bootloader

After making the connections, go to Arduino IDE and follow the given instructions:

  1. Select Tool  >>  Board  >>  Arduino Nano
  2. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  3. Select Tool  >>  Programmer  >>  Arduino as ISP
  4. Select Tool  >>  Burn Bootloader

Wait for the “Done burning bootloader” message to appear.


Well, your Arduino Nano is now ready for a test run. This time you won’t need another Arduino to upload codes. Follow the instructions and connect a USB to TTL converter (a.k.a USB to UART converter) with the Arduino nano to upload sketches.

  • USB to TTL Converter (CP2102)  >>  Arduino Nano
  • —————————————————————-
  • VCC        >>     VCC
  • TX          >>    RX (Pin 30)
  • RX         >>    TX (Pin 31)
  • DTR      >>    RESET (Pin 29)
  • GND     >>    GND
  1. After making the connections, go to Arduino IDE and perform the following tasks:
  2. Select File  >>  Examples  >>  01.Basics  >>  Blink
  3. Select Tool  >>  Board  >>  Arduino Nano
  4. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  5. Select Tool  >>  Programmer  >>  AVRISP MKII

After that, upload Blink Sketch to Arduino Nano and wait for the “Done Uploading” message. LED connected to pin 13 should blink if everything is OK. Now you can upload any sketch you wish to your home made Arduino Nano.


So, this is how you can make your Arduino Nano. All you need for this project is PCB designing skill and a pretty good soldering skill as you have to deal with SMD components. This way you can make custom Arduino Nano that will fit your project perfectly. Watch the video to have a more clear idea: