Programming over a virtual Ethernet modem on USB OTG
This is my favorite way to connect to the Raspberry Pi Zero. Not only can you operate it with a single USB cable, but you can get it attached to the network and be able to communicate with other machines and the Internet.
Getting ready
The same as the last recipe, if you have the USB OTG functions installed and a regular-to-micro USB cable, you are ready to go.
How to do it...
Just like the last recipe, be careful with the edits to cmdline.txt. You can make this change from the serial connection you made before, reboot, and go!
The unedited version of the file should look something like this:
After you make the change, you can use sudo reboot. You'll see the COM device disappear from the device manager and should see a new device come up in the Network Adapters tree:
Now, you can connect your Raspberry Pi through your USB cable using SSH:
If the Bonjour service is running on Windows (or avanti-daemon on Linux), you should be able to SSH to raspberrypi.local.
Note
The default hostname for the Raspberry Pi is raspberrypi. If you changed the name of your Zero in raspi-config or using the hostname command, the connection will be hostname.local. For instance, if I change my Raspberry Pi Zero's name to rpz14101, then I will SSH to rpz14101.local.
Another great thing about using SSH to connect the Raspberry Pi Zero is if you configure your host machine's network adapter to allow Internet sharing, your Zero can communicate with the Internet! On Windows, go to Network connections in Control Panel, select the adapter that's connected to your home network, and enable Internet Connection Sharing. Here's where you can find the option in Windows:
On OS X go to System Preferences -> Sharing -> Internet Sharing and Choose the "RNDIS/Ethernet Gadget." Check the box to start sharing. On Linux machines, it varies by distro and version, check the docs or community forums for Internet Connection Sharing.
With this setting, your Pi Zero can use your host computer's adapter to talk to other devices on the home network or over the Internet.