When the Pi Zero came out, one of the downsides (!) of the low-cost design was swapping the 'standard' USB A-port for a micro-B port. Now you have to use an 'OTG' cable instead of just plugging in a device.
There was also the matter of, if you didn't have anything connected to USB, and powered up the Pi Zero with an old Raspbian image, you'd get a strange warning
WARN::dwc_otg_handle_mode_mismatch_intr:68: Mode Mismatch Interrupt: currently in Device mode
Basically, the Pi sorta-trying to become a usb device rather than a usb host
Some awesome people on github sorted out that if you used the DWC2 USB driver, and patched a few files, you could get the Pi to act like a USB device (in linux-land this is called the USB Gadget system)
Thx for the tips from Andrew, as of May 2016, Raspbian Jessie does not require a new kernel
This tutorial is basically just a writeup of how you can follow along and turn your Pi zero into a USB Serial device or Ethernet device. That's two whole ways of being able to connect to your Pi zero just by plugging in a micro B cable! You don't even need to power your Pi seperately, as power is provided from your computer.
This tutorial isn't terribly difficult but you should have some raspberry Pi experience. In particular you will want to do the following before anything else
For Gadget serial you'll also want
- Solder in a 2x20 male header or somehow be able to connect a console cable to your Pi Zero
- Have a USB console cable and be able to log into your Pi over serial from a desktop computer
While you don't need a console cable, it's a lot easier to copy & paste the commands into a terminal than to type into a keyboard + monitor.
Basically, get your Pi zero to a point you can log in. Power it from the Power USB port, leave the Data USB port 'empty'
OK now you can continue!