Complete Beginner Guide: Installing Ubuntu & ROS Noetic on Raspberry Pi 3B or any raspberry (VM as Master, Pi as Slave)
Author: REDDIX ROBOTICS
This guide is based on a real-world debugging journey with actual errors, fixes, and final success. If you follow this exactly, you will run ROS successfully.
Hardware & Software Requirements
Hardware
- Raspberry Pi 3B
- 16GB or 32GB SD Card (Class 10)
- Power Adapter
- HDMI + Monitor + Keyboard
- PC/Laptop with Ubuntu 20.04 VM
- Wi-Fi Network
Software
- Raspberry Pi Imager
- Ubuntu 20.04 LTS (64-bit)
- ROS Noetic
STEP 1 — Download Ubuntu 20.04 for Raspberry Pi
Download from:
https://ubuntu.com/download/raspberry-pi
Select: Ubuntu 20.04 LTS (64-bit for Pi)
STEP 2 — Flash SD Card Using Raspberry Pi Imager
- Insert SD card into PC
- Open Raspberry Pi Imager
- Select OS → Ubuntu 20.04 (64-bit)
- Select Storage → Your SD Card
- Click WRITE
STEP 3 — Enable SSH & Configure Wi-Fi Before First Boot
Enable SSH
Open system-boot folder → create empty file named: ssh
Configure Wi-Fi (network-config file)
version: 2
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"YOUR_WIFI_NAME":
password: "YOUR_WIFI_PASSWORD"
STEP 4 — First Boot
Insert SD → connect HDMI + keyboard → power on.
Default login:
username: ubuntu password: ubuntu
You will be forced to change password.
STEP 5 — Check IP Address
ip a
Look for: inet 192.168.xx.xxx
STEP 6 — Fix Black Screen + LED Issue
- Solid red LED = power OK
- Blinking green LED = SD activity
✅ Wait 3–5 minutes. Do NOT remove power.
STEP 7 — Enable & Verify SSH Service (CRITICAL)
sudo systemctl status ssh
If missing:
sudo apt install openssh-server -y
Start SSH:
sudo systemctl start ssh
Enable SSH on Every Boot:
sudo systemctl enable ssh
Verify:
sudo systemctl status ssh
STEP 8 — SSH Into Pi from VM
ssh ubuntu@192.168.31.2XX
❌ SSH Key Error Fix
ssh-keygen -f ~/.ssh/known_hosts -R "192.168.31.2XX"
STEP 9 — Update System
sudo apt update sudo apt upgrade -y
❌ dpkg Error Fix
sudo dpkg --configure -a sudo apt --fix-broken install
STEP 10 — Set Hostname
sudo hostnamectl set-hostname reddixbot sudo reboot
STEP 11 — Install ROS Noetic on Pi
sudo apt install curl gnupg lsb-release -y
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
sudo apt install ros-noetic-ros-base -y
STEP 12 — ROS Master–Slave Networking
VM IP: 192.168.31.XX
Pi IP: 192.168.31.2XX
nano ~/.bashrc source /opt/ros/noetic/setup.bash export ROS_MASTER_URI=http://<VM_IP>:11311 export ROS_IP=192.168.31.2XX
STEP 13 — Start ROS Master on VM
roscore
STEP 14 — Final Test
rostopic list
Output must show:
/rosout /rosout_agg
Final Result
- ROS Master running on VM
- ROS Slave connected on Pi
- SSH stable
- Ready for motor control & navigation
Coming Next on My Blog
- 4WD Motor Driver Node
- L298N Control
- Keyboard Teleop
- Xbox Controller
- Autonomous Navigation
Comments
Post a Comment