Many Google Nexus smartphones and tablets have a serial console which can be accessed through the headset socket. This is an invaluable tool for software development. Unfortunately there are no suitable off-the-shelf adapters on the market; therefore some tinkering is required.

1. Motivations In the process of porting Linux kernels to poorly documented embedded devices, one of the first milestones is seeing log messages on a serial console. Sometimes the serial port is exposed as such. Sometimes it is hidden in a USB OTG port and enabled by a magic resistor value on the ID pin. Sometimes the serial port is merely a bunch of unlabeled pads on the circuit board. It was revealed in 2013 that many Google Nexus Android devices have a serial port multiplexed with audio signals in their 3.5 mm headphone socket. This is an interesting design decision because: Many mobile devices have an audio socket, even very small ones.

The USB port remains available for other debugging tasks, allowing a productive workflow (load kernel with fastboot , watch console, repeat)

USB ports may become extinct if inductive charging becomes popular.

There are hints that other Android devices have similar serial consoles. I will maintain a list below: some Lenovo Yoga tablets according to osc_4_blade2_L_result/linux/kernel/drivers/misc/uart_audiojack_sw.c in yoga_tab_2_osc_android_to_lollipop_201505.rar ASUS ME103K (MemoPad)

Note that alternate functionality on 3.5 mm audio sockets is not a new idea. Mobile phones used to output analog video that way before the advent of MHL and SlimPort.

3. Reference design (2015) The official Google requirements for audio sockets on all Android devices ([WAHS]) confirm that the pinout order is (usually) CTIA/AHJ: (tip) LEFT - RIGHT - GROUND - MIC (sleeve). Notably, the MIC bias voltage can be anywhere between 1.8 V and 2.9 V. Therefore it is reasonable to expect that any threshold intended to trigger the serial functionality should be higher than 2.9 V, although Google may have enforced a MIC bias voltage in the bottom of that range on their Nexus devices. In May 2015 Google published the schematic for (presumably) the adapter they use internally ([DEBUGCABLE], announced here), albeit with some disclaimers ("No Warranty expressed or implied"). Actually, they released the whole manufacturing information, which you could send to a fab shop instead of reading further. The adapter contains a 1.8 V voltage regulator which powers the VCCIO input of a FT232R USB-UART chip.

The adapter contains another voltage regulator apparently intended to supply 3.36 V. Based on component values, tolerances and datasheets ([TPS717]) the actual output range is 3.30 - 3.49 V. This voltage is injected into the MIC input through a 33 Ohm PTC thermistor (Ihold=36mA and Itrip=71mA according to datasheets; Ihold=29mA and Itrip=61mA according to the BOM). Why did they not use the 3.3 V regulator that is built into the FT232R ? Maybe it cannot supply enough current to overcome the MIC bias on some devices, or maybe they decided that it is not accurate enough (the guaranteed output range is 3.0 - 3.6 V according to [FT232R]).