We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

Internet of Things

Setting Up Your DragonBoard™ Development Platform

Ganz Chockalingam and Harinath Garudadri

Do you want to develop skills to prototype mobile-enabled products using state-of-the-art technologies? In this course you will build a hardware and software development environment to guide your journey through the Internet of Things specialization courses. We will use the DragonBoard™ 410c single board computer (SBC).

Read more

Do you want to develop skills to prototype mobile-enabled products using state-of-the-art technologies? In this course you will build a hardware and software development environment to guide your journey through the Internet of Things specialization courses. We will use the DragonBoard™ 410c single board computer (SBC).

This is the first in a series of courses where you will learn both the theory and get the hands-on development practice needed to prototype Internet of Things products. This course is suitable for a broad range of learners.

This course is for you if:

• You want to develop hands-on experience with mobile technologies and the Internet

• You want to pivot your career towards the design and development of Internet of Things enabled products

• You are an entrepreneur, innovator or member of a DIY community

Learning Goals:

After completing this course, you will be able to:

1. Configure at least one integrated development environment (IDE) for developing software.

2. Make use of git, adb and fastboot to flash multiple OS and repair bricked boards.

3. Install Android 5.1 (Lollipop) and Linux based on Ubuntu.

4. Create, compile and run a Hello World program.

5. Describe the DragonBoard™ 410c peripherals, I/O expansion capabilities, Compute (CPU and Graphics) capabilities, and Connectivity capabilities.

Enroll now

What's inside

Syllabus

Introduction
Welcome to the Internet of Things! Before diving into this course give us a chance to let you know what it is all about! We will walk you through a module by module outline that will give you highlights on the interesting aspects of the course.
Read more
Terminology/Cheat Sheet (Beginner)
In this course, you will see a lot of new words and acronyms you might not be familiar with. If you feel comfortable with your knowledge of tech terminology, feel free to skip these lessons since they will not affect the overall integrity of the course. If you see something that you want to know a little more about, feel free to watch the video to gain insight on some basic concepts. We do expect you to know the majority of this material before going into the next module, we would recommend going through the lessons as a quick brush up.
Board Bring up
The new and exciting DragonBoard™ 410c is now available! In this module you will get introduced to the new all-in-one board, get an overview of all its amazing features and find out how you can get one yourself. We will then walk you through the registration process, and how to get your board started up for the first time! By the end of this module you will know enough about the DragonBoard™ 410c to begin using it for the fun projects that are to come later in this course and in the rest of the courses in the Internet of Things specialization.
Setting up your Developing Environment
In order to easily communicate with your DragonBoard™ 410c it is essential to set up a developing environment. In this lesson we will talk about Android Studio as our preferred IDE (Integrated Development Environment), we will show you how and where to download it as well as walk you through the installation process on both Mac/Linux and Windows. As an Android developer you will need a variety of tools, these tools come bundled with the Android Studio download and are referred to as the SDK (Software Developer Kit). This lesson will cover accessing the SDK and utilizing the various tools it has to offer. ADB (Android Debug Bridge) and Fastboot are among the tools we will be using most throughout this course. It is with these tools that you will be able to access your board at all levels and make crucial changes needed for development.
Changing your Operating System
The DragonBoard™ 410c is capable of running a variety of different operating systems, that being said you are free to chose the operating system that you find is best fit for you. Now, we understand that there is a diverse user base for this board and would like to cover as much as possible in this lesson so everyone can enjoy it! Whether you are a Windows user or a Mac user, or prefer Android over Ubuntu, there is a video or two here for you! In this lesson we will help you choose an operating system to best fit for your needs, we will then cover the download, flashing and installation process for all currently available operating systems. Because of the diverse nature of this board we will teach you multiple ways to flash your new operating system and provide a pro's and con's list for the different methods. By the end of this lesson switching between operating system will be easy and exciting for users of all skill levels.
Rescuing your Bricked Board
No one expects to damage their new DragonBoard™ 410c, but sometimes accidents happen. This module is dedicated to helping you not only prevent these accidents from happening, but also to fixing any problems should your board become damaged in any way. Here we will go over the difference between a soft brick and a hard brick and why they are two things you want to avoid.
Creating your First Application
Welcome to Module 6! In this module we will be creating your first Android App to port to the DragonBoard™ 410c. This “Network Test” App will give you a teaser for the programmatic feats you will be able to accomplish with the DragonBoard™! You will learn about the different GPS and Location Services available on Android and how to access Bluetooth and Wi-fi Data. This module will briefly go over the importance of the Android Manifest and asking the Users for the proper permissions. Lastly, we’ll spice up our application by playing around with Intents and enabling the application to facilitate the above connectivity and network tests. This may sound like a lot, but don’t worry! We will help you get on your feet and by the end of this module, you’ll have coded a neat little application.
Native Development Kit (NDK)
In Module 7, will give you a general introduction and brief overview of Android Studio’s Native Development Kit (NDK). The NDK allows us users to program Android applications using C/C++. The NDK utilizes the Java Native Interface (JNI) to facilitate code and interaction between Java and C/C++. This tool was created for users who either have existing C/C++ libraries or plan to use libraries only available in C/C++. Android Studio has a specific build and compilation process catered specifically for NDK Applications that we will explain and cover in this Module. Once we have a better understanding of the NDK, we will create a straightforward “Hello World!” application.
CALIT2 Bird Application
Who doesn’t love a good game to pass time? In this Module, we will create a more advanced and interactive Android Application / Game! We will be creating our version of FlappyBird--CalliBird or Calit2Bird, as we like to call it. We will cover the basics of the game by defining certain parameters. First, we have what we call our “Actors”. You can think of “Actors” as any part of the game that appears on the screen (the obstacles and the bird). In the game, we also define our own Location system and a Map class that will handle the different movements in the game. Next we define our game processor which is the backbone of the game. Game Processor ensures your score is constantly updated, delegates the movements to the Map class, and detects collisions, to name a few. Lastly, we will cover the importance of interfaces and its application to this Android App. Interfaces will enable us to 1. play CalliBird / Calit2Bird using any form of input we want (using touch, a sensor, a controller, etc.) and 2. render the game in any display we have (a screen, an led block, etc.). There is a lot of freedom with this game so you will be able to spice it up and make it your own!
Monitoring your DragonBoard™ 410c
Congratulations! You’ve made it to the last module of Course 2! In this Module we will cover a more advanced NDK Application. This application is a bit more challenging than prior applications because it is coded in both Java and C. Regardless of the rigour, we know you’ll be able to accomplish this feat! As for the application, we will be turning our DragonBoard™ 410c into a web server! This web server will detail information regarding the DragonBoard™ 410c’s connectivity, GPIOs, and any other statuses you may want to add. We will pull the information from the DragonBoard™ and encode it in a JSON format using Java, then use C to establish a server connection and send the data out. We will walk you through our code and thought processes so that you can gain a better understanding of how to use the NDK to run Android Applications as well as a taste of what the Internet of Things is all about.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
You want to prototype mobile-enabled products using the latest technologies
You plan to switch your career towards the design and development of IoT-enabled products
You are an entrepreneur, innovator, or DIY community member
Experienced learners who want to expand their expertise
Learners completely new to hardware development

Save this course

Save Internet of Things: Setting Up Your DragonBoard™ Development Platform to your list so you can find it easily later:
Save

Reviews summary

Dragonboard development setup course

Learners say this course is good but the learning materials provided are not up to date.
Coding material may cause importing and functionality issues with Android IDE.
"Also, coding material could be a little behind and may cause problems when importing into Android IDE and trying to making it work."
Course materials such as NDK and JNI are outdated.
"The material used in this course is not totally updated, like the NDK and JNI sections."

Activities

Coming soon We're preparing activities for Internet of Things: Setting Up Your DragonBoard™ Development Platform. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Internet of Things: Setting Up Your DragonBoard™ Development Platform will develop knowledge and skills that may be useful to these careers:
Mobile Developer
Mobile Developers are responsible for developing software for mobile devices. This can include apps for smartphones and tablets. As a Mobile Developer, you will need to have a strong understanding of the Android and iOS operating systems. This course will help you to develop the skills you need to build mobile apps that run on both platforms.
Android Developer
Android Developers build and maintain mobile applications that run on the Android operating system. As an Android Developer, you will use your knowledge of the Android SDK and the Java programming language to create apps that are both useful and engaging. This course will provide you with the skills you need to develop Android apps from scratch.
Software Developer
Software Developers design, develop, and maintain software applications. As a Software Developer, you will use your knowledge of programming languages and software development tools to create software that meets the needs of users. This course will help you to develop the skills you need to start a career as a Software Developer.
Web Developer
Web Developers are responsible for developing and maintaining websites. As a Web Developer, you will use your knowledge of HTML, CSS, and JavaScript to create websites that are both visually appealing and user-friendly. This course will help you to develop the skills you need to build websites that meet the needs of users.
UX Designer
UX Designers are responsible for designing the user experience for websites and apps. As a UX Designer, you will use your knowledge of human-computer interaction to create interfaces that are both easy to use and enjoyable to interact with. This course will help you to develop the skills you need to be a UX Designer.
UI Designer
UI Designers are responsible for designing the visual appearance of websites and apps. As a UI Designer, you will use your knowledge of design principles and software tools to create interfaces that are both visually appealing and user-friendly. This course will help you to develop the skills you need to be a UI Designer.
Machine Learning Engineer
Machine Learning Engineers are responsible for developing and deploying machine learning models. As a Machine Learning Engineer, you will use your knowledge of machine learning algorithms and software tools to create models that can solve real-world problems. This course will help you to develop the skills you need to be a Machine Learning Engineer.
Data Scientist
Data Scientists are responsible for collecting, analyzing, and interpreting data. As a Data Scientist, you will use your knowledge of statistics, machine learning, and data mining to extract insights from data. This course will help you to develop the skills you need to be a Data Scientist.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. As a Project Manager, you will work with stakeholders to define project goals, develop project plans, and track project progress. This course will help you to develop the skills you need to be a Project Manager.
Product Manager
Product Managers are responsible for managing the development and launch of products. As a Product Manager, you will work with engineers, designers, and marketers to ensure that products meet the needs of users. This course will help you to develop the skills you need to be a Product Manager.
Systems Analyst
Systems Analysts are responsible for designing and implementing computer systems. As a Systems Analyst, you will work with users to understand their needs and develop systems that meet those needs. This course will help you to develop the skills you need to be a Systems Analyst.
IT Consultant
IT Consultants are responsible for providing advice and guidance to businesses on how to use technology to meet their business goals. As an IT Consultant, you will work with businesses to assess their needs, develop solutions, and implement those solutions. This course will help you to develop the skills you need to be an IT Consultant.
Business Analyst
Business Analysts are responsible for analyzing business processes and identifying opportunities for improvement. As a Business Analyst, you will use your knowledge of business analysis techniques and software tools to create solutions that meet the needs of businesses. This course will help you to develop the skills you need to be a Business Analyst.
Network Administrator
Network Administrators are responsible for managing and maintaining computer networks. As a Network Administrator, you will work with network hardware and software to ensure that networks are running smoothly and efficiently. This course will help you to develop the skills you need to be a Network Administrator.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. As a Database Administrator, you will work with database software and hardware to ensure that databases are running smoothly and efficiently. This course will help you to develop the skills you need to be a Database Administrator.

Reading list

We've selected 31 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Internet of Things: Setting Up Your DragonBoard™ Development Platform.
Must-read for any software developer. It teaches you how to write clean, maintainable code that is easy to read and understand. It great resource for anyone who wants to improve their coding skills.
Comprehensive guide to Android Studio development. It covers all the essential concepts, from setting up your development environment to creating your first Android applications. It good choice for anyone who wants to learn more about Android Studio development.
Comprehensive guide to Android 11 development. It covers all the essential concepts, from new features to best practices. It good choice for anyone who wants to learn more about Android 11 development.
Classic in the Unix community. It comprehensive guide to Unix programming, covering everything from basic concepts to advanced topics. It great choice for anyone who wants to learn more about Unix.
Comprehensive guide to real-time systems design and analysis. It covers all the essential concepts, from basic principles to advanced topics. It great choice for anyone who wants to learn more about real-time systems.
Comprehensive survey of the Internet of Things. It covers all the essential concepts, from basic principles to advanced topics. It great choice for anyone who wants to learn more about the Internet of Things.
Is an excellent introduction to Android programming for beginners. It covers all the basics, from setting up your development environment to creating your first apps. It is also a good reference for more experienced developers who want to brush up on their skills.
Comprehensive guide to the Raspberry Pi. It covers all the essential concepts, from hardware to software. It good choice for anyone who wants to learn more about the Raspberry Pi.
Provides a comprehensive overview of software development, covering the fundamentals of software development, including design, testing, and debugging. It valuable resource for both beginners and experienced software developers who want to learn the best practices of software development.
Provides a comprehensive overview of Android security internals, covering the fundamentals of Android security, including permissions, cryptography, and secure storage. It valuable resource for both beginners and experienced Android developers who want to learn about Android security.
Provides a comprehensive overview of the IoT, with coverage of IoT technologies, architectures, and applications. It good reference for anyone interested in learning more about the IoT or building IoT applications.
Provides a comprehensive overview of the IoT, with coverage of IoT technologies, architectures, and applications. It good reference for anyone interested in learning more about the IoT.
Provides a comprehensive overview of software development, covering the fundamentals of software development, including design, testing, and debugging. It valuable resource for both beginners and experienced software developers who want to learn the best practices of software development.
Great introduction to embedded Linux. It covers all the basics, from setting up your development environment to creating your first embedded Linux applications. It good choice for beginners who want to learn how to use embedded Linux.
Provides a set of guidelines for writing clean code. It covers topics such as naming conventions, formatting, and testing. Following these guidelines can help you to write code that is easy to read, maintain, and debug.
Provides a comprehensive overview of debugging techniques. It covers a wide range of topics, including debugging tools, debugging strategies, and common debugging pitfalls.
Provides a comprehensive overview of Android security. It covers a wide range of topics, including rooting, malware, and reverse engineering.
Great way to learn the basics of Java. It is written in a fun and engaging style, and it covers all the essential concepts. It good choice for beginners who want to learn Java quickly and easily.
Great introduction to the Linux command line. It covers all the basics, from basic commands to more advanced topics. It good choice for beginners who want to learn how to use the Linux command line.
Provides a comprehensive overview of Android programming, covering everything from the basics to advanced topics such as networking and security. It valuable resource for both beginners and experienced Android developers.
Practical guide to designing IoT devices. It covers all the essential concepts, from hardware to software. It good choice for anyone who wants to learn how to design IoT devices.
Practical guide to building IoT projects with Arduino. It covers all the essential concepts, from hardware to software. It good choice for anyone who wants to learn how to build IoT projects with Arduino.
Provides a comprehensive overview of Android user interface design, covering the fundamentals of Android user interface design, including material design, navigation, and layouts. It valuable resource for both beginners and experienced Android developers who want to learn the best practices of Android user interface design.
Comprehensive reference for the Linux programming interface. It covers a wide range of topics, including system calls, file I/O, and network programming.
Provides a comprehensive overview of Android Studio 3.0, the official IDE for Android development. It covers everything from setting up your development environment to debugging and testing your apps.
Provides a business-oriented perspective on the IoT, with coverage of IoT technologies, business models, and applications. It good resource for anyone interested in learning more about the business potential of the IoT.
Great introduction to Android development for beginners. It uses a hands-on approach to teach the basics of Android programming, and it is full of helpful examples and exercises.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Internet of Things: Setting Up Your DragonBoard™ Development Platform.
Internet of Things V2: DragonBoard™ bring up and...
Most relevant
Internet of Things: Communication Technologies
Most relevant
Internet of Things: Sensing and Actuation From Devices
Most relevant
Internet of Things: Multimedia Technologies
Most relevant
Internet of Things Capstone: Build a Mobile Surveillance...
Internet of Things Capstone V2: Build a Mobile...
Cybersecurity and the Internet of Things
Internet of Things: How did we get here?
IoT Systems and Industrial Applications with Design...
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser