0% found this document useful (0 votes)
444 views63 pages

Beaglebone Black

This document provides instructions for installing and using the BeagleBone Black embedded system development board. Chapter 1 introduces the BeagleBone Black and its features. It runs operating systems like Debian, Android and Ubuntu using its ARM Cortex-A8 processor. Chapter 1 also details the basic installation process, which involves plugging the BeagleBone into a computer via USB, installing drivers, and accessing the board through a terminal program. Chapter 2 discusses the different boot modes of the BeagleBone like booting from eMMC, microSD card, serial or USB connections. Common SSH commands for navigating files and directories on the BeagleBone are also provided.

Uploaded by

Alex-sama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
444 views63 pages

Beaglebone Black

This document provides instructions for installing and using the BeagleBone Black embedded system development board. Chapter 1 introduces the BeagleBone Black and its features. It runs operating systems like Debian, Android and Ubuntu using its ARM Cortex-A8 processor. Chapter 1 also details the basic installation process, which involves plugging the BeagleBone into a computer via USB, installing drivers, and accessing the board through a terminal program. Chapter 2 discusses the different boot modes of the BeagleBone like booting from eMMC, microSD card, serial or USB connections. Common SSH commands for navigating files and directories on the BeagleBone are also provided.

Uploaded by

Alex-sama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 63

Embedded system Lab Manual 2015

CHAPTER 1
BEAGLEBONE INTRODUCTION

The element14 BeagleBone Black is a full featured, internet enabled development platform
that utilizes the low cost Sitara™ AM3358 ARM® Cortex™-A8 processor from Texas
Instruments and runs a variety of OS including Debian, Angstrom, Ubuntu and Android. The
element14 BeagleBone Black is designed to address the needs of designers, early adopters,
and anyone in the Open Source Community interested in a low cost ARM® Cortex™-A8
based processor.

Department of ECE 1 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Department of ECE 2 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Department of ECE 3 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

1.1 INSTALLATION DETAILS OF BEAGLEBONE

Beagle boards are tiny computers with all the capability of today‘s desktop machines, without
the bulk, expense, or noise. Read the step-by-step getting started tutorial below to begin
installation.

STEP 1: PLUG IN YOUR BEAGLE VIA USB


Use the provided USB cable to plug your Beagle into your computer. This will both power
the board and provide a development interface. BeagleBone Black will boot Linux from the
on-board 2GB or 4GB eMMC. Either BeagleBone Black or original BeagleBone may also
boot from a microSD card. Original BeagleBone is provided with a pre-configured 4GB
microSD card.

BeagleBone or BeagleBone Black will operate as a flash drive providing you with a
local copy of the documentation and drivers. Note that this interface may not be used to re-
configure the microSD card with a new image, but may be used to update the boot parameters
using the uEnv.txt file.

You'll see the PWR LED lit steadily. Within 10 seconds, you should see the other
LEDs blinking in their default configurations.

1. USR0 is configured at boot to blink in a heartbeat pattern


2. USR1 is configured at boot to light during microSD card accesses
3. USR2 is configured at boot to light during CPU activity
4. USR3 is configured at boot to light during eMMC accesses

Department of ECE 4 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

STEP2:INSTALL DRIVERS
1. Run BONDE_d64.exe

2. Now you can see a drive for beaglebone in my computer

3. For programming Beaglebone in linux open console from system


4. For programming Beaglebone in windows install putty.exe as console
5. Editor for python programming language is WINSCP.This can be installed using
winscp514setup.exe
6. In WINSCP you can create folders ,python files(.py) and can be run from your
console
7. Console Setup

1. Once you open putty.exe or your console in Linux it will show a


dialogue box as shown

Department of ECE 5 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

1. Type 192.1687.2 as ip address which is default ip address for USB of beaglebone

2. Now Press OPEN button

3. The console will ask login id

2 login ids can be used

1. Login id: root Password: no password(just press enter)

2. Login id: debian Password: temppwd

NB: In windows debian account is only supported if booting is done from SD card . Also it is
just a user account which will not have admin privilege.

Once you logged in you can see list of directories using different linux commands

BOOTING FROM SD CARD

1. By default Beaglebone is booted from its own flash memory

2. There is possibility of corruption of OS in flash memory

3. This can be avoided by booting from SD card

Department of ECE 6 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Step 1: Plug in your SD card in your beglebone slot

Step2: First of you have to burn the OS in to the SD card

This can be done by doing following steps

For WINDOWS
1. Run 7zip.exe if you can‘t extract .xz format files
2. Under Windows install WIN32 Disk Imager
3. Using WIN32 Disk Imager write .img file to the SD card
For Linux

1. Find the micro-SD Card device (for example, mine is sdd). Type the following:mount
2. Decompress the .xz file:xz -d BBB*.xz
3. This gives you the image file: BBB*.img. Write the image to the memory card (please
check that you have the correct SD card device—in my case it is /dev/sdd): sudodd
if=./BBB*.img of=/dev/sdX

NB: Sometimes in Linux System following error may shown

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
5c:9b:16:56:a6:cd:11:10:3a:cd:1b:a2:91:cd:e5:1c.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:1
RSA host key for ras.mydomain.com has changed and you have requested strict checking.
Host key verification failed. This can be corrected by following commands.

ssh-keygen<>-R 192.168.7.2

[email protected]

Department of ECE 7 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

CHAPTER 2

BOOT MODES

There are four boot modes:


• eMMC Boot…This is the default boot mode and will allow for the fastest boot time and
will enable the board to boot out of the box using the pre-flashed OS image without having to
purchase an microSD card or an microSD card writer.
• SD Boot…This mode will boot from the microSD slot. This mode can be used to override
what is on the eMMC device and can be used to program the eMMC when used in the
manufacturing process or for field updates.
• Serial Boot…This mode will use the serial port to allow downloading of the software
direct. A separate USB to serial cable is required to use this port.
• USB Boot…This mode supports booting over the USB port.

2.1 MOST USED & COMMON SSH COMMANDS

REQUIREMENTS TO SSH
1. A working SSH client like Putty (Windows) or Terminal (Mac and Linux)
2. A working Linux-based server with SSH enabled
3. A computer with stable Internet connection
SOME CONVENTIONS
1. Hit Enter or Return key on your keyboard after every each command / line
2. Each line is a single raw of command unless specified otherwise
3. Replace domain.com with your own domain name and TLD
4. Replace xxx.xxx.xxx.xxx with IP address of your own server
5. Replace example paths and file names according to your server information
6. If a path ends with slash ―/‖ then its a directory
7. A directory: ―/path/to/directory/‖ will always end with slash ―/‖
8. A file: ―/path/to/file‖ won‘t have slash ―/‖ in the end
9. A file is not always having extension in the end of the file name
Department of ECE 8 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

NAVIGATING
1. How to move into another directory
Use command below to change directory
cd [another directory]
example: move to directory ―download‖
cd download

2. How to go to home directory


cd ~
3. How go to the last directory you were in
cd ‐
4. How to go up a directory level
cd ..
5. How to show the full path of the current directory
Use this command to find out where are you currently in.
pwd
6. How to list files and/or directories in a directory
ls
7. How to list all files and information
ls ‐al
8. How to list all files ending with certain extension
ls *.ext

9. How to list all files ending with certain extension


ls *.php
10. How to list all files and folders with detailed information including file size
ls ‐alh

11. How to quit and exit SSH client

exit

Department of ECE 9 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

FILE MANAGEMENT
12. How to copy and rename file
Use this command to copy and rename a file
cp [filename] [new filename]
example: we‘ll rename banner.jpg to banner728px.jpg
cp banner.jpg banner728px.jpg
example: we‘ll cope banner.jpg to a folder called ―ads‖
cp banner.jpg ads/banner.jpg
example: copying and renaming at once
cp banner.jpg ads/banner728px.jpg
ps: original file will remain, it is just copied.
13. How to move and rename file
Use this command to move and rename file
mv [old filename] [new filename]
example: moving a file to another directory
mv banner.jpg ads/banner.jpg
example: moving a file to another directory and renaming it at once
mv banner.jpg ads/banner728px.jpg
ps: original file will be deleted as it was moved to another location. You can
also move a folder
example: moving ―image‖ folder to ―media‖ folder
mv image/ media
example: moving ―image‖ folder to upper directory
mv image/ ..
14. How to delete / remove a file
rm [file name]
example:
rm banner.jpg
15. How to delete / remove all files in current directory
rm *
16. How to delete files with certain extension
rm *.extension
example: remove all files with .jpg extension

Department of ECE 10 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

rm *.jpg
17. How to copy a folder with all files and folders in it
cp ‐r [directory] [new directory]
18. How to create new folder
mkdir [folder name]
example:
mkdir image
19. How to search for a file starting within current directory
find . ‐name [filename] ‐print
example: find a file called ―banner.jpg‖ in current folder
find . ‐name banner.jpg ‐print
20. How to search for text within a file
grep [text] [filename]
example: find the word ―sidebar‖ in file index.php
grep sidebar index.php
21. CHMOD – how to change file permission
chmod [permission type] [file/folder name]
example:
chmod 777 config.php

2.2 TO BOOT WITH SD CARD FROM WINDOWS OS

Step 1: Open the folder containing the boot image. ( ie bbb/win32diskimage )


Step 2: Extract the win32 file
Step 3: install the compression utility ie, 7-zip
Step 4: extract the driver for beaglebone black ie, BONE_D64.exe file
Step 5: Open the win32 folder
Step 6: open the win32 image file
Step 7: the extracted image file will be given as the image file
Step 8: Select the drive to which the image is to be written and click write.

Department of ECE 11 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Step 9: Eject the SD card

Eject the newly programmed SD card.

Step 10: Boot your board off of the SD card

Insert SD card into your (powered-down) board, hold down the USER/BOOT button (if using
Black) and apply power, either by the USB cable or 5V adapter.

Department of ECE 12 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

CHAPTER 3
PYTHON
Python is a powerful modern computer programming language. It bears some similarities to
Fortran, one of the earliest programming languages, but it is much more powerful than
Fortran. Python allows you to use variables without declaring them (i.e., it determines types
implicitly),and it relies on indentation as a control structure. You are not forced to define
classes in Python(unlike Java) but you are free to do so when convenient.

Python was developed by Guido van Rossum, and it is free software. But Python is
also free in other important ways, for example you are free to copy it as many times as you
like, and free to study the source code, and make changes to it. There is a worldwide
movement behind the idea of free software, initiated in 1983 by Richard Stallman.

3.1 INSTALLING PYTHON :

Python distribution is available for a wide variety of platforms. You need to download only
the binary code applicable for your platform and install Python.

If the binary code for your platform is not available, you need a C compiler to
compile the source code manually. Compiling the source code offers more flexibility in terms
of choice of features that you require in your installation.

Here is a quick overview of installing Python on various platforms:

1. Unix and Linux Installation


Here are the simple steps to install Python on Unix/Linux machine.

http://www.python.org/download/.

Modules/Setup file if you want to customize some options.

run./configure script

Department of ECE 13 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

This installs Python at standard location /usr/local/bin and its libraries at


/usr/local/lib/pythonXXwhere XX is the version of Python.

2. Windows Installation
Here are the steps to install Python on Windows machine.

Open a Web browser and go to http://www.python.org/download/

Follow the link for the Windows installer python-XYZ.msi file where XYZ is
the version you need to install.

To use this installer python-XYZ.msi, the Windows system must support


Microsoft Installer 2.0. Save the installer file to your local machine and then
run it to find out if your machine supports MSI.

Run the downloaded file. This brings up the Python install wizard, which is
really easy to use. Just accept the default settings, wait until the install is
finished, and you are done.

3.2 RUNNING PYTHON


There are three different ways to start Python:

1. Interactive Interpreter

You can start Python from Unix, DOS, or any other system that provides you a
command-line interpreter or shell window.

Enter python the command line.

Start coding right away in the interactive interpreter.

$python # Unix/Linux

Department of ECE 14 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

or

python% # Unix/Linux

or

C:>python # Windows/DOS

Here is the list of all the available command line options:

2. Script from the Command-line


A Python script can be executed at command line by invoking the interpreter
on your application, as in the following:

$python script.py # Unix/Linux


or
python% script.py # Unix/Linux

or

C:>python script.py # Windows/DOS

Department of ECE 15 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

3.3 SYNTAX
First Python Program

Type the following text at the Python prompt and press the Enter:

If you are running new version of Python, then you need to use print statement with
parenthesis as in print ("Hello, Python!");. However in Python version 2.4.3, this produces
the following result:

Python Identifiers
A Python identifier is a name used to identify a variable, function, class, module, or other
object. An identifier starts with a letter A to Z or a to z, or an underscore (_) followed by zero
or more letters, underscores and digits (0 to 9).

Python does not allow punctuation characters such as @, $, and % within identifiers.
Python is a case sensitive programming language. Thus, Manpower and manpower are two
different identifiers in Python.

Here are naming conventions for Python identifiers:

3. Class names start with an uppercase letter. All other identifiers start with a lowercase
letter.

4. Starting an identifier with a single leading underscore indicates that the identifier is
private.
5. Starting an identifier with two leading underscores indicates a strongly private
identifier.

6. If the identifier also ends with two trailing underscores, the identifier is a language-
defined special name.

Python Keywords
Department of ECE 16 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

The following list shows the Python keywords. These are reserved words and you
cannot use them as constant or variable or any other identifier names. All the Python
keywords contain lowercase letters only.

Lines and Indentation


Python provides no braces to indicate blocks of code for class and function definitions
or flow control. Blocks of code are denoted by line indentation, which is rigidly
enforced.

The number of spaces in the indentation is variable, but all statements within
the block must be indented the same amount. For example:

Department of ECE 17 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

However, the following block generates an error:

Thus, in Python all the continuous lines indented with same number of spaces
would form a block.

Comments:
In a Python command, anything after a # symbol is a comment. For example:

print " Hello world" # this is silly

Comments are not part of the command, but rather intended as documentation
for anyone reading the code.

Multiline comments are also possible, and are enclosed by triple double-quote
symbols:

""" This is an example of a long comment

that goes on

and on

and on."""

Department of ECE 18 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

3.4 NUMBERS AND OTHER DATA TYPES:


Python recognizes several different types of data. For instance, 23 and −75 are
integers, while 5.0 and −23.09 are floats or floating point numbers. The type float is
(roughly) the same as a realnumber in mathematics. The number 12345678901 is a
long integer ; Python prints it with an ―L‖ appended to the end.

Usually the type of a piece of data is determined implicitly.

1. The type function

To see the type of some data, use Python‘s builtin type function:

2. Strings

Other useful data types are strings (short for ―character strings‖);
for example"Hello World!".
Strings are sequences of characters enclosed in single or double quotes.

3. Lists and tuples

Other important sequence types used in Python include lists and tuples. A

sequence type is formed by putting together some other types in a sequence.

Here is how we form lists and tuples:

Department of ECE 19 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Notice that lists are enclosed in square brackets while tuples are enclosed in
parentheses. Also note that lists and tuples do not need to be homogeneous; that is,
the components can be of different types:

4. The range function

The range function is often used to create lists of integers. It has three forms. In
the simplest form, range(n) produces a list of all numbers 0,1,2……,n-1 starting
with 0 and ending with n-1.

Department of ECE 20 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

3.5 OPERATORS
The common binary operators for arithmetic are + for addition, - for subtraction, *
for multiplication, and / for division. As already mentioned, Python uses ** for
exponentiation. Integer division is performed so that the result is always another
integer (the integer quotient):

To get a more accurate answer, use the float type:

If just one of the operands is of type float, then the result will be of type float.
Here is another example of this pitfall:

Where we wanted to compute the square root of 2 as the 1/2 power of 2, but
the division in the exponent produced a result of 0 because of integer division. A
correct way to do this computation is:

Another useful operator is %, which is read as ‖mod‖. This gives the


remainder of an integer division, as in

Department of ECE 21 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Which shows that 5 mod 2 = 1, and 25 mod 3 = 1. This operator is useful in


number theory and cryptography.

Besides the arithmetic operators we need comparison operators: <, >, <=, >=,
==, !=, <>. In order these are read as: is less than, is greater than, is less than or
equal to, is greater than or equal to,is equal to, is not equal to, is not equal to. The
result of a comparison is always a boolen value True or False.

Note that != and <> are synonymous ; either one means not equal to. Also, the
operator == means is equal to.

3.6 VARIABLES AND ASSIGNMENT


An assignment statement in Python has the form variable = expression. This has
the following effect. First the expression on the right hand side is evaluated, then
the result is assigned to thevariable. After the assignment, the variable becomes a
name for the result.

Department of ECE 22 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

In the example above, the assignment statement sets x to 4, producing no


output. If we want to see the value of x, we must print it. If we execute another
assignment to x, then the previous value is lost.

3.7 DECISIONS
The if–else is used to make choices in Python code. This is a compound statement.
The simplest form is

ifcondtion :

action- 1

else :

action- 2

The indentation is required. Note that the else and its action are optional. The
actions action-1 and action-2 may consist of many statements; they must all be
indented the same amount. The condition is an expression which evaluates to True or
False.

x=1

if x>0 :

Print” Friday is wonderful”

else:

Print” Killing Monday”

Department of ECE 23 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Print” Have a good weekend”

Result in the output is :


Friday is wonderful

Have a good weekend

3.8 LOOPS

Python provides two looping commands: for and while. These are compound commands.

1. for loop

The syntax of a for loop is:


for item in list :
Action
As usual, the action consists of one or more statements, all at the same
indentation level. These statements are also known as the body of the loop.
The item is a variable name, and list is a list.

2. while loop

The syntax of the while loop is:

While condition:

Action

Department of ECE 24 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

The action may consist of one or more statements all at the same
indentation level. The statements in the action are known as the body of the
loop. Execution of the loop works as follows.

First the condition is evaluated. If True, the body is executed and the
condition evaluated again, and this repeats until the condition evaluates to
False.

Department of ECE 25 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

CHAPTER 4

PIN OUT

Department of ECE 26 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

4.1 FEATURES

Department of ECE 27 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Department of ECE 28 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

CHAPTER 5

5.1 RGB LED

A common anode RGB LED is nothing more complicated than three one colour LEDs
(one red, one green, and one blue) housed in a single package. Rather than having 6 leads (a
cathode and anode for each LED) it has only 4 one cathode for each colour, and one common
anode. A common anode RGB LED is the most popular type.

Current Limiting Resistors

Most LEDs are designed to work with a voltage between 1.5v and 3v. As most
microcontrollers (including the Arduino) operate on 5 volts a current limiting resistor is
required.

Wire up the Test Schematic (below)

1. Plug the RGB LED into your breadboard


2. Connect a current limiting resistor to each of the three cathodes
3. Connect the common anode to 3.3V

Department of ECE 29 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Fig. Connecting LED with beaglebone.

5.1a RGB LED Interfacing Programs

(i)Aim: Write a program to blink rgb leds using Beaglebone.

import Adafruit_BBIO.GPIO as GPIO #including adafruit library


import time #delay function
GPIO.setup("P9_14", GPIO.OUT) #set P9_14 as output pin
while True:
GPIO.output("P9_14", GPIO.HIGH)
time.sleep(0.5)
GPIO.output("P9_14", GPIO.LOW)
time.sleep(0.5)
Result: Wrote program for led blinking and executed in beaglebone successfully.

(ii)Aim: Write a program to blink rgb leds alternatively using Beaglebone.

import Adafruit_BBIO.GPIO as GPIO


import time
GPIO.setup("P9_14", GPIO.OUT)
GPIO.setup("P9_41", GPIO.OUT)
GPIO.setup("P9_42", GPIO.OUT)
while True:
GPIO.output("P9_14", GPIO.HIGH)
GPIO.output("P9_41", GPIO.LOW)
Department of ECE 30 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

GPIO.output("P9_42", GPIO.LOW)
time.sleep(0.5)
GPIO.output("P9_14", GPIO.LOW)
GPIO.output("P9_41", GPIO.HIGH)
GPIO.output("P9_42", GPIO.HIGH)
time.sleep(0.5)
GPIO.output("P9_14", GPIO.LOW)
GPIO.output("P9_41", GPIO.LOW)
GPIO.output("P9_42", GPIO.HIGH)
time.sleep(0.5)
Result: Wrote program for led blinking alternatively in python and executed in beaglebone
successfully.

5.2 IR SENSOR
An Infrared (IR) sensor is used to detect obstacles in front of the robot or to differentiate
between colors depending on the configuration of the sensor.The picture shown is a very
simple black box model of the IR Sensor. The sensor emits IR light and gives a signal when it
detects the reflected light.

An IR sensor consists of an emitter, detector and associated circuitry. The circuit


required to make an IR sensor consists of two parts; the emitter circuit and the receiver
circuit. The emitter is simply an IR LED (Light Emitting Diode) and the detector is simply an
IR photodiode which is sensitive to IR light of the same wavelength as that emitted by the IR
LED. When IR light falls on the photodiode, its resistance and correspondingly, its output

Department of ECE 31 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

voltage, change in proportion to the magnitude of the IR light received. This is the underlying
principle of working of the IR sensor.

5.2a IR Sensor Interfacing Programs

(i)Aim: Write a program to interface IR sensor for obstacle detection.

import Adafruit_BBIO.GPIO as GPIO

import time
GPIO.setup("P9_14", GPIO.IN)
GPIO.setup("P9_41", GPIO.OUT)
GPIO.setup("P9_42", GPIO.OUT)
while True:
if GPIO.input("P9_14") :
GPIO.output("P9_41", GPIO.HIGH)
GPIO.output("P9_42", GPIO.LOW)
time.sleep(0.5)
else:
GPIO.output("P9_41", GPIO.LOW)
GPIO.output("P9_42", GPIO.HIGH)
time.sleep(0.5)

(ii)Result: Wrote python program to interface IR sensor for obstacle detection and executed
successfully.

5.3 PIR SENSOR


PIR sensors are used to sense motion, almost always used to detect whether a human
hasmoved in or out of the sensors range. They are small, inexpensive, low-power, easy to use
and don't wear out. For that reason they are commonly found in appliances and gadgets used
in homes or businesses. They are often referred to as PIR, "Passive Infrared", "Pyroelectric",
or "IR motion" sensors.
PIRs are basically made of a pyroelectric sensor, which can detect levels of infrared
radiation. The sensor in a motion detector is actually split in two halves. The reason for that is
that we are looking to detect motion (change) not average IR levels. The two halves are wired

Department of ECE 32 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

up so that they cancel each other out. If one half sees more or less IR radiation than the other,
the output will swing high or low.

Fig: PIR sensor

CONNECTING A PIR SENSOR


Most PIR modules have a 3-pin connection at the side or bottom. The pinout may vary
between modules. One pin will be ground, another will be signal and the final one will be
power.Mostly the red cable is + voltage power, black cable is - ground power and yellow is
the signal out.If it gets backward ,the PIR may not damage but it won‘t work.

Fig: connecting PIR with Beaglebone

Department of ECE 33 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

5.3a PIR Sensor Interfacing Programs

(i)Aim: Write a program to interface PIR sensor for motion detection.


import Adafruit_BBIO.GPIO as GPIO

GPIO.setup(―P9_14‖,GPIO.IN)

GPIO.setup(―P9_15‖,GPIO.OUT)

while True:

ifGPIO.input(―P9_14‖):

GPIO.output(―P9_15‖,GPIO.HIGH)

print (―MOTION DETECTED‖)

else

GPIO.output(―P9_15‖,GPIO.LOW)

print (―MOTION NOT DETECTED‖)

(ii)Result: Wrote program for PIR sensor interfacing for motion detection and executed
successfully.

5.4 LM35 TEMPERATURE SENSOR

DESCRIPTION
The LM35 series are precision integrated-circuit temperature sensors, whose output voltage is
linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an
advantage over linear temperature sensors calibrated in ° Kelvin, as the user is not required to
subtract a large constant voltage from its output to obtain convenient Centigrade scaling. The
LM35 does not require any external calibration or trimming to provide typical accuracies of
±1⁄4°C at room temperature and ±3⁄4°C over a full −55 to +150°C temperature range. Low
cost is assured by trimming and calibration at the wafer level.

The LM35‘s low output impedance, linear output, and precise inherent calibration
make interfacing to readout or control circuitry especially easy. It can be used with single
power supplies, or with plus and minus supplies. As it draws only 60 μA from its supply, it
has very low self-heating, less than 0.1°C in still air. The LM35 is rated to operate over a

Department of ECE 34 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

−55° to +150°C temperature range, while the LM35C is rated for a −40° to +110°C range
(−10° with improved accuracy). The LM35 series is available packaged in hermetic TO-46
transistor packages, while the LM35C, LM35CA, and LM35D are also available in the plastic
TO-92 transistor package. The LM35D is also available in an 8-lead surface mount small
outline package and a plastic TO-220 package.

LM35 Temperature Sensor

These sensors use a solid-state technique to determine the temperature. They use the
fact as temperature increases, the voltage across a diode increases at a known rate. By
precisely amplifying the voltage change, it is easy to generate an analog signal that is directly
proportional to temperature. Because these sensors have no moving parts, they are precise,
never wear out, don't need calibration, work under many environmental conditions, and are
consistent between sensors and readings. Moreover they are very inexpensive and quite easy
to use.

FEATURES
• Calibrated directly in ° Celsius (Centigrade)
• Linear + 10.0 mV/°C scale factor
• 0.5°C accuracy guaranteeable (at +25°C)
• Rated for full −55° to +150°C range
• Low cost due to wafer-level trimming
• Operates from 4 to 30 volts
• Less than 60 μA current drain
• Low self-heating, 0.08°C in still air
Department of ECE 35 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

• Nonlinearity only ±1⁄4°C typical


• Low impedance output, 0.1 W for 1 mA load
CONNECTING AN LM35 TEMPERATURE SENSOR

Fig. Connecting LM35 with Beaglebone

If a 5V Arduino is used, and connecting the sensor directly into an Analog pin,
10-bit analog reading can be converted into a temperature using:
Voltage at pin in milliVolts = (reading from ADC) * (5000/1024)
If a 3.3V Arduino is used:
Voltage at pin in milliVolts = (reading from ADC) * (3300/1024)
To convert millivolts into temperature:
Centigrade temperature = [(analog voltage in mV) - 500] / 10

5.4a LM35 temperature Sensor Interfacing Programs

(i)Aim: Write a program to interface lm35 temperature sensor

import Adafruit_BBIO.ADC as ADC


ADC.setup()
while(1):
value=ADC.read_raw(―P9_40‖)
print value
Result: Wrote program to interface lm35 temperature sensor.

Department of ECE 36 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

CHAPTER 6

6.1 COMMUNICATION

Communication between two microcontrollers means an exchange of data (bits). There are
many protocols for communication but all of them are based on either serial communication
or parallel communication.

SERIAL COMMUNICATION
In Telecommunication and Computer Science, serial communication is the process of
sending/receiving data in one bit at a time.

PARALLEL COMMUNICATION

Parallel communication is the process of sending/receiving multiple data bits at a time


through parallel channels.

Serial vs Parallel Communication

Major Factors Limiting Parallel Communication

The choice of parallel links over serial links was driven by these factors:

1. Speed: Superficially, the speed of a parallel link is equal to bit rate*number of


channels. In practice, clock skew reduces the speed of every link to the slowest of all
of the links.

2. Cable length: Crosstalk creates interference between the parallel lines, and the effect
only magnifies with the length of the communication link. This limits the length of
the communication cable that can be used.

These two are the major factors, which limit the use of parallel communication

Advantages of Serial over Parallel

Although a serial link may seem inferior to a parallel one, since it can transmit less data per
clock cycle, it is often the case that serial links can be clocked considerably faster than
parallel links in order to achieve a higher data rate. A number of factors allow serial to be
clocked at a higher rate:
Department of ECE 37 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

1. Clock skew between different channels is not an issue (for un-clocked asynchronous
serial communication links).

2. A serial connection requires fewer interconnecting cables (e.g. wires/fibers) and hence
occupies less space. The extra space allows for better isolation of the channel from its
surroundings.

3. Crosstalk is not a much significant issue, because there are fewer conductors in
proximity.

In many cases, serial is a better option because it is cheaper to implement.


Many ICs have serial interfaces, as opposed to parallel ones, so that they have fewer pins and
are therefore less expensive. It is because of these factors, serial communication is preferred
over parallel communication.

SERIAL TRANSMISSION MODES

Serial data can be transferred in two modes – asynchronous and synchronous.

Asynchronous Data Transfer

Data Transfer is called Asynchronous when data bits are not ―synchronized‖ with a
clock line, i.e. there is no clock line at all.

Asynchronous data transfer has a protocol, which is usually as follows:

1. The first bit is always the START bit (which signifies the start of communication on
the serial line), followed by DATA bits (usually 8-bits), followed by a STOP bit
(which signals the end of data packet). There may be a Parity bit just before the STOP
bit. The Parity bit was earlier used for error checking, but is seldom used these days.

2. The START bit is always low (0) while the STOP bit is always high (1).

Synchronous Data Transfer

Synchronous data transfer is when the data bits are ―synchronized‖ with a clock pulse.

The concept for synchronous data transfer is simple, and as follows:

Department of ECE 38 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

1. The basic principle is that data bit sampling (or in other words, say, ‗recording‘) is
done with respect to clock pluses, as you can see in the timing diagrams.

2. Since data is sampled depending upon clock pulses, and since the clock sources are
very reliable, so there is much less error in synchronous as compared to
asynchronous.

BAUD RATE

Baud is synonymous to symbols per second or pulses per second. It is the unit
of symbol rate, also known as baud or modulation rate. However, though technically
incorrect, in the case of modem manufacturers baud commonly refers to bits per second.

For two microcontrollers to communicate serially they should have the same baud
rate, else serial communication won‘t work. This is because when we set a baud rate, we
direct the microcontroller to transmit/receive the data at that particular rate. So if we set
different baud rates, then the receiver might miss out the bits the transmitter is sending
(because it is configured to receive data and process it with a different speed!)

Different baud rates are available for use. The most common ones are 2400, 4800,
9600, 19200, 38400 etc. We cannot choose any arbitrary baud rate, there are some fixed
values which you must use like 2400, 4800, etc. The unit of baud rate is bps (bits per second).

SERIAL COMMUNICATION PROTOCOLS

A variety of communication protocols have been developed based on serial


communication in the past few decades. Some of them are:

1. SPI – Serial Peripheral Interface: It is a three-wire based communication system. One


wire each for Master to slave and Vice-versa, and one for clock pulses. There is an
additional SS (Slave Select) line, which is mostly used when we want to send/receive
data between multiple ICs.

2. I2C – Inter-Integrated Circuit: Pronounced eye-two-see or eye-square-see, this is an


advanced form of USART. The transmission speeds can be as high as a whopping
400KHz. The I2C bus has two wires – one for clock, and the other is the data line,

Department of ECE 39 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

which is bi-directional – this being the reason it is also sometimes (not always – there
are a few conditions) called Two Wire Interface (TWI).

6.2 THINGSPEAK

ThingSpeak is a platform providing various services exclusively targeted for building IoT
applications. It offers the capabilities of real-time data collection, visualizing the collected
data in the form of charts, ability to create plugins and apps for collaborating with web
services, social network and other APIs. We will consider each of these features in detail
below.

The core element of ThingSpeak is a ‗ThingSpeak Channel‘. A channel stores the data that
we send to ThingSpeak and comprises of the below elements:

 8 fields for storing data of any type - These can be used to store the data from a sensor or
from an embedded device.
 3 location fields - Can be used to store the latitude, longitude and the elevation. These are
very useful for tracking a moving device.
 1 status field - A short message to describe the data stored in the channel.
To use ThingSpeak, we need to signup and create a channel. Once we have a channel, we can
send the data, allow ThingSpeak to process it and also retrieve the same. Let us start
exploring ThingSpeak by signing up and setting up a channel.

Getting Started

Open https://thingspeak.com/ and click on the ‗Get Started Now‘ button on the center
of the page and you will be redirected to the sign-up page(you will reach the same page when
you click the ‗Sign Up‘ button on the extreme right). Fill out the required details and click on
the ‗create Account‘ button.

Department of ECE 40 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Now you should see a page with a confirmation that the account was successfully
created. The confirmation message disappears after a few seconds and the final page should
look as in the below screen:

Go ahead and click on ‗New Channel‘. You should see a page like the below:

You can change the name to fit your need and you can add a description corresponding to the
channel. You can add any other useful description into the metadata field. In the same page,
you should see the fields for Latitude, Longitude and Elevation. Also, when you scroll down

Department of ECE 41 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

you should see a check box that says ‗Make Public?‘. Let us consider the significance of the
various fields and the tabs:

 Latitude, longitude and elevation - These fields correspond to the location of a ‗thing‘ and are
especially significant for moving things.
 Make Public? - If the channel is made public, anyone can view the channel's data feed and
the corresponding charts. If this check box is not checked, the channel is private, which
means for every read or write operation, the user has to pass a corresponding API key.
 URL - This can be the URL of your blog or website and if specified, will appear on the public
view of the channel.
 Video ID - This is the ID corresponding to your YouTube or Vimeo ID. If specified, the
video appears on the public view of the channel.
 Fields 1 to 8 - These are the fields which correspond to the data sent by a sensor or a ‗thing‘.
A field has to be added before it can be used to store data. By default, Field 1 is added. In
case you try posting to fields that you have not added, your request will still be successful,
but you will not be able to see the field in the charts and the corresponding data. You can
click on the small box before the ‗add field‘ text corresponding to each field to add it. Once
you click the ‗add field‘ box, a default label name appears in the text box corresponding to
each field and the ‗add field‘ text changes to ‗remove field‘. You can edit the field text that
appears by default when a field is added to make more sense. For example, in the below
screen, I have modified the text for Field 2 to ‗SensorInput‘. To remove a field which is
added, just check on the ‗remove field‘ box. Once you click this, the text ‗remove field‘
changes back to ‗add field‘ and the corresponding field text is cleared.

Department of ECE 42 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Once you have edited the fields, click on ‗Save Channel‘ button. You should now see a page
like the below in which the ‗private view tab is defaulted.

Department of ECE 43 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

The Private View shows a chart corresponding to each of the fields that we have
added. Now click on the ‗Public View‘ tab. This should look exactly similar to the what we
see in the ‗Private View‘ tab since our channel is public. In case your channel is not
public('make public' check box not checked in the ‗channel settings‘ tab), the public view tab
shows a message that ‗This channel is not public‘.

Now click on the ‗API Keys‘ tab. You should see a screen similar to the below. The
write API key is used for sending data to the channel and the read API key(s) is used to read
the channel data. When we create a channel, by default, a write API key is generated. We
generate read API keys by clicking the ‗Generate New Read API Key‘ button under this
tab.You can also add a note corresponding to each of the read API keys.

Note: Please note that clicking on the ‗Generate New Write API Key‘ will over-write the
previous key. You will only have one Write API key at any point of time. Also, in case your
channel is private, others can only view the channel‘s feed and charts by using a Read API
key. Please share the Read API keys with people who are approved and authorized to view
your channel.

Now click on the ‗Data Import/Export‘ tab and you should see a screen similar to the below.
This tab is used to import the ‗Comma Separated Values(CSV)‘ data from a file into the
channel. You can also download the channel‘s feed from here in CSV format. This tab also
outlines how to send and view data by providing the URIs to the send and view APIs.

Department of ECE 44 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Aim:Find the room temperature and plot the graph .The temperature sensor is connected to
the beagle bone, connected to 40th pin of P9

import httplib, urllib


temp = 40
params = urllib.urlencode({'field1': temp, 'key':'ZP1PZO62773HXWVU'})
#headers = {"Content-typZZe": "application/x-www-form-urlencoded","Accept":
"text/plain"}
conn = httplib.HTTPConnection("api.thingspeak.com:80")
#conn.request("POST", "/update", params, headers)
conn.request("POST", "/update", params)
response = conn.getresponse()
print temp
print response.status, response.reason
data = response.read()
conn.close()
time.sleep(16)
Result

Department of ECE 45 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

6.3 GRAPHICAL USER INTERFACE


GUI allows the use of icons or other visual indicators to interact with electronic
devices; rather than using only text via the command line. For example, all versions of
Microsoft Windows utilize a GUI whereas MS-DOS does not.

A GUI uses window, icons, and menus to carry out commands, such as opening,
deleting, and moving files. Although many GUI operating systems are through the use of a
mouse, the keyboard can also be utilized by using keyboard shortcuts or arrow keys.

Unlike a command line operating systems or CUI like UNIX or MS-DOS, GUI
operating systems are much easier to learn and use because commands do not need
memorized. Additionally, users do not need to know any programming languages. Because of
their ease of use, GUI operating systems have become the dominant operating system today's
end-users.

A few examples of a GUI operating system

1. Microsoft windows

2. Apple System 7 and Mac os

3. chrome os

4. Linux

A few examples of a GUI interface

1. GNOME

2. KDE

3. Any Microsoft program (i.e. Word, exel,outlook)

4. Internet browser (i.e. internet explorer, chrome, Firefox)

Department of ECE 46 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

COMMAND LINE VS GUI

Its been tough switching from the comfort zone offered by vb.net in GUI development
Department of ECE 47 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

for windows to GUI development for Linux. Here we try make a simple ‗Helloworld‘ GUI
application using python language. The software used to setup this one is as follows:

1. Linux Mint 17 Qiana

2. PyCharm Community Edition

3. Qt 4 Designer

Language used: Python

Step 1:
GUI designing is done using Qt 4 Designer. Here a simple GUI is made by first creating a
blank widget. Drag in a few controls like a push button and a Text Edit control from the
toolbox of the designer. Also placed a label with the text field set as ‗Hello world program‘.

Now press CTRL+R to preview the GUI made and save the work done. Here after
saving we got a file named ‗untitled.ui‘. Take note of the folder path where this is saved since
we might need it later.

Step 2:
Our GUI for the application is ready but as you can see nothing happens when you click the
button. So we need to code the actions to be performed using python. Start a new project in
PyCharm.

Now copy and paste the earlier gui file created using qt to the PyCharm project folder.
Here the project name was ‗untitled1‘ so we paste the ‗untitled.gui‘ file to Home-

Department of ECE 48 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

>PyCharmProjects->untitled1 folder.

Now open the terminal window from PyCharm using the alt+F12 shortcut in
PyCharm and execute the following command. (This is very important)

pyuic4 untitled.ui -o test1gui.py

Now you will find a new file named test1gui.py added to your python project. This py
file will contain the python code for the corresponding GUI you developed using Qt earlier.

Department of ECE 49 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

APPENDIX

OPEN SOURCE SOFTWARE

 What is Open Source Software?


Open source software is software like any other. However it is distinguished by
its license, or terms of use, which guarantees certain freedoms, in contrast to
closed proprietary software which restricts these rights. Open source software
guarantees the right to access and modify the source code, and to use, reuses and
redistribute the software, all with no royalty or other costs. In some cases, there
can be an obligation to share improvements with the wider community, thus
guaranteeing global benefit.
These, apparently simple guarantees, have powerful implications:
Encourage reuse
 Enable innovation, flexibility, easier integration
 Drives down price of software to zero
 No vendor or service monopoly means no reason to hide defects and
security vulnerabilities
 No single-vendor means diversity of support and services choice,
sustained competition is a customer benefit
 No vendor monopoly means no reason to avoid free and open standards
 Darwinian evolution improves key software
 Lower barriers to entry, widens participation

In general terms, open source software is licensed under terms which allow
the user to practice, the so called ―four freedoms:
1. Use the software without access restrictions, within the terms of the licence
applied
2. View the source code

Department of ECE 50 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

3. Improve and add to the object and source code, within the terms of the licence
applied and this may include a term making it mandatory to publish modified
code on the community website
4. Distribute the source code.
The Open Source Initiative (OSI) maintains the Open Source Definition
(OSD), and is recognized globally as the authority on certifying whether a license
is truly open source. There is no reason why any public body would deviate from
the OSD and the OSI certifications of true open source licenses.

Whilst there are many open source licenses, the majority of commonly
used software uses the same handful of common licenses. This means that the
legal and commercial overhead for understanding and managing open source
licenses is significantly reduced.

ARDUINO BOARD

 What is Arduino?

Arduino is an open-source prototyping platform based on easy-to-use hardware


and software. Arduino boards are able to read inputs light on a sensor, a finger on
a button, or a Twitter message and turn it into an output activating a motor,
turning on an LED, publishing something online. Over the years Arduino has
been the brain of thousands of projects, from everyday objects to complex
scientific instruments. A worldwide community of makers - students, hobbyists,
artists, programmers, and professionals has gathered around this open-source
platform, their contributions have added up to an incredible amount of accessible
knowledge that can be of great help to novices and experts alike.

Arduino was born at the Ivrea Interaction Design Institute as an easy tool
for fast prototyping, aimed at students without a background in electronics and
programming. As soon as it reached a wider community, the Arduino board
started changing to adapt to new needs and challenges, differentiating its offer
from simple 8-bit boards to products for IoT applications, wearable, 3D printing,
and embedded environments. All Arduino boards are completely open-source,
Department of ECE 51 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

empowering users to build them independently and eventually adapt them to their
particular needs. The software too, is open-source, and it is growing through the
contributions of users worldwide.

 Why Arduino?

Arduino has been used in thousands of different projects and applications. The
Arduino software is easy-to-use for beginners, yet flexible enough for advanced
users. It runs on Mac, Windows, and Linux. Teachers and students use it to build
low cost scientific instruments, to prove chemistry and physics principles, or to
get started with programming and robotics. Designers and architects build
interactive prototypes, musicians and artists use it for installations and to
experiment with new musical instruments. Makers, of course, use it to build
many of the projects exhibited at the Maker Faire, for example. Arduino is a key
tool to learn new things. Anyone children, hobbyists, artists, programmers can
start tinkering just following the step by step instructions of a kit, or sharing ideas
online with other members of the Arduino community.

There are many other microcontrollers and microcontroller platforms


available for physical computing. Parallax Basic Stamp, Netmedia's BX-24,
Phidgets, MIT's Handy board, and many others offer similar functionality. All of
these tools take the messy details of microcontroller programming and wrap it up
in an easy-to-use package. Arduino also simplifies the process of working with
microcontrollers, but it offers some advantage for teachers, students, and
interested amateurs over other systems:

 Inexpensive - Arduino boards are relatively inexpensive compared to


other microcontroller platforms. The least expensive version of the
Arduino module can be assembled by hand, and even the pre-assembled
Arduino modules cost less than $50 .
 Cross-platform - The Arduino Software (IDE) runs on Windows,
Macintosh OSX, and Linux operating systems. Most microcontroller
systems are limited to Windows.

Department of ECE 52 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

 Simple, clear programming environment - The Arduino Software (IDE) is


easy-to-use for beginners, yet flexible enough for advanced users to take
advantage of as well. For teachers, it's conveniently based on the
Processing programming environment, so students learning to program in
that environment will be familiar with how the Arduino IDE works.
 Open source and extensible software - The Arduino software is published
as open source tools, available for extension by experienced
programmers. The language can be expanded through C++ libraries, and
people wanting to understand the technical details can make the leap from
Arduino to the AVR C programming language on which it's based.
Similarly, you can add AVR-C code directly into your Arduino programs
if you want to.
 Open source and extensible hardware - The plans of the Arduino boards
are published under a Creative Commons license, so experienced circuit
designers can make their own version of the module, extending it and
improving it. Even relatively inexperienced users can build the
breadboard version of the in order to understand how it works and save
money.

FPGA Papilio Board

Papilio is an open-source hardware and software project that puts the awesome
power of an FPGA into your creative arsenal.

 FPGA Unleashed

Our dream is to take the hardcore out of FPGA (Field Programmable Gate
Array) and make it an amazing tool that anyone can use for creative technology
projects. Just like the Arduino team simplified C++ programming, we simplify
FPGA design by providing easy to use drag and drop circuit libraries. We believe
that drawing circuits will result in an amazing outpouring of creative FPGA
projects. Use the Papilio to unleash your inner DaVinci. Draw and debug circuits
on a chip without any soldering, breadboarding, or weird programming
languages. Set your imagination free and put an FPGA in your creative arsenal.

Department of ECE 53 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

 Software and Features

The Papilio is much more than just a hardware project. In fact, the
software is the secret sauce that sets the Papilio apart from other FPGA boards. It
lets you draw up circuits without investing time and energy in learning
VHDL/Verilog.

We start with the Arduino IDE (Integrated Development Environment)


and supercharge it by adding circuits into the mix. We bring all of the pieces
needed to draw and debug your very own circuits in one place. It's an easy and
seamless user experience that we call Papilio DesignLab for use with both
Windows and Linux.

 Papilio DesignLab

We start with the Arduino IDE but every sketch now has a circuit
associated with it editing and debugging circuits is just a click away.Simply draw
and debug your circuits.Click on the "Edit Circuit" button and simply draw your
circuits using the Xilinx ISE schematic editor and our Papilio Circuit Library.

 Logic Analyzer

Drop a professional quality Logic Analyzer into any circuit and know
instantly what it's doing. Up to 32 channels and 200 MHz speed handles any
circuit you can throw at it. Use up to 75KB of internal memory or the external
SRAM memory.

 System on Chip - Draw Soft Processor Circuits

DesignLab includes the ZPUino Soft Processor with a Wishbone bus,


providing greater speed and flexibility than the Arduino-Compatible chip. A Soft
Processor runs inside the FPGA and uses the Wishbone bus to make it easy to
connect peripheral circuits, such as UARTs, PWMs or SPI masters. Making your
own Soft Processor with just the right mix of peripheral circuits is known as a
SOC (System On Chip) design. With DesignLab you can draw your SOC designs
in minutes.

Department of ECE 54 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

 Papilio Circuit Library

Drawing circuits can only accomplish so much without a library of


circuits (known as cores) to do the heavy lifting. Our goal is to provide the
framework for anyone to write a core that can be wired into a circuit.

We want to seek out the best open source circuits on the interwebs and
convert them to a dead simple schematic library. The internet is absolutely full of
open source circuits; just take a look at sites like OpenCores.com.

Xilinx Spartan 3E FPGAs

The Spartan-3E FPGA family offers the low cost and platform features you‘re
looking for, making it ideal for gate-centric programmable logic designs.
Sparatan-3E is the seventh family in the groundbreaking low-cost Spartan Series
and the third Xilinx family manufactured with advanced 90nm process
technology. Spartan-3E FPGAs deliver up to 1.6 million system gates, up to 376
I/Os, and versatile platform FPGA architecture with the lowest cost per-logic in
the industry. This combination of state-of-theart low-cost manufacturing and
cost-efficient architecture provides unprecedented price points and value. The
features and capabilities of the Spartan-3E family are optimized for high-volume
and low-cost applications.

 Spartan-3E Low-Cost Features

The Spartan-3E family reduces system cost by offering the lowest cost-per-logic
of any FPGA family, supporting the lowest-cost configuration solutions including
commodity serial (SPI) and parallel flash memories, and efficiently integrating
the functions of many chips into a single FPGA.

 Advanced, Low-Cost Features


 Five devices with 100K to 1.6M system gates
 From 66 to 376 I/Os with package and density migration
 Up to 648 Kbits of block RAM and up to 231 Kbits of distributed RAM

Department of ECE 55 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

 Up to 36 embedded 18x18 multipliers for high-performance DSP


applications
 Up to eight Digital Clock Managers
 Cost-Saving System Interfaces and Solutions
 Support for Xilinx Platform Flash as well as commodity serial (SPI) and
byte-wide flash memory for configuration
 Easy-to-implement interfaces to DDR memory
 Support for 18 common I/O standards, including PCI 33/66, PCI-X,
mini-LVDS, and RSDS
 Industry-Leading Design Tools and IP
 ISE design tools to shorten design and verification time
 Hundreds of pre-verified, pre-optimized Intellectual Property (IP) cores
and reference designs
 ChipScope Pro™ system-debugging environment
 Easy-to-Use, Low-Cost FPGA Development Systems
 Complete Spartan-3E Starter Kit available for only $149 USD
 Includes XC3S500E FPGA, SPI Flash, 32Mb DDR memory and
support for USB2.0
 Get more information about all Spartan-3™ Series development boards
at www.xilinx.com/s3eboards

Department of ECE 56 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

GENERATIONS

BEAGLEBOARD

USB-powered BeagleBoard features an OMAP3530 720MHz


ARM Cortex-A8 processor, NEON and VFP extensions for
additional acceleration, POWERVR™ graphics hardware, high-res
video and the capability to stream with a portable media player.
Work with all of the functionality of a laptop in a single tiny
package.

Processor: OMAP3530 720MHz ARM Cortex-A8

1. (>1GHz ARM11 MIPS)

2. NEON and VFP extensions for additional acceleration

Connectivity

1. USB 2.0 on-the-go (OTG) port

2. Connect standard peripherals to USB using any of the following:

- A mini-A to standard-A cable adapter

- DVI-D using an HDMI to DVI-D adapter

- MMC/SD/SDIO connector enabling a complete desktop experience

Software Compatitbility

1. Angstrom (Open Embedded)

2. Debian

3. Ubuntu

4. Gentoo

Department of ECE 57 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

BEAGLEBOARD-XM

BeagleBoard-xM delivers with the help of its AM37x 1GHz ARM processor, enabling
hobbyists, students and innovators to bring a project to development fast. Designed with
community inputs in mind, this open hardware design brings the previous generations' laptop-
like performance and expandability to the next level, while adhering to hand-held power
levels. Direct connectivity is supported by the on-board four-port hub with 10/100 Ethernet,
while maintaining a tiny credit-card-sized footprint.

Processor: AM37x 1GHz ARM Cortex-A8 compatible

1. More than 2,000 Dhrystone MIPS

2. Up to 20 million polygons/second graphics

3. HD video capable C64+TMDSP core

4. 512 MB LPDDR RAM

Connectivity

1. 2D/3D graphics accelerator

2. 4 USB 2.0 ports

3. MMC/SD connector

4. DVI-D port

5. S-Video port

6. USB mini AB connector

7. Ethernet

Software Compatibility

1. Angstrom Linux

2. Android

3. Ubuntu

Department of ECE 58 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

4. XBMC

BEAGLEBOARD-X15

BeagleBoard-X15 is the top performing, mainline Linux enabled, power-users‘ dream board
with a core tailored for every computing task and a high-speed interface for every
connectivity need. Give your algorithms room to stretch!

Processor: TI AM5728 2×1.5-GHz ARM® Cortex-A15

1. 2GB DDR3 RAM

2. 4GB 8-bit eMMC on-board flash storage

3. 2D/3D graphics and video accelerators (GPUs)

4. 2×700-MHz C66 digital signal processors

5. 2×ARM Cortex-M4 microcontrollers (MCUs)

6. 4×32-bit programmable real-time units (PRUs)

Connectivity

1. 2×Gigabit Ethernet

2. 3×SuperSpeed USB 3.0 host

3. HighSpeed USB 2.0 client

4. eSATA (500mA)

5. full-size HDMI video output

6. microSD card slot

7. Stereo audio in and out

8. 4×60-pin headers with PCIe, LCD, mSATA

9. and much more...

Department of ECE 59 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

Software Compatibility

1. Debian

2. Android

3. Ubuntu

4. Cloud9 IDE on Node.js

5. plus much more

BEAGLEBONE

BeagleBone is a credit-card-sized Linux computer that connects to the Internet and runs
software such as Android 4.0 and Ubuntu. With plenty of I/O and processing power for real-
time analysis provided by an AM335x 720MHz ARM® processor, BeagleBone can be
complemented with cape plug-in boards to augment functionality.

Processor: AM335x 720MHz ARM Cortex-A8

1. 256MB DDR2 RAM


2. 3D graphics accelerator
3. ARM Cortex-M3 for power management

Department of ECE 60 Govt Engineering CollegeIdukki


Embedded system Lab Manual 2015

4. 2x PRU 32-bit RISC CPUs

Connectivity

1. USB client: power, debug and device


2. USB host
3. Ethernet
4. 2x 46 pin headers

Software Compatibility

1. 4GB microSD card w/ Angstrom Distribution


2. Cloud9 IDE on Node.JS w/ BoneScript library

BEAGLEBONE BLACK

BeagleBone Black is a low-cost, community-supported development platform for developers


and hobbyists. Boot Linux in under 10 seconds and get started on development in less than 5
minutes with just a single USB cable.

Processor: AM335x 1GHz ARM® Cortex-A8

1. 512MB DDR3 RAM

2. 4GB 8-bit eMMC on-board flash storage

3. 3D graphics accelerator

4. NEON floating-point accelerator

5. 2x PRU 32-bit microcontrollers

Connectivity

1. USB client for power & communications

2. USB host

3. Ethernet

4. HDMI
Department of ECE 61 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

5. 2x 46 pin headers

Software Compatibility

1. Debian

2. Android

3. Ubuntu

4. Cloud9 IDE on Node.js w/ BoneScript library

5. plus much more

SEEEDSTUDIO BEAGLEBONE GREEN

SeeedStudio BeagleBone Green (BBG) is a joint effort by


BeagleBoard.org and Seeed Studio. It is based on the
open-source hardware design of BeagleBone Black and
developed into this differentiated version. The BBG has
included two Grove connectors, making it easier to
connect to the large family of Grove sensors. The on-
board HDMI is removed to make room for these Grove
connectors.

Processor: AM335x 1GHz ARM® Cortex-A8

1. 512MB DDR3 RAM

2. 4GB 8-bit eMMC on-board flash storage

3. 3D graphics accelerator

4. NEON floating-point accelerator

5. 2x PRU 32-bit microcontrollers

Connectivity

1. USB client for power & communications

2. USB host
Department of ECE 62 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015

3. Ethernet

4. 2x 46 pin headers

5. 2x Grove connectors (I2C and UART)

Software Compatibility

1. Debian

2. Android

3. Ubuntu

4. Cloud9 IDE on Node.js w/ BoneScript library

5. plus much more

Department of ECE 63 Govt Engineering CollegeIdukki

You might also like