MODULE -2
DragonBoard™ 410c peripherals
The DragonBoard 410c (‘410c’) board is a 96Boards compliant community board
based on Qualcomm® Snapdragon 400 series .
The following table lists it’s key features:
Processor:
o Qualcomm Snapdragon 410
o Quad-core ARM® Cortex® A53 at up to 1.2 GHz per core
o 64-Bit capable
o Qualcomm Adreno 306 400MHz GPU for PC-class graphics with support
for
o Advanced APIs, including OpenGL ES 3.0, OpenCL, DirectX, and content
security
Memory / Storage:
o 1GB LPDDR3, 533MHz
o 8GB eMMC 4.51
o SD 3.0 (UHS-I)
Video:
o 1080p@30fps HD video playback and capture with H.264 (AVC), and
720p
o Playback with H.265 (HEVC)
Camera Support:
o Integrated ISP with support for image sensors up to 13MP
Audio:
o PCM/AAC+/MP3/WMA, ECNS, Audio+ post-processing (optional)
Connectivity:
o WLAN 802.11 b/g/n 2.4GHz
o Bluetooth® wireless technology 4.1
o One USB 2.0 micro B (device mode only)
o Two USB 2.0 (host mode only)
o GPS
o On-board GPS antenna
o On-board BT and WLAN antenna
I/O Interfaces:
o One 40-pin Low Speed (LS) expansion connector
UART, SPI, I2S, I2C x2, GPIO x12, DC power
o One 60-pin High Speed (HS) expansion connector
4L-MIPI DSI, USB, I2C x2, 2L+4L-MIPI CSI
o One 16-pin analog expansion header
Stereo headset/line-out, speaker and analog line-in
o Footprint for one optional 16-pin analog expansion connector for stereo
headset/line-out, speaker and analog line-in
o The board can be made compatible with Arduino using an add-on
mezzanine board
EXternal Storage:
1
o Micro SD card slot
User Interface:
o 4 Buttons: Power/Reset/Volume Up/down
o 6 LED indicators
4 -user controllable
2 -for radios (BT and WLAN activity)
OS Support:
o Android 5.1
o Linux based on Debian
o OpenEmbedded
o Windows IoT Core
o Ubuntu Snappy Core
Mechanical:
o Power: +6.5V to +18V
o Dimensions: 54mm by 85mm meeting 96Boards™ Consumer Edition
standard dimensions specifications
Environmental:
o Operating Temp: 0°C to +70°C
o RoHS and Reach compliant
What’s in the Box
The box contains one DragonBoard 410c and a quick start guide.
Getting Started
2
Before you power up your DragonBoard 410c for the first time you will
need the following:
DragonBoard 410c
A 96Boards compliant power supply (sold separately by Arrow).
A HDMI or DVI LCD Monitor that supports a resolution of 1080P/30Hz.
HDMI-HDMI cable or HDMI-DVI cable to connect the board to the Monitor.
A computer keyboard with USB interface.
A computer mouse with USB interface.
Starting the board for the first time
To start the board, follow these simple steps:
1. Connect the HDMI cable to the 410c HDMI connector (marked J6) and to the
LCD Monitor
2. Connect the keyboard to the boards USB connector marked J3 and the mouse
to the USB connector marked J2. (It doesn’t matter which order you connect
them in. You can also connect via an external USB Hub.)
3. Ensure that the boot switches S6 are set to ‘0000’, all in Off position
4. Connect the power supply to power connector J1.
Component Details
Processor
The Snapdragon 410 APQ8016 is a quad 64-bit ARM Cortex-A53 MPcore
Harvard Superscalar core, supports both LP-DDR2 / LP-DDR3 SDRAM
interface, Hexagon QDSP6, 13.5 MP camera input support, Adreno 306 GPU,
1080p video encode/decode, gpsOneGen 8C with GLONASS, Bluetooth®
wireless technology 4.1, OpenGL ES 3.0, DirectX, OpenCL, Renderscript
Compute, FlexRender support.
Memory (DRAM)
The 410c uses a single embedded Multi Chip Package (eMCP) dual function
LPDDR3/eMMC memory solution. The installed chip provides 8Gbyte of solid
state storage and 1Gbyte of LPDDR3.
The LPDDR3 is a 32bit width bus implementation interfacing directly to the
APQ8016 build-in LPDDR controller. The maximum DDR clock is 533Mhz
The eMMC is an 8bit implementation interfacing with APQ8016 SDC1
interface supporting eMMC 4.5 specifications
Micro SDHC
The 96Boards specification calls for a microSDHC socket to be present on the
board,. SD slots do not have a dedicated CD pins, they use DATA3 state as
the card detected signal). The 410c board uses APQ GPIO_38 as the
SD_CARD_DET_N.SD slot (J5) signals are routed directly to the APQ8016
3
SDC2 interface. The slot is a push-push type with a dedicated support for
card detect signal (many The 410c board
Networking
The 96Boards specifications calls for a WiFi (minimally 802.11g/n) and
Bluetooth 4.1 (Bluetooth Low Energy) .The 410c board deployed Qualcomm’s
RF chip WCN3620 (U5) solution that integrates three different wireless
connectivity technologies into a single device, the interfaces are:
WiFi
WLAN compliant with IEEE 802.11 b/g/n specifications, meeting 96Boards
minimal requirements for WiFi.
Bluetooth
Bluetooth compliant with the BT specifications version 4.1 (BR/EDT + BLE),
meeting the 96Boards requirements for BT
Worldwide FM Radio
Worldwide FM radio, this interface is not part of the 96Boards mandatory
specification. It is an optional addition that has not been tested is not
officially supported.
GPS
The GPS implementation is based on Qualcomm WGR7640 GNSS RF receiver
(U7) supporting GPS, GLONASS and COMPASS. The APQ8016 communicates
directly with the WGR7640.
HDMI
The 96Boards specification calls for an HDMI port to be present on the board.
The APQ8016 doesn’t include a built-in HDMI interface. The 410c deploys the
built-in MIPI-DSI 4 lanes interface as the source for the HDMI output. A
peripheral DSI to HDMI Bridge (U3, Analog Devices ADV7533) performs this
task and it supports a resolution from 480i to 1080p at 30Hz.
While the ADV7533 supports automatic input video format timing detection
(CEA-861E), an I2C channel from the APQ8016 allows the user to configure
the operation of this bridge. It is I2C3 interface from the SoC that connects to
the bridge.
This bridge supports audio as well (meeting the 96Boards requirements to
provide audio via HDMI). The 410c uses a single bit I2S2 interface from the
APQ8016 for this task.
IOT ARCHITECTURE
State of the art IoT architecture varies from solution to solution, based on the type of solution which we
intend to build. IoT as a technology majorly consists of four main components, over which an
architecture is framed.
4
1) Sensors
2) Devices
3) Gateway
4) Cloud
Physical Devices and Controllers The IoT Reference Model starts with Level 1: physical devices and
controllers that might control multiple [Link] are the ―things‖in the IoT, and theyinclude a wide
range of endpoint devices that send and receive information. Today, the list of devices is already
extensive. It will become almost unlimited as more equipment is added to the IoT over time. Devices are
diverse, and there are no rules about size, location, form factor, or origin. Some devices will be the size
5
of a silicon chip. Some will be as large as vehicles. The IoT must support the entire range. Dozens or
hundreds of equipment manufacturers will produce IoT devices. To simplify compatibility and support
manufacturability, the IoT Reference Model generally describes the level of processing needed from
Level 1devices.
Integrated Development Environment:-
An IDE (Integrated Development Environment) is software that combines commonly used developer
tools into a compact GUI (graphical user interface) application. It is a combination of tools like a code
editor, code compiler, and code debugger with an integrated terminal.
Integrating features like software editing, building, testing, and packaging in a simple-to-use tool,
IDEs help boost developer productivity. IDEs are commonly used by programmers and software
developers to make their programming journey smoother.
IDEs important:-
One certainly does not need an IDE to code or develop applications. Even a simple text editor like
notepad can be used to write code. However, IDEs offer some stunning features that go beyond
ordinary editing. By providing frequently used developer tools all in one simple interface, one can
directly get on to building their applications without going through the hardship of manually
configuring and integrating the development environment.
Common Features of an IDE (Integrated Development Environment)
IDEs provide a broad variety of features which typically consist of:
Editor: Typically a text editor can help you write software code by highlighting syntax with visual
cues, providing language-specific auto-completion, and checking for bugs as you type.
6
Compiler: A compiler interprets human-readable code into machine-specific code that can be
executed on different operating systems like Linux, Windows, or Mac OS. Most IDEs usually
come with built-in compilers for the language it supports.
Debugger: A tool that can assist developers to test and debug their applications and graphically
point out the locations of bugs or errors if any.
Build-in Terminal: Terminal is a text-based interface that can be used for interacting with the
machine's operating system. Developers can directly run the scripts or commands within an IDE
with a built-in terminal/console.
Version Control: Version control helps bring clarity to the development of the software. Some
IDEs also support version control tools like Git, through which a user can track and manage the
changes to the software code.
Code snippets: IDEs support code snippets that are usually used to accomplish a single task and
can also reduce redundant work to some great extent.
Extensions and Plugins: Extensions and Plugins are used to extend the functionality of the
IDEs with respect to specific programming languages.
Code navigation: IDEs come with tools like code folding, class and method navigation, and
refactoring tools that make it simple to go through and analyze code.
Use IDE (Integrated Development Environment ):-
By providing a single, unified environment for managing all aspects of the development process,
IDEs can help improve a developer's productivity, code quality, and overall development experience.
Productivity: By combining common activities such as editing code, building executables,
debugging, and testing as part of software/application development, IDEs help by reducing time
and increasing overall productivity.
Code Quality: IDEs come with built-in tools as a part of a single GUI, through which developers
can execute actions without switching between applications. Furthermore, it can also help in Syntax
highlighting, code refactoring, and code analysis boosting overall code quality.
Integrated Environment: IDEs come pre-built with a combination of development tools that allow
developers to start programming new applications quickly. With IDEs, it is no longer necessary to
manually configure and integrate numerous utilities as part of the setup procedure. Additionally,
since every utility is available on the same workbench, developers don't have to spend hours
learning how to use each one separately.
Customizability: By incorporating customization options ranging from custom color schemes, and
keyboard shortcuts, to choosing unique layouts, different plugins, and add-ons; IDEs enable
developers to customize their environment to their unique needs and tastes, improving the comfort
and efficiency of the development process.
Types of IDEs:-
IDEs come in various forms, some are designed to work for a specific language whereas some are
targeted to a particular platform like mobile devices. Hence, it becomes equally important to choose an
IDE best suited to one's needs.
1. Desktop IDEs
This type includes the IDEs that can be configured locally. They do not need an active internet
connection to build/run programs. Desktop IDEs are highly customizable to suit developer-specific
needs and provide performance irrespective of the internet speed. Examples: include Microsoft Visual
Studio, Eclipse, Netbeans, etc.
2. Cloud IDEs
Cloud IDEs eliminate the overhead of configuring the software locally. They run on remote servers and
can be accessed through desktop browsers. Cloud IDEs provide better accessibility and platform
independence making them accessible through the Internet Irrespective of the Client Operating System.
7
Cloud IDEs can be used freely or can have pricing models with respect to the
provider. Examples: Include Gitpod, AWS Cloud 9, Replit, etc.
3. Mobile App Development IDEs
These IDEs are specially designed for creating mobile applications. They include features like
Emulator support and integration for developing and testing mobile applications. Mobile Development
IDEs can be in the form of Desktop IDE or Cloud IDE. Examples: Include Android Studio, [Link],
etc.
4. Database-Specific IDEs
These IDEs (Integrated Development Environments) are specially designed for working with databases.
They include features like query builders and n for developing and testing mobile applications. Like
mobile-development IDEs, Database IDEs can also be in the form of Desktop IDE or Cloud
IDEs. Examples: Include MySQL Workbench, Oracle SQL Developer, etc.
How Should I Choose an IDE?
One can find many IDEs available in the market, while some are open-source and free to use, others
may work with subscription models. Popular IDEs include Visual Studio, PyCharm, Android Studio,
etc.
1. Programming Language: The choice of IDE (Integrated Development Environment) mainly lies
with the programming language you decide on. Dedicated IDEs have automated features that best suit
the programming languages they support. While there also exist IDEs that support multiple
programming languages.
2. Operating System: Mostly all IDEs work with different Operating systems, but there exist IDEs
that might only work best on specific platforms. You may take into account the IDEs' compatibility
with various platforms and operating systems.
3. Pricing Model: Some IDEs might be freely available while some may require a premium
subscription model to unlock the majority of the features. Taking your budget and your needs, go with
the IDE that suits you the best.
4. Features: Features like version control, debugger, code highlighter, integrated terminal, and code
refactoring are some of the features that can be considered white choosing an IDE.
Advantages of using IDE
Some of common advantages of IDEs or Integrated Development Environments are as follows:
Project Management: IDEs make viewing the project directory structure much simpler which
breaks down the tedious tasks of working with multiple files. Typically IDEs also include a number
of tools, such as syntax highlighting, code completion, and code folding, which makes it easier to
manage the overall project.
Saving plenty of time and Effort: IDEs often include a variety of tools that can not only assist
you in organizing your code but also quickly highlight the error in your code. They also include a
flexible combination of tools for compiling, building, testing, and deploying your code, through
which you can automate these tasks eliminating the need to manually run each task.
Productivity: IDEs can increase your productivity by providing a centralized location for all of
your development needs, from writing and editing code to debugging and deploying. Some of the
functionality provided by IDEs can also be accomplished with a text editor and command-line
tools, but IDEs usually make the process more convenient and user-friendly.
Disadvantages of using IDE
Some of common disadvantages of IDEs or Integrated Development Environments are as follows:
Not beginner Friendly: IDEs are complex tools and generally provide quite an intimidating UI,
which can be a little tough to comprehend for a beginner. Maximizing their benefit generally needs
a dedicated effort.
Frequent Updates: It's difficult to keep up with constant updates, such as new samples, templates,
and features.
8
Only Assist in writing code: As a tool, IDEs (Integrated Development Environments) are limited
to being an assistant. They can't write code or automatically fix errors, one still needs the
knowledge to write clean code.
Cost: Some IDE is Expensive or needs additional costs to unlock some add-ons, which can be a
barrier for small-scale companies or learning Individuals.
File System Navigation Commands in Linux:-
Linux offers an alternative to the usual windows and icons. The terminal might seem different at first,
relying on text commands instead of a mouse. But this simplicity holds immense power.
Difference between Windows and Linux File System
Feature Windows Linux
Drives (C:, D:, etc.) and Single, unified tree structure starting from
Structure folders root (/)
Case
Not case-sensitive Case-sensitive
Sensitivity
File More granular control (user, group,
Simpler (user accounts)
Permissions others)
Ext4 (most common)
Primarily NTFS
File System FAT32, NTFS (sometimes)
Overall User-friendly, familiar
Flexible, powerful for advanced users
Remarks interface
Commonly Used File System Navigation Commands
Linux Commands Functions
pwd Shows the current location.
ls List files and folders.
cd Change working directory.
mkdir Used to create new folder.
rmdir Remove an empty folder.
cp Creating a copy of a file in a new location.
9
Linux Commands Functions
mv Relocate files from one folder to another.
1. pwd (print working directory )
The pwd command shows the current location in the system. It tells you which folder you're currently
in.
pwd
Observation
The current directory is /home/kali/Templates
2. ls (list files and directories)
The ls command is used to list the files and directories in the current directory. It provides an overview
of what is inside a folder.
ls
Observation
All the files and folders present inside the current folder is listed.
3. cd (change directory)
The cd command is used to move between folders. You can tell it exactly which folder you want to go
to (like giving it an address), or you can use shortcuts to get around. Let's look into both the methods.
Moving around nearby folder
If you want to move into a folder that's within the one you're already in, you can just use its name. For
instance, if you're in your home directory and want to reach downloads.
cd [directory name]
cd Downloads
10
Observation
A. checking the current directory
B. using cd command to change the directory
C. observe the updated directory
Going to a Specific Folder
Imagine telling someone the full address to find your house. Similarly, you can do the same by giving
the complete path to the folder. For example, you want to access the documents folder inside
the username folder.
cd [directory path]
cd /home/username/documents
Observation
Directory Structure
11
Considering the above directory structure, the active directory was changed from Downloads to
Documents by traversing from the home directory.
4. mkdir (make directory)
The mkdir command, an abbreviation for "make directory," allows you to create new folders within
your existing file system. This provides a structured way to categorize and store your files.
mkdir [directory name]
mkdir GeeksForGeeks
Observation
A. User tried to create a new folder named GeeksForGeeks
B. changed the directory to newly created directory
C. The active directory is updated
5. rmdir (remove empty directory)
The rmdir command, short for "remove directory," enables you to delete empty directories. This is
useful for cleaning up unused folders and maintaining a streamlined file system.
The syntax for rmdir is:
rmdir [directory_name]
Note: rmdir can only delete empty directories.
Observation
Observe that the empty directory was removed.
12
6. cp (copy)
The cp command acts like a duplicator, creating a copy of a file in a new location.
cp [source_file] [location]
For instance, to copy "[Link]" from Downloads to Pictures while keeping the original, you'd use
cp ~/Downloads/[Link] ~/Pictures
Obervation
A. Executing the copying command.
B. Changing the current active directory for checking.
C. Using the list command, we can observe that the [Link] was copied.
7. mv (move)
The mv command is like a handy mover, allowing you to relocate files from one folder to another.
mv [source_file] [location]
13
Observation
A. Executing the mv (move) command.
B. Changing the current active directory.
C. After executing ls (list) command, we can observe that the file has been transferred.
14