Jump to content

Xiaomi POCO X3 NFC (xiaomi-surya)

From postmarketOS Wiki
Note This device is supported as part of a generic port. Refer to Generic SM7150 (qcom-sm7150) for installation instructions and more information.
Xiaomi POCO X3 NFC
Xiaomi POCO X3 NFC
Xiaomi POCO X3 NFC
Manufacturer Xiaomi
Name POCO X3 NFC
Codename xiaomi-surya
Model
  • POCO X3 NFC: M2007J20CG
  • POCO X3 (India): M2007J20CI
Released 2020
Type handset
Hardware
Chipset Qualcomm Snapdragon 732G (SM7150-AC)
CPU Octa-core (2x 2.3 GHz Kryo 470 Gold
6x 1.8 GHz Kryo 470 Silver)
GPU Adreno 618
Display 1080 x 2400 (120Hz 6.67" IPS LCD)
Storage 64/128 GB
Memory 6 GB
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
Android (MIUI) 10 (MIUI 12)
Extended version
The most recent supported version from the manufacturer.
Android (MIUI) 12 (MIUI 14)
FOSS bootloader partial
postmarketOS
Category community
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
pmOS kernel
The kernel version that runs on the device's port.
Mainline 6.17.0-rc7
Generic port Generic SM7150 (qcom-sm7150)
Device package device-qcom-sm7150
Kernel package linux-postmarketos-qcom-sm7150
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Works
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
Internal storage
eMMC, SD cards, UFS...
Works
SD card
Also includes other external storage cards.
Works
Battery
Whether charging and battery level reporting work.
Partial
Screen
Whether the display works; ideally with sleep mode and brightness control.
Works
Touchscreen
Works
Multimedia
3D Acceleration
Works
Audio
Audio playback, microphone, headset and buttons.
Partial
Camera
Broken
Camera Flash
Works
IR TX
Broken
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Broken
NFC
Near Field Communication
Works
Modem
Calls
Works
SMS
Works
Mobile data
Works
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Works
USB OTG
USB On-The-Go or USB-C Role switching.
Works
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Works
Magnetometer
Sensor to measure the Earth's magnetism
Works
Ambient Light
Measures the light level; used for automatic screen dimming in many interfaces.
Works
Proximity
Works
Haptics
Works
U-Boot
Secondary Bootloader
Whether it is possible to chainload U-Boot from stock bootloader.
Works
Mainline
Whether latest upstream versions of U-Boot are not broken and it is possible to use them.
Works
Internal Storage
Whether it is possible to boot from internal storage (e.g. eMMC or UFS).
Works
SD card
Whether it is possible to boot from SD card.
Works
USB Host
Whether it is possible to boot from a USB storage or connect a keyboard.
Partial
USB Peripheral
Whether it is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.
Works
Display
Works
Buttons
Whether it is possible to navigate in boot menu or grub with volume and power buttons.
Works


Maintainer(s)

Users owning this device

  • Adrian (Notes: Mainline shenanigans, huaxing)
  • Cxt (Notes: Main phone)
  • Danfigasystems (Notes: 6/128 model)
  • Divanchuk (Notes: Main; running Android 11 (DotOS 5.2.1)
  • DomHeadroom (Notes: 6/64GB. Lineageos 22, Daily driver)
  • Filip2cz (Notes: running postmarketOS, using as small home server)
  • JIaxyga (Notes: 6/128 Currently unavailable)
  • MuseCat (Notes: Main)
  • PotatoProton (Notes: LineageOS, daily driving, pmOS is slow)
  • Rainbyte (Notes: Daily driver ; OS: Android 12 (ArrowOS))
  • Soupborsh (Notes: Lindroid with LineageOS)
  • TwoShot (Notes: Main phone, android with lindroid)
  • Ungeskriptet (Notes: Main device for pmOS)
  • Wizzdom (Notes: Daily driver, running LineageOS 18.1)
  • Zerkalo (Notes: not tested yet)


How to enter flash mode

  • Bootloader: Power on the device with both Power and Volume Down buttons.
  • Recovery: Power on the device with both Power and Volume Up buttons.
  • Fastbootd: Reboot into bootloader mode first and then run fastboot reboot fastboot from a computer.

Installation

See Generic SM7150 (qcom-sm7150). The boot partition image should be flashed to the cache partition.

Know your display panel

To determine whether your display is Huaxing or Tianma, enable USB debugging in Android and run the following command on your computer:

$ adb wait-for-device && adb reboot && adb logcat | grep "panel name is"

Mainline

The work in progress mainline kernel is being developed here.

Mainline status

Feature table for SM7150
Device feature table:

Component Model Status Notes
Display Huaxing FHD DSC panel with NT36672C controller Y Works from here
Touchscreen NovaTek NT36672C Y Connected via SPI, needs firmware
Charging qcom,qpnp-smb5 (downstream) N
Texas Instruments BQ25968 N
Fuel gauge qcom,pm6150-qg P
Accelerometer and gyroscope Bosh bmi220 Y Managed by SSC
Ambient light and proximity sensor Sensortek stk3a5x Y
Magnetometer AKM ak09918c Y
Haptics/Vibrator Awinic aw8624 Y
Speakers Texas Instruments tas2562 (Bottom Speaker) Y
Texas Instruments tas2564 (Top Speaker) N
Camera regulator OmniVision wl2866d N Called longcheer,wl2866d downstream
Camera Sony IMX682 N Main camera
Samsung S5K3T2 N Front camera
Hynix Hi-1337 N Ultrawide camera
Hynix Hi-259 N Macro camers
OmniVision ov02b1b N Depth camera
NFC NQX NCI NXP55303 (PN553 type) Y

Serial debugging (UART)

Xiaomi POCO X3 NFC uses 1.8 voltage for UART. So make sure that the logic one of your TTL adapter starts at a voltage below 1.8v.
The RX pin should be pulled-up to 1.8v to obtain the log. In Linux and U-Boot we pulled-up this pin software, but if you want to receive the log the rest of the time too, then you need to pull-up this pin hardware. It is enough to solder the TX pin of the adapter to the RX pin on the device, but make sure that your TTL adapter has a voltage of 1.8v (If this is not the case, then use a voltage divider schematic or buy an adapter with a voltage of 1.8v).

See also: Serial debugging

Gallery

See also