Setting up the Raspberry Pi 3 in 15 Minutes

Video Transcript

In this video, we’ll set up the Raspberry Pi 3 from scratch, step-by-step. By the end of this video, which will take no more than 15 minutes, you will have all of the hardware and software of the Raspberry Pi set up and ready to go, so you can begin building whatever you want: robots, a weather station, a smoke alarm, a home surveillance system, games and much more.

Ok, let’s get started. Feel free to pause the video at any time as you follow along with me.

You will need:

  • A USB keyboard and mouse. If all you have is a wireless keyboard and mouse that is OK.
  • You will also need a spare computer monitor or television with an HDMI port.
  • An HDMI cord.
  • A computer with Windows, Mac, or Linux.
  • And finally you will need a Raspberry Pi 3 starter kit. The one I’m using in this video is the Canakit Raspberry Pi 3 complete starter kit available from Amazon.

Step 1 – Open the Raspberry Pi Case

First, get your Raspberry Pi 3 kit and open it up. It should come in a small cardboard box. Take out all of the pieces and lay them out on the table.

Grab the plastic case for the Raspberry Pi. It should be inside the small white box that came with the kit. The case is made up of three separate plastic pieces. Stick your thumbs inside one of those notches and pull apart the pieces.

Step 2 – Add the Heat Sinks to the Development Board

Next, we are going to add the heat sinks to our development board. The development board is the green credit card sized board that comes inside the kit. This is your Raspberry Pi computer.

The heat sinks are those two silver square shaped pieces that also come with your kit. Heat sinks enable the Raspberry Pi to remain cool. Heat sinks also help extend the life of the Raspberry Pi by reducing the risk of hardware failure.

Peel off the sticky backing on the underside of the heat sinks. Place them on to the two black squares on your development board. After you do that, your board, should look like this.

Step 3 – Secure the Development Board Inside the Case

Now we are going to secure the Development Board inside the Case. Place your development board inside the bottom part of the black plastic Raspberry Pi case. It snaps into place. Get the middle portion of the case and snap it into place. Finally get the top part of the case and snap it into the middle portion of the case.

Step 4 – Insert the MicroSD card

Next, we need to insert the MicroSD card. Your MicroSD card comes preloaded with software to make the process of installing the operating system for Raspberry Pi much simpler.  

Find your MicroSD card. It should be inside a small plastic bag.

Slide the MicroSD card inside the small notch on the end of the case. Make sure it is in there nice and snug so that it doesn’t fall out.

Step 5 – Attach the Keyboard, Mouse, and Monitor

Next, we need to attach our USB keyboard and mouse as well as our spare computer monitor or television to the black case.

First, plug the keyboard into the USB port on the black case.

Next, plug in the mouse into the USB port on the black case. In this case I have a wireless mouse, so I will plug in the USB dongle to the back of the case.

Now get the HDMI cord. Plug it in to the back of the monitor, and then plug it in to the HDMI port of the board.

The mouse, keyboard, and monitor are now plugged in to the Raspberry Pi.

Step 6 – Power It Up

Next, we need to connect the Raspberry Pi to a power supply.

Get the power adapter and attach it to the back of the case and then plug it into the wall. Take a look at your monitor. Your Raspberry Pi should be powering up.

You will see a prompt to select Raspbian the recommended operating system for Raspberry Pi. Select it and then click “Install.”

Click “Yes” to confirm.

Wait a few minutes for the software to install.

Click OK at the prompt.

Your Raspberry Pi will now reboot to the desktop.

Step 7 – Configure the Settings

Next, we will configure the Raspberry Pi’s settings.

Go to the upper left part of the screen and click the Raspberry Pi icon. Go down to “Preferences” and then click “Raspberry Pi Configuration.” The Raspberry Pi Configuration window will pop up.

Go to the Localization tab. Click “Set Locale”, and select your language and your country. Then click OK.

Now we are going to set the time zone. Click “Set Timezone.” Set your Area and location. For example, I set my Area to America and set my location to Los Angeles. Then click OK.

Now, we are going to set the Wi-Fi country. Click “Set Wifi Country.” I am in the United States, so I will select United States. Click OK.

Now, we are going to change the password. Go to the System tab and click “Change Password.” Enter any password you would like. Confirm your new password. Click OK. Then click OK again.

Click “Yes” to reboot the Raspberry Pi so that all those changes you’ve just made take effect.

OK, we are at the Raspberry Pi desktop again. We now need to make sure that our Raspberry Pi is connected to the Wifi. In the upper right part of the screen, click the Wifi icon and find your Wifi network. Connect to it by typing in the Wifi password and clicking OK.

Step 8 – Get the Internal IP Address of Your Raspberry Pi

I would prefer to access my Raspberry Pi from my own laptop computer instead of the monitor setup I have currently. This way I can access my Raspberry Pi from anywhere in the world. In order to do that, I need to get the internal address of my Raspberry Pi and make some small changes to the settings. So let’s do that now.

Start a terminal session by clicking on the black terminal icon at the top left of the screen. Type the command hostname -I and press enter. You can see in my case, the IP address of my Raspberry Pi is 192.168.0.17. Write this number down on a piece of paper because you will need it later.

Now, close the terminal window and click on the Raspberry Pi icon in the upper left of the desktop. Go to Preferences and then Raspberry Pi Configuration.

Go over to Interfaces. We are now going to enable some of the common interfaces you are likely to use with your Raspberry Pi project. This includes SSH, SPI, I2C, and 1-Wire. Don’t worry about what those terms mean. Just click the enable button next to each and click OK. Click Yes to reboot.

Let’s start a terminal session again by clicking on the black terminal icon at the top left  of the screen. Type sudo raspi-config and press Enter. Go down to option 5 “Interfacing Options” and click Enter. Select VNC. Select Yes to enable the VNC Server. Click OK. Select Finish. Now in the terminal window, type sudo reboot and press Enter to restart the Raspberry Pi.

Step 9a – Connect From Your Personal Computer

Now, we need to download the software on our own personal computer so that we can connect to the Raspberry Pi remotely instead of using the mouse, HDMI monitor, and keyboard setup we have now.

For this step, you need to log on to your Windows, Mac, or Linux computer, open a web browser, and go to the website shown on the screen (https://www.realvnc.com/en/connect/download/viewer/).

Select your operating system and click “Download VNC Viewer.” Follow the instructions for downloading the software.

We’ve finished downloading the software and now need to open it up. On Windows, we can go to the Start Menu and click on “VNC Viewer.”

In the main VNC Viewer window, you need to enter the IP address of your Raspberry Pi so that you can connect to it. This was the number you wrote down on that piece of paper. The username will be pi and the password will be the password you chose for your Raspberry Pi back in Step 7.

If you see your Raspberry Pi’s desktop, congratulations. You can now connect to your Raspberry Pi from your own computer.

If your screen is a little fuzzy and hard to see, you can change the screen resolution. To do that, open the terminal window and type the command sudo raspi-config . Select “Advanced Options”. Select “Resolution” and choose your desired screen resolution. Select Finish to save the changes, and you can now close all the windows. You now have all you need to begin your desired Raspberry Pi projects.

Step 9b – Connect From Your Personal Computer

Some people prefer to control Raspberry Pi through a command line interface instead of the user friendly graphical interface we have now. If you want to do this, you need to download a software called PuTTY.  

Go to putty.org and download the installer for your machine. I am using a 64-bit Windows computer so that is what I will select.

Follow the instructions to download Putty. Once you’ve finished, open up Putty. If you’re using Windows, you can usually find it in the Start Menu.

The first thing you will do is type in the IP address of your Raspberry Pi. If you get a popup window, click “Yes” and then you will go to a black terminal window. Type in the username and password of your Raspberry Pi. The username will be pi and the password will be the password you chose in Step 7. That’s it. You’re logged in to your Raspberry Pi via the command line interface.

Step 10 – Congratulations

At this stage, you can go back to your USB keyboard, mouse, and HDMI monitor and shutdown your Raspberry Pi by clicking the Raspberry Pi icon in the top left of the desktop and clicking “Shutdown”.

Unplug the USB keyboard, mouse, and HDMI monitor and store them away somewhere if you like. You don’t need them anymore since you can connect to your Raspberry Pi from your own personal computer.

Plugging in your Raspberry Pi into any wall socket will restart it so that you can access it from your own personal computer.

Ok. That completes this video. You are now ready to use your Raspberry Pi to build projects. Thank you for watching and enjoy your Raspberry Pi!

The Secret to Tech Startup Success: Speed and Simplicity

Winning technology companies become winners and remain winners by satisfying human desires with greater SPEED and/or SIMPLICITY than those who came before them. Those who keep that in mind will profit immensely. Those who lose sight of that will have problems.

If you are running a tech startup, remember that to win over the long haul, you must satisfy human desires with greater speed and/or simplicity than current market leaders. The easiest way to do that is to take a human desire…one that has been around for a long time…and make it more easily attainable by using technology to remove steps from what people are currently doing to satisfy that desire.

Entrepreneurs are professional step removers.

Bottom Line: Help people get what they want faster and/or more simply, and profit immensely.

Why I Love Robotics and Embedded Systems

“Joy for human beings lies in proper human work. And proper human work consists in acts of kindness to other human beings…” – Marcus Aurelius, Meditations, 8:26

I’ve spent the last 10 years on the business side of technology turning ideas into products that provide value to others. Last year, I began a Master’s degree in Computer Science in order to broaden my skill set. My focus is embedded software and robotics, and I love it.

I love it because I can help improve the lives of others by using modern technology to remove steps from common human activities. I love it because of the opportunities to help build the future, the products that will push the world forward and help us achieve what is currently not yet possible. I love it because of the opportunities to work with the technologies that will make the world a better place for this generation and future generations to come.

Robotics and embedded systems are the future, and I feel so fortunate to be alive right now. My goal is to help make the world a better place, one robot at a time.

5 Ways to Generate a Lot of Business Ideas

Below I present five strategies for how you can become a product and business idea generation machine. The fundamental idea is to make a giant list of problems or inefficiencies that you see out there in the world. Then brainstorm ways that you could use modern technology to create a product or service that can solve that problem in a way that is faster, cheaper and/or more efficient than the current solution.

By having a problem-first mentality when it comes to product development, the odds of success are much higher than starting with a solution-first mindset and then trying to force feed that solution to solve the customer’s problem. Always start with the PROBLEM.

Many products, startups, and businesses fail because they develop a fancy tool or solution first and then they go out to look for customers to sell to. This is backwards. Find the customers first. The customer could be yourself. Then find out their problems. Then get your creative juices flowing to develop a solution. 

In the words of the late Steve Jobs, “You‘ve got to start with the customer experience and work backwards to the technology” (Wikipedia, Steve Jobs).

I’ve received pitches from >1,000 startups over my career and will tell you that it is rare to find a startup that first identifies a real-world problem, then performs a rigorous analysis to fully understand how big the problem is and who the problem impacts, and then develops the technology and the solution to solve the problem.

Remember that human beings are creatures of HABIT. They do the same things everyday, read the same things everyday, eat the same things everyday, and go to most of the same places every day. In general, people resist changing their habits.  So when you are creating a product, make sure people could easily see how that product fits in with their current day-to-day life and habits. If you try to create a product that requires people to make a change in their habits, you will fail more often than not. When the going gets tough, humans will always follow the path of least resistance.

Winning products are winners because they offer people CONVENIENCE. People love speed and cognitive ease. As the old saying goes, “don’t make them think”, and “don’t make them wait.” You must observe the things people already do on a regular basis and what they already pay for (i.e. their current behavior). Make that thing they already do or already pay for faster, more efficient, cheaper, and/or easier to understand….and you’ve got a potential winner.

When you help people solve their problems in a way that is faster, more efficient, cheaper, and/or easier to understand, the odds of failure are much much lower.

Now let’s discuss the strategies. By using the strategies below and recording your ideas in an Excel spreadsheet or Google Doc for one year, you will be amazed at the different ideas that you come up with…ideas that could improve the lives of others.

Not all of the ideas will make great business ideas…i.e. people would be willing to pull out their credit card to have that problem solved (I’ll discuss how to decide if an idea is a good business idea or not in a future post), but they provide good starting points.

These strategies are listed in the order of effectiveness. Those listed first are the most effective source of product ideas in my experience.

1. Think About Something You Do Frequently and Find a Way to Remove as Many Steps as Possible from That Process

Think about one or two things that you do on a weekly or daily basis. Have you done that thing for a long time…like for many years? Even better.

Next, make a list of all the steps involved in that process. After you have done that, think about ways you could use modern technology to OMIT STEPS from that process. This, in my experience, is the best way to find potential business ideas.

Here are some examples:

Before my website VisaHunter.com existed, searching for a job overseas involved combing through 100+ different websites. Finding out the step-by-step process for getting a travel or work visa in a foreign country involved wading through dozens of online expat forms and deciphering poorly designed government websites. My website removed steps from the process of getting a visa or finding a job overseas (speed and cognitive ease).

Before sites like Glassdoor.com and Indeed.com existed, searching for a job involved multiple steps. I had to go to multiple job sites and company sites to search for jobs. These two sites created a business out of aggregating multiple job listings into one site, saving you a lot of time in the process (speed and cognitive ease).

Before Uber existed, if I wanted a taxi, I had to call ahead and hope that the taxi driver showed up. In other cases, I had to walk several blocks on a busy street in order to find a taxi. With Uber, I can order the taxi with a few swipes on my smartphone (speed and cognitive ease).

Before TurboTax existed, I had to call around to get a bunch of quotes from accountants and then send mountains of documents back and forth for months.  TurboTax removed innumerable steps from the human habit of filing taxes every year. It also helped you file taxes more cheaply than the alternative of hiring an accountant.

Before UpWork.com existed, I had to do a Google search and send 10-15 e-mails to find a freelancer to do some work on my website. It would then take 2-3 days in order to receive all the price quotes and proposals. Now, I can post a job, and within one hour receive 20-30 job proposals from freelancers around the world.

Before dishwashers existed, you had to wash each dish by hand and dry each dish by hand. Dishwashers removed steps from the dishwashing process, a habit that almost every one has and has had for a very long time.

2. Your Personal Frustrations and Pain Points

Every time you get frustrated with something or complain about something, write it down. Some of the best product ideas come about organically as a result of problems and frustrations that you experience in your day-to-day life. If you find yourself frustrated with something, write it down. If you don’t have a notepad, write it somewhere in your smartphone so that you don’t forget it. Later, once you have a list of problems, think of solutions. Once you have solutions to a big list of problems, you can then sit down again in front of your spreadsheet and identify which opportunities you would like to pursue.

As an example, I was sitting in a restaurant the other day trying to get the attention of my waiter. I must have waited 10 minutes to get his attention. Then, after I finished the meal, I had to wait another 10 minutes for the bill. In total, this adds up to 20 minutes wasted of my time. This whole restaurant ordering and paying process is inefficient and hasn’t changed much over the last several centuries.

I would love to have an app that can allow me to order food, ask for another drink, and pay my bill right at the table without me having to waste time searching for my waiter every time I need something.

3. Write down the Problems That Your Friends or Family Are Having

Have you heard your father, mother or best friend complain about something? Write it down. What do they wish they could have? What problems are they having in their social life or life at work?

4. Two and Three Star Amazon Product Reviews

Amazon product reviews can be a gold mine for finding good product ideas:

Step 1: Go to Amazon.com

Step 2: Find products that have a lot of reviews. This indicates that there are people willing to pay for that product. You want to make 100% sure there is a market for that product.

Step 3: Go to the 2 and 3 star reviews (1 star reviews often are full of nonconstructive criticism) and see what people are complaining about. Also take notes what people like about the product.

Step 4: Find a way to build a product that solves the pain points customers mentioned in the 2 and 3 star reviews.

5. Special Searches on Twitter and on Google
Both Twitter and Google can be a great for finding problems that people want solutions for. Go to either site, and enter in the search box the following phrases:

  • “I would pay for”
  • “I wish I had”
  • “I just paid someone to”
  • “Does anybody know how to”
  • “is the worst service”
  • “is the worst product”
  • “is a horrible company”
  • “has a terrible website”

After doing the searches, go to your Excel spreadsheet or Google Doc and record the problems that people are complaining about. Later, you can go back to this list and brainstorm solutions for these problems.

Maybe the problem could be solved by creating a software that charges users a subscription fee. Maybe the solution is something as simple as an e-book. No matter what the solution is, the fact that someone is expressing their dissatisfaction in a public forum such as Google or Twitter is a good signal that somebody out there will care if you develop a solution. At the end of the day, companies need to build things that people want.

Conclusion

After you have your list of ideas, take some time to select one. Don’t hurry. Starting a new product or business is a huge investment of time and money.

That’s it for now. Until next time!

How to Add an External C++ Library to Your Project

Libraries in C++ are collections of code that someone else wrote. They prevent you from having to reinvent the wheel when you need to implement some desired functionality. You can think of libraries as a plugin or add-on that gives you more functionality.

For example, I wanted to write a program that is able to multiply two matrices together. Instead of writing the code from scratch, I searched the web for a linear algebra library in C++ that contained functionality for multiplying matrices. I found the library named “Eigen.” I added the library to my project in the CodeLite IDE, and I was ready to go.

Without further ado, here is the step-by-step process for adding an external C++ library to your project using the CodeLite IDE. Note that this process will be different if you are using another IDE for C++, but the two basic steps are the same:

  1. Add the path for the header files
  2. Add the path for the actual code (i.e. the library)

How to Add an External C++ Library to Your Project

Step 1: Go to the website of the library.
For example, for the linear algebra library, Eigen, you go to this page: Eigen Main Page

Step 2: Download the zip file that contains all the code.

Step 3: Unzip the zip file to your computer.

Step 4: Open CodeLite (i.e. your IDE)

Step 5: Open a new Project

Step 6: Right click on project name and click on Settings

Step 7: Click the Compiler tab and add the Include Paths:
e.g. the folder that contains the folder named ‘Eigen’…C:\XYZ\eigen-eigen-21301928\
This is where the compiler can find the .h (i.e. header) files

Step 8: Click Linker and add the Libraries Search Path
e.g. C:\XYZ\eigen-eigen-21301928\
The path above needs to be the location where the linker can find the libraries (usually suffixed with .a, .dll, .lib, .so)

  • Static Libraries are – XYZ.lib for Windows, UNIX/Linux/Max – libXYZ.a
  • Dynamic Libraries are – XYZ.dll for Windows, Unix/Linux/Mac – libXYZ.so

Step 9: Go to main.cc (i.e. your source code file…could also be main.cpp) and add the preprocesser directives at the top of the source file:

e.g.
#include <Eigen/Dense>
#include <Eigen/Sparse>
#include

using namespace Eigen;

[Your code here]

Step 10: That’s it. You are ready to rock and roll!

How to Learn Git and Github for Windows Users

Most of the tutorials and books on Git and GitHub are overly complicated. The best book that I have found that covers all the fundamentals is A Practical Guide to Git and GitHub for Windows Users: From Beginner to Expert in Easy Step-By-Step Exercises by Roberto Vormittag. It explains everything step-by-step and covers the main use cases. It is easy to follow, and you can get through the entire book in just a day.