Beaglebone Black
Beaglebone Black
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.
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.
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.
STEP2:INSTALL DRIVERS
1. Run BONDE_d64.exe
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
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
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
CHAPTER 2
BOOT MODES
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
exit
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
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
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.
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.
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.
http://www.python.org/download/.
run./configure script
2. Windows Installation
Here are the steps to install Python on Windows machine.
Follow the link for the Windows installer python-XYZ.msi file where XYZ is
the version you need to install.
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.
1. Interactive Interpreter
You can start Python from Unix, DOS, or any other system that provides you a
command-line interpreter or shell window.
$python # Unix/Linux
or
python% # Unix/Linux
or
C:>python # Windows/DOS
or
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.
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.
The number of spaces in the indentation is variable, but all statements within
the block must be indented the same amount. For example:
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:
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:
that goes on
and on
and on."""
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.
Other important sequence types used in Python include lists and tuples. A
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:
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.
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):
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:
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.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 :
else:
3.8 LOOPS
Python provides two looping commands: for and while. These are compound commands.
1. for loop
2. while loop
While condition:
Action
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.
CHAPTER 4
PIN OUT
4.1 FEATURES
CHAPTER 5
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.
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.
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.
voltage, change in proportion to the magnitude of the IR light received. This is the underlying
principle of working of the IR sensor.
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.
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.
GPIO.setup(―P9_14‖,GPIO.IN)
GPIO.setup(―P9_15‖,GPIO.OUT)
while True:
ifGPIO.input(―P9_14‖):
GPIO.output(―P9_15‖,GPIO.HIGH)
else
GPIO.output(―P9_15‖,GPIO.LOW)
(ii)Result: Wrote program for PIR sensor interfacing for motion detection and executed
successfully.
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
−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.
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
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
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
The choice of parallel links over serial links was driven by these factors:
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
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.
Data Transfer is called Asynchronous when data bits are not ―synchronized‖ with a
clock line, i.e. there is no clock line at all.
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 is when the data bits are ―synchronized‖ with a clock pulse.
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).
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.
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
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.
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.
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.
Aim:Find the room temperature and plot the graph .The temperature sensor is connected to
the beagle bone, connected to 40th pin of P9
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.
1. Microsoft windows
3. chrome os
4. Linux
1. GNOME
2. KDE
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:
3. Qt 4 Designer
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-
>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)
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.
APPENDIX
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
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 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.
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.
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.
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.
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.
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.
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.
GENERATIONS
BEAGLEBOARD
Connectivity
Software Compatitbility
2. Debian
3. Ubuntu
4. Gentoo
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.
Connectivity
3. MMC/SD connector
4. DVI-D port
5. S-Video port
7. Ethernet
Software Compatibility
1. Angstrom Linux
2. Android
3. Ubuntu
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!
Connectivity
1. 2×Gigabit Ethernet
4. eSATA (500mA)
Software Compatibility
1. Debian
2. Android
3. Ubuntu
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.
Connectivity
Software Compatibility
BEAGLEBONE BLACK
3. 3D graphics accelerator
Connectivity
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
3. 3D graphics accelerator
Connectivity
2. USB host
Department of ECE 62 Govt Engineering CollegeIdukki
Embedded system Lab Manual 2015
3. Ethernet
4. 2x 46 pin headers
Software Compatibility
1. Debian
2. Android
3. Ubuntu