If you’ve ever worked with a headless Raspberry Pi, you’ve probably faced this problem:
- The Raspberry Pi was previously connected to a Wi-Fi network
- You do not know which network it is connected to
- You cannot connect a monitor, keyboard, or mouse
- SSH is your only option
- The Pi is no longer appearing on your current network
This usually happens when:
- You move to a new location
- Your Wi-Fi name/password changes
- Someone else configured the Pi
- You forgot the old network credentials
In this guide, I’ll show you how to:
- Diagnose the problem
- Reconfigure Wi-Fi without a monitor
- Force the Pi onto a new network
- Recover SSH access
The methods below work for:
- Raspberry Pi 3
- Raspberry Pi 4
- Raspberry Pi 5
- Raspberry Pi Zero W/2W
Understanding the Problem
A Raspberry Pi configured for headless access boots and automatically tries to connect to the Wi-Fi credentials saved inside:
wpa_supplicant.conf
If:
- the saved Wi-Fi no longer exists
- the password changed
- or the Pi is too far from the router
then the Pi never joins the network.
Since SSH depends on network access, you lose remote control completely.
Method 1 — Edit Wi-Fi Credentials Directly from the SD Card (Best Method)
This is the fastest recovery method.
Step 1 — Remove the SD Card
Power off the Raspberry Pi safely.
Remove the microSD card and insert it into your computer using:
- SD card reader
- USB adapter
- laptop SD slot
Step 2 — Open the Boot Partition
After inserting the SD card, you’ll see a small partition called:
bootbootfs
Open it.
This partition is readable on:
- Windows
- Linux
- macOS
Step 3 — Create or Edit wpa_supplicant.conf
Inside the boot partition, create a file named:
wpa_supplicant.conf
If it already exists, edit it.
Paste this:
country=NG
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YOUR_WIFI_NAME"
psk="YOUR_WIFI_PASSWORD"
}
Example:
country=NG
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="MTN_Home"
psk="mysecurepassword"
}
Why country=NG Matters
A lot of people ignore this.
The country code controls:
- Wi-Fi regulatory channels
- allowed radio frequencies
- transmission compliance
If your country code is wrong:
- Wi-Fi may fail silently
- some channels become inaccessible
For Nigeria, use:
country=NG
Not:
US
unless you are actually in the US.
Do You Need to Remove Old Wi-Fi Networks?
Usually, no.
The Raspberry Pi can store multiple Wi-Fi networks and automatically connect to whichever known network is available.
For example:
network={
ssid="Old_Wifi"
psk="oldpassword"
}
network={
ssid="New_Wifi"
psk="newpassword"
}
If Old_Wifi is unavailable, the Pi will try New_Wifi.
When Should You Remove Old Networks?
You may want to remove old saved networks if:
The Pi keeps reconnecting to the wrong network
Multiple nearby networks are available
The old Wi-Fi has poor internet access
You want cleaner configuration management
You are deploying the Pi to a new environment permanently
In that case, simply delete the old network={} block from:
wpa_supplicant.conf
and leave only the new network.
Best Practice
For classroom projects, IoT deployments, and Raspberry Pi labs, it is usually better to:
remove outdated Wi-Fi networks
keep only the active network
avoid connection conflicts
This makes troubleshooting much easier later.
Step 4 — Enable SSH
Still inside the boot partition:
Create an empty file named:
ssh
No extension.
Not:
ssh.txtssh.conf
Just:
ssh
This enables the SSH server during boot.
Step 5 — Reinsert SD Card and Boot
Insert the SD card back into the Raspberry Pi.
Power it on.
Wait about:
- 1–3 minutes
for the Pi to boot and connect.
Step 6 — Find the Raspberry Pi on the Network
Now you need the Pi’s IP address.
Option A — Use Fing (Recommended)
Install:
- Fing (Android/iPhone)
- Fing Desktop
Scan your network.
Look for:
- raspberrypi
- Raspberry Pi Foundation
- hostname you configured
Option B — Use Router Admin Page
Login to your router.
Check:
- Connected Devices
- DHCP Clients
- LAN Devices
You may see:
raspberrypi.local
or an IP like:
192.168.1.12
Option C — Use ping
Try:
ping raspberrypi.local
or:
ping yourhostname.local
Step 7 — SSH Into the Pi
Once you have the IP:
ssh pi@192.168.1.12
Or:
ssh username@hostname.local
Example:
ssh stanley@raspberrypi.local
What If You Don’t Know the Username?
Modern Raspberry Pi OS no longer uses:
piraspberry
by default.
The username is whatever was set during OS imaging.
If you forgot it:
- reflash the OS
- or inspect old documentation
Method 2 — Reflash Using Raspberry Pi Imager (Cleanest Option)
If recovery fails completely, just rewrite the OS.
Install Raspberry Pi Imager
Download from:
Configure Headless Setup Properly
Inside Raspberry Pi Imager:
Click:
NEXT → EDIT SETTINGS
Configure:
General
- Hostname
- Username
- Password
- Wi-Fi SSID
- Wi-Fi Password
- Country
Services
Enable:
- SSH
Choose:
- Password authentication
Then write the OS.
This is the most reliable method.
Troubleshooting Tips
1. Pi Not Appearing on Network
Possible causes:
- Wrong Wi-Fi password
- Wrong country code
- Weak Wi-Fi signal
- 5GHz unsupported network
- Hidden SSID
Try:
- mobile hotspot
- 2.4GHz Wi-Fi
- moving Pi closer
2. SSH “Hostname Could Not Be Resolved”
This means:
- the Pi is not on the network
- or mDNS isn’t working
Use direct IP instead.
3. SSH Connection Refused
Usually:
- SSH disabled
- Pi still booting
- firewall issue
Recreate the empty ssh file.
4. Raspberry Pi Only Supports 2.4GHz
Some older Pis cannot use:
- 5GHz
- Wi-Fi 6 only networks
Enable:
- mixed mode
- 2.4GHz compatibility
Bonus Tip — Use Your Phone Hotspot
If you don’t know the old network:
Create a hotspot using:
- same Wi-Fi name
- same password
as the old network.
The Pi may reconnect automatically.
This is one of the fastest recovery tricks.
Recommended Headless Workflow
Here’s the workflow I now use for every Raspberry Pi deployment:
During OS Imaging
Always configure:
- hostname
- SSH
- Wi-Fi
- username/password
inside Raspberry Pi Imager.
Keep Backup Notes
Save:
- hostname
- username
- password
- Wi-Fi used
inside:
- Notion
- Google Docs
- password manager
Use Static Hostnames
Instead of:
raspberrypi
Use:
cv-group1
iot-node2
weather-station
This makes network discovery easier.
Final Thoughts
Headless Raspberry Pi setups are incredibly powerful, but Wi-Fi issues can lock you out completely if you don’t plan ahead.
The good news is:
you usually do NOT need a monitor.
As long as you can access the SD card, you can:
- change Wi-Fi
- enable SSH
- recover the device
- regain remote access
Once you master this workflow, managing remote Raspberry Pis becomes much easier — especially in classrooms, IoT deployments, robotics projects, and AI edge systems.
Happy building 🚀
Top comments (0)