h1. UART There is an in-depth article covering several Samsung devices in the [[SamsungSerial]] page h2. Settings |_. Device and documentation |_. I/O voltage |_. ID<->GND |_. SOC TX |_. SOC RX |_. switch |_. stock bootloader settings |_. Comments | | GT-I9000 | 1.8V[8] ? | 150k |/11. D- |/11. D+ | | *UART settings*: ttySAC2 115200 8N1 To get a shell in the bootloader: * Power off the phone * Start sending some characters through the UART * Press the volume down button and the power button to power up the phone * Release the buttons when the phone has powered up * Once you get the shell, you can stop sending characters through the UART | At some point the boot procedure switches to the modem UART, it's probably some linux driver doing that | | GT-I902x | 3.3V[8] ? | 150k | | *UART settings*: ttySAC2 115200 8N1 | | | GT-I9100 | 1.8V[8] ? | 510k[9] | "MAX8997":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/arch/arm/configs/lineageos_i9100_defconfig#n1294 | *UART settings*: ttySAC2 115200 8N1 To get the UART enabled at boot with the stock bootloader: * Power the phone off and remove the battery * Put a battery in * Hold the select button * Plug the UART * Release the select button To get the UART enabled at boot with the Replicant 6.0 kernel and the stock bootloader, see the "DHylands_SGS2_Console":https://wiki.mozilla.org/DHylands_SGS2_Console page on the mozilla wiki. | At some point the boot procedure switches to the modem UART, it's probably some linux driver doing that | | GT-N7000 | 1.8V[8] ? | 510k[9]| | *UART settings*: 115200 8N1 | | | GT-I9100G_CHN_CHN | 1.8V[8] ? | 619k[9] | ? | *UART settings*: 115200 8N1 | Very few prints from Xloader, the next bootloader used by Android 2.6.3 doesn't seem to print much | | GT-I9300 |/2. 1.8V[1] |/5. 619 kOhms[3] |/4. MAX77693[5] |/4. *UART settings*: 115200 To increase verbosity during boot: * Power off the phone and remove the battery * Put a battery in * Hold the volume-down button * Plug the UART and wait for the first lines to be printed * Release the volume-down button |/2. It gives a shell once Replicant 6 has booted | | GT-I9305 | | GT-N7100 | ? | | | GT-N7105 | ? | | | GT-N5100 | ? | ? | UART settings: 115200 To increase verbosity during boot: * Power off the tablet * Hold down the volume-down button * Plug the UART and wait for the first lines to be printed * Release the volume-down button | | | [[GalaxyNexusI9250SerialConsole|Galaxy Nexus (GT-I9250)]] | | 619 kOhms[4] | FSA9480[7] | UART settings: * By default: ttyFIQ0, 115200 8N1 * After patching Linux: ttyO2, 115200 8N1 See [[GalaxyNexusI9250SerialConsole]] for more details. | | | [[NexusSI902xSerial|Nexus S]] | | 150 kOhm | | | FSA9480 | | | | [[OptimusBlackSerial|Optimus Black (P970)]] | 1.8V[6] | N/A[2] | | | DP3T | | | | ODROID-U3, console UART | 1.8V |\4. "connector":https://wiki.odroid.com/accessory/development/usb_uart_kit#odroid_port_description_of_uart_connector | *UART settings*: ttySAC1, 115200 8N1 | | | ODROID-U3, IO pins UART | 1.8V |\4. "connector":https://wiki.odroid.com/old_product/odroid-x_u_q/odroid_u3/u3_ioport_uart | *UART settings*: ttySAC0, 115200 8N1 | | | Pinephone 1.x | 3.3v |\4. "connector":https://wiki.pine64.org/index.php/PinePhone#Serial_console | *UART settings*: ttyS0, 115200 8N1 | | | [[GalaxyTabSerial|Galaxy Tab 2]] | 1.8V[8] ? | UART pins exported on the connector | ? | ? | None? (UART pins exported on the connector) | *UART settings*: 115200 8N1 | | fn1. Measured between USB GND and USB VCC fn2. Code is required to use the switch as you need to configure both the MUIC and DP3T switch fn3. See "The related driver source code":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/drivers/misc/max77693-muic.c#n102 fn4. See the "postmarketOS wiki page on Serial debugging":https://wiki.postmarketos.org/wiki/Serial_debugging fn5. See the "driver":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/drivers/misc/max77693-muic.c and the "ifixit teardown":https://www.ifixit.com/Teardown/Samsung+Galaxy+S+III+Teardown/9391 fn6. Reference: [[OptimusBlackSerial]] fn7. See "board-tuna-connector.c":https://git.replicant.us/replicant/kernel_samsung_tuna/tree/arch/arm/mach-omap2/board-tuna-connector.c "fsa9480.c":https://git.replicant.us/replicant/kernel_samsung_tuna/tree/drivers/misc/fsa9480.c in "kernel_samsung_tuna":https://git.replicant.us/replicant/kernel_samsung_tuna fn8. Works, as it was tested on the device. TODO: measure the voltage, as lower UART voltages often works with higher voltage levels. fn9. Works, as it was tested on the device. TODO: look the official reference in the driver for it. h2. Datasheets * "FSA9480.pdf":https://media.digikey.com/pdf/Data%20Sheets/Fairchild%20PDFs/FSA9480.pdf h2. Interesting links * There is a "page on Serial debugging":https://wiki.postmarketos.org/wiki/Serial_debugging on the postmarketOS wiki that contains information for using the serial port for many smartphones models. * "mv-uart":https://osmocom.org/projects/mv-uart/wiki A serial port adapter with configurable voltages (and GPIOs) * "DHylands_SGS2_SerialAdapter":https://wiki.mozilla.org/DHylands_SGS2_SerialAdapter : A very compact setup but with fixed resistor value. * The "Galaxy Tab Serial Cable thread":https://forum.xda-developers.com/showthread.php?t=1010314 on XDA. It also contains some pinout for the 30 pin connector. The information there seem valid for many tablets like the Galaxy Tab and the Galaxy Tab 2. h2. See also * [[BootloaderInterfaces]]: Documentation about the stock bootloaders interfaces