AIY Vision Kit (V1.1) โ Setup Troubleshooting Log
Getting the Pi Zero WH online โ a different set of quirks from the Voice Kit
aiy-vision.local). Every blocker along the way turned out to be software or process-state related โ nothing here needed a hardware fix.
The short version
- A dark board with no lights on wasn't a dead Pi โ the Zero simply has no dedicated power LED at all.
- No WiFi and no ethernet port available at first โ solved with USB gadget mode (
dwc2+g_ether) for a direct USB network link. - SSH "Permission denied" turned out to be a stale mDNS/ARP entry, caused by two Pis sharing the same default hostname โ fixed by renaming this one to
aiy-vision. - WiFi setup silently failed because of invisible curly quotes in the SSID/password โ retyped with plain straight quotes.
- A
wpa_supplicantprocess stuck since first boot needed a full reboot, not a patch. - End result: stable WiFi at
aiy-vision.local, independent of the USB tether.
A record of getting the Vision Kit's Raspberry Pi Zero WH online, following on from the Voice Kit setup. Unlike the Voice Kit (which needed its own Pi 3/4), this kit shipped with its own Pi Zero WH โ smaller, cheaper, but with its own quirks (no ethernet port, no power LED, different HDMI size).
1. Hardware assembly
- Found a swapped/reversed flex cable between the Pi Zero and the Vision Bonnet during assembly โ fixed by reseating it the correct way round.
- Discovered the Pi Zero uses mini-HDMI, a different size from the Pi 4's micro-HDMI used in the Voice Kit build โ don't assume the same adapter works across both.
2. "Is it even alive?" โ the power LED red herring
Spent time worried the board was dead because nothing lit up. Turned out to be a non-issue:
Lesson: don't diagnose Pi Zero power issues by the LED alone; check network reachability instead.
3. No WiFi, no ethernet port โ using USB gadget mode
The Pi Zero has no ethernet port, so the "plug in a cable" fallback from the Voice Kit didn't apply here. Instead, used USB gadget mode to get a direct network connection over the data USB port:
- On the SD card's boot partition, added to the bottom of
config.txt:dtoverlay=dwc2 - In
cmdline.txt, added right afterrootwait(same line):modules-load=dwc2,g_ether - Created an empty file named
ssh(no extension) in the boot partition. - Connected the Pi's USB data port (not
PWR IN) to the laptop via micro-USB cable. - After ~30โ60 seconds, laptop showed a new "USB Ethernet/RNDIS Gadget" network interface.
This is a genuinely useful technique for any future headless Pi Zero work โ no WiFi or ethernet required at all for initial access.
4. SSH login confusion โ two Pis, same hostname
Hit repeated "Permission denied" errors trying to log in, despite the default credentials being correct. Root cause: both the Voice Kit Pi and the Vision Kit Pi used the same default hostname (raspberrypi.local), and a stale ARP/mDNS cache entry from the Voice Kit was interfering โ SSH's "REMOTE HOST IDENTIFICATION HAS CHANGED" warning was the giveaway.
Fix: cleared the stale entry, confirmed via arp -a, then reconnected cleanly.
Preventative fix: gave the Vision Kit Pi a distinct hostname to avoid this permanently:
sudo raspi-config
# System Options โ Hostname โ aiy-vision โ reboot
5. WiFi config file โ invisible curly quotes
Once inside via USB, tried setting up real WiFi. raspi-config's WiFi option failed with:
Could not communicate with wpa_supplicant
Checking the config file directly revealed the actual problem:
ssid="Zornlink" โ curly opening quote, straight closing quote
Smart/curly quotes had been introduced somewhere in the editing process (likely from an app that auto-formats quotation marks) and wpa_supplicant can't parse them as valid string delimiters. Retyped both the SSID and password using plain straight quotes directly in nano, avoiding paste from any source that might reformat them.
6. Stale wpa_supplicant process
After fixing the quotes, wpa_cli -i wlan0 reconfigure still failed:
Failed to connect to non-global ctrl_ifname: wlan0 error: No such file or directory
systemctl status wpa_supplicant showed the service had been running continuously since the very first boot (timestamped 2021!), not properly bound to wlan0. Rather than patch a stale process, did a full reboot โ which also applied the pending hostname change in one step.
7. Result
After reboot:
ssh pi@aiy-vision.local
connected cleanly with the new hostname and new password, and:
ip a show wlan0
showed a real WiFi IP (192.168.2.85) โ fully working, independent of the USB tether.
Key takeaways
- Pi Zero's lack of a power LED is a frequent false alarm โ don't assume "dead board" from no lights alone.
- USB gadget mode (dwc2 + g_ether) is a solid no-WiFi, no-ethernet fallback for any headless Pi Zero setup.
- Running multiple Pis with the same default hostname causes real, confusing SSH conflicts โ rename each one early, before it becomes a debugging session of its own.
- Curly/smart quotes silently break config files that expect plain ASCII quotes โ a classic invisible bug, worth checking whenever a config file "looks right" but a service refuses to parse it.
- When a network service looks "active" but behaves oddly, check when it started โ a service running since first boot, never properly reloaded, is a common source of stale-state bugs that a clean reboot solves faster than patching.
Reference documents
- This document โ initial WiFi/networking setup
- Camera replacement & final fix (dead camera, GPU memory, background service conflict)
- Live demo session (face/joy/object detection working)
- Final build report โ full status and honest retrospective