Difference between revisions of "PinePhone Pro"

From PINE64
Jump to navigation Jump to search
(→‎Flashing to microSD card: updated to include july 2022 batch/Tow-Boot)
m (→‎Bootloaders: fixed accidental double carriage return)
Line 143: Line 143:
==== U-Boot ====
==== U-Boot ====
The pre-installed operating system on the PinePhone Pro Explorer Edition, if sold prior to the end of July of 2022, is using [[Uboot|U-Boot]] as default bootloader. Batches sold after July of 2022 are using ''Tow-Boot''
The pre-installed operating system on the PinePhone Pro Explorer Edition, if sold prior to the end of July of 2022, is using [[Uboot|U-Boot]] as default bootloader. Batches sold after July of 2022 are using ''Tow-Boot''





Revision as of 18:52, 15 October 2022

Rendering of the PinePhone Pro

The PinePhone Pro is PINE64's flagship smartphone announced on October 15, 2021. It features 4GB of RAM, an 128GB eMMC and is using an Rockchip RK3399S SoC, which is a specialized version of the RK3399 made specifically for the PinePhone Pro.

Introduction

The PinePhone Pro is PINE64’s second smartphone and a successor to the original PinePhone. It does not, however, replace the original PinePhone. It should also not be considered a second generation PinePhone; it is a higher-end device, with much better specs, aimed at those who wish to daily-drive a open system stack. Achieving this goal will, however, take time as the software and overall smartphone software ecosystem needs to mature.

More information about the PinePhone Pro can be found on the device main page.

State of the software

(view separately)

Presently the PinePhone Pro Explorer Edition is aimed at Linux developers with an extensive knowledge of embedded systems and/or experience with mobile Linux. It will take time for all the PinePhone Pro’s functionality to reach software parity with the original PinePhone and for mobile operating systems, in more general, to reach a higher degree of maturity.

Bear in mind that the software for these smartphones is still in a very early stage, with most of the software being in alpha or beta state. That's especially also the case for scalability of applications, their availability and practicability, any hardware function implementations and the firmware. The software is provided as is. There is no warranty for the software, not even for merchantability or fitness for a particular purpose.

The following table lists the feature functionality status of the unaltered pre-installed factory image of the current shipping batch and as comparison an up-to-date reference image (no responsibility is accepted for the accuracy of this information, the list is provided and updated by the community). If you have any questions regarding the current state of the software or of specific features working, please don't hesitate to ask in the community chat before buying the device:

The software is written by the community, any contributions towards the community projects are greatly appreciated! Please see "How to Contribute" to learn about how to contribute to the software projects and "Where to Report Bugs" to learn about where to report bugs.
Functionality Component Status (factory)¹ Status (updated)² Notes
Bootloader Bootloader Critical bugs Some critical software bugs currently not fixed yet: A drained battery causes U-Boot to bootloop (cause is known and currently being worked on);Workaround Occasionally the eMMC fails to initializeReport. Note: Tow-Boot is now pre-installed on the SPI from the factory - issues need verification to be issues with Tow-Boot.
SPI Implemented Devices bought after end of July 2022 come with Tow-Boot flashed to the SPI memory, making it considerably easier to flash the device and boot from microSD card.
Boot GUI Not implemented Currently there is no graphical boot selection implementedPossibly planned
Operating System Stability WIP
Suspend Experimental Audio is often higher pitched after waking up from suspend due to a bug, make sure to update your systemReportReport
Updates WIP The pre-flashed and outdated operating system on the eMMC often gets corrupted after updatingExample; Pacman database lock preventing updatesSolution; Keyring bug[Solution is to run "pinephonepro-post-install" script as root]
Modem General WIP Alternative firmware; Slow wakeupReport; Some carriers blocking specific TANs in their networkPinePhone Carrier Support; Note: Proprietary firmware
Phone WIP The modem connection crashes frequently, which can lead to missed callsReportAlternative firmware; Slow wakeupReport; bad call audio qualityReport; Audio is often higher pitched after waking up from suspend due to a bugReportReport
SMS Working SMS functionality is expected to work. In certain cases the functionality might be blocked by a clogged modemReport; Some bugs
MMS WIP MMS functionality is integrated into the application "Spacebar", some bugs remaining and expected
Push notifications Not implemented Receiving push notifications while the phone is suspended is not implemented
Components LCD WIP Hardware issueDetails
Touch Working
Rear camera Not working WIP Camera work-in-progress with DTS fix[Citation]; userspace still needs to do some catching updebugging article; Green image tint[Citation]
Front camera Not working WIP Camera work-in-progress with DTS fix[Citation]; userspace still needs to do some catching updebugging article; Green image tint[Citation]
Camera flash Critical issues Hardware issueDetails; Note: /sys/class/leds/white:flash
WiFi Working WiFi is expected to work. The firmware does not support monitor mode and package injection. Note: Proprietary firmware
Bluetooth WIP Bluetooth not necessarily working for calls yet due to missing audio routing[Citation]; Bluetooth in general dodgy under Pulseaudio.Info Note: Proprietary firmware
GNSS/GPS WIP aGPS to be implementedSee original PinePhone article; long loading times to get a GPS fix[Citation]; No preinstalled application[Citation]
Sensors WIP "Geo Magnetic Sensor" (af8133j): Status unknown (at /sys/bus/i2c/devices/4-001c/iio:device1)

"Accelerometer / Gyroscope" (mpu6500): Working (at /sys/bus/i2c/devices/4-0068/iio:device2)
"Ambient light / Proximity" (stk3311): Working after updating

Vibration motor Working
Notification LED Working
Buttons Working Power buttons and volume buttons are working.
Accessory compatibility, spare parts Keyboard Add-on WIP The keyboard add-on compatibility is work-in-progress.
LoRa Add-on Not implemented No software support implemented
Qi Wireless Charging Add-on WIP Wireless charging with the add-on case is expected to work to some degree. Certain software functionality and a driver is currently missing[Citation]
Fingerprint Reader Add-on Not implemented No software support implemented
Spare parts Partial Some spare parts now available in the store.Store
Software notes Waydroid Working Waydroid is an Android container used to run Android applications.

¹ Status of the features at the time of the last factory installation without updates

² Status of the features with an up-to-date reference image

Editions and revisions

Similarly to the original PinePhone, various PinePhone Pro editions are planned, the first of which is the Developer Edition (aimed at developers, as the name entails) followed by the Explorer Edition, which is aimed at early adopters.

Help and support

Still have any questions regarding software, shipping, or ordering after reading this Wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See Main Page#Community and Support.

Please keep in mind that PINE64 is not like a regular company (see the PINE64 philosophy) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.

First time setup

A protection foil isolates the battery for the shipping.

When shipped the battery is isolated from the device using a protective plastic tab, which is required to be removed before using the phone. The battery will not charge or boot until it is removed and the battery is connected again.

Note: To remove the sticker after unboxing the phone: Carefully remove the back panel using the notch in the corner of the back cover without overbending it. Then remove the battery. Peel off the clear plastic sticker below it, which isolates the charging contacts and reinsert the battery.

The SIM card has to be placed in the lower slot, while the microSD has to be placed in the upper slot. Devices shipped after the end of July 2022 do only accept a nano-SIM, the SIM is inserted into a carriage released by slightly pulling on the handle in the lower slot (for information regarding devices shipped prior to end of July 2022 see below).

The microSD belongs in the upper slot, the SIM card in the lower slot.
Note: Information regarding devices shipped prior to end of July 2022: The PinePhone Pros shipped prior to the end of July 2022 come with a micro-SIM slot instead of a nano-SIM slot. Do not insert an empty micro-SIM adapter into the phone and do not release the nano-SIM inside the adapter, as it will get stuck on the contact pins.
If the nano-SIM got released inside the adapter inside the phone, carefully reinsert the nano-SIM card without moving the adapter. In that case do not pull on the empty adapter as it will get stuck on the contact pins and damage them!

Software

The software section explains how to install the available software releases for the PinePhone Pro to the internal eMMC or a microSD card, how to boot them and how to solve common booting issues.

Software releases

The PinePhone Pro Software Releases page has a complete list of currently supported phone-optimized operating system images that work with the PinePhone Pro.

Note: Images of the regular PinePhone are not compatible with the PinePhone Pro.

Boot order

The RK3399S processor in the PinePhone Pro searches for the bootloader (such as U-Boot or Tow-Boot on batches after July 2022) in the following order:

  1. SPI flash
  2. eMMC (the internal memory)
  3. MicroSD card

The bootloader uses its own boot order for loading the kernel and other core operating system components at boot, which for example may result in the boot loader residing on the eMMC loading and booting the kernel from a microSD card.

The SPI flash and the eMMC chip can be bypassed during boot by temporarily disabling them at the hardware level using the following method, which can be used in cases such as having corrupted installation on the SPI flash or the eMMC:

  • On the Explorer Edition hold the RE button underneath the cover for a few seconds, while powering on the device.
  • On the Developer Edition, which was an earlier revision intended for developers only, the SPI and the eMMC can be bypassed by shorting the bypass test points while booting. The process is explained in the article PinePhone Pro Developer Edition. Please join the community chat for any questions regarding the process.

The bypass disables the SPI and the eMMC while being applied and the PinePhone Pro will try to boot from the next available boot medium, which is the microSD card. Note: When holding the RE button (or when shorting the contact points in case of the Developer Edition) for a longer time at boot the operating system will not initialize the SPI and eMMC and it will not be possible to write to these storage mediums until the next reboot.

Note: If you received your device before July of 2022, the bootloader (such as U-Boot') resides in the free space in front of the first partition. Wiping the bootloader from the eMMC to make the PinePhone Pro boot from microSD card can be done using sudo dd if=/dev/zero of=/dev/mmcblk2 seek=64 count=400 conv=fsync. Formatting the drive or deleting the partition table is not sufficient to wipe the bootloader.
Note: If you received your device after July of 2022, the bootloader (Tow-Boot) resides on the SPI. To boot to an SD card, place the SD card in your PinePhone Pro and turn it on. The phone will vibrate once. At this point, hold down the volume down button until you feel the device vibrate again then release the button. The LED color should change to blue and your display should remain black for a few seconds. In a few seconds you should see the SD card booting, the indications of which are dependent on what image you chose. If the LED is flashing instead, the boot from SD failed. Erasing the SPI can be achieved via the Tow-Boot installer image. Instructions are available here Tow-Boot PinePhone Pro Instructions

See RK3399 boot sequence for details regarding the boot sequence.

Installation instructions

The software releases can be installed (the process is being referred to as flashing) to the eMMC or to an microSD card.

Flashing to microSD card

To install an image to the microSD card:

  1. Download a compatible image from PinePhone Pro Software Releases
  2. Extract the compressed image
  3. Write the image to your microSD card using your favorite method, examples:
    • Using dd: On the device you're flashing the microSD card from, find the correct device under lsblk and then flash the image to the microSD card using sudo dd if=IMAGE.img of=/dev/[DEVICE] bs=1M status=progress conv=fsync. Make sure the target is the whole microSD card and not its first partition (sdc1 or mmcblk0p1 are wrong!).
    • Using bmaptool: Make sure to select the correct device using lsblk. Then run bmaptool with the correct device: Download the IMAGE.xz and the IMAGE.bmap files, then run bmaptool copy --bmap IMAGE.bmap IMAGE.xz /dev/[DEVICE]. This takes around 2.5 minutes to flash a 4 GB file.
    • Using a graphical tool: A graphical tool such as Gnome Disks under Linux or Etcher under Windows may also be used.
  4. Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore, see here.
  5. Power on the PinePhone Pro. If your device was shipped before July of 2022, there is an existing bootloader on the eMMC. You need to bypass or wipe the bootloader on the eMMC as explained in the section Boot order. If your device was shipped after July of 2022, Tow-Boot can boot from SD card optionally. Instructions are available in Boot order.

Flashing to the eMMC

Flashing to the eMMC can be done by booting an operating system from the microSD (see the section Flashing to microSD card) and by writing to the eMMC directly from there:

  1. Boot an operating system from the microSD card. If there is already a bootloader on the eMMC installed see the section Boot order to bypass it
  2. Download or copy the desired image to the microSD card as file
  3. Check if the eMMC appears under lsblk. If it doesn't appear in the output of the command, the eMMC wasn't initialized due to applying the above explained bypass method for a too long time during the boot
  4. Extract the image
  5. Flash the extracted image using sudo dd if=IMAGE.img of=/dev/mmcblk2 bs=1M status=progress conv=fsync
  6. Reboot the PinePhone Pro

Troubleshooting

If the PinePhone Pro is not booting (either booting incompletely into a boot splash or tty or if the PinePhone Pro is showing no signs of life) this will typically have the following two reasons:

The battery is fully drained

First of all, there's a reason why all smartphones refuse to launch with a battery at 0%. PinePhone tries to start even at 0% battery until battery drain protection is involved. Beware that draining battery for its protection for about 10-20 times halves the battery capacity.

If the battery is drained then the board can reset during boot causing a boot loop because of undervoltage condition. It can happen on all stages of the boot including U-Boot bootloader, display initialization and USB (re-)configuration. In that case it is not possible to charge the phone. The battery can be charged by interrupting the boot loop by booting the PinePhone Pro into Maskrom mode or by charging the battery externally. To boot the PinePhone Pro into Maskrom mode:

  • Remove any microSD card from the phone and keep it removed for the below procedure
  • Remove the battery, any USB cable and any serial cable
  • Reinsert the battery
  • Hold the RE button underneath the back cover of your Explorer Edition (or short the bypass contact points on the Developer Edition)
Note: Confirm that the label of the button says RE and not RESET! If the button label says RESET instead you probably have a regular PinePhone and you're reading the wrong page.
  • Connect the phone to an USB port of a computer, while still holding the button for some time
  • Check if the phone in Maskrom mode appears in the output of the terminal command lsusb on the computer, the expected VID:PID of the device is 2207:330c
    • (under Windows this can be checked using the Device Manager and checking the VID and PID of an appearing Unknown device)
    • (under macOS this can be checked in /Applications/Utilities/System Information.app under USB and checking the VID and PID of an appearing Composite Device
  • Let the phone charge for at least two hours
Note: If the device doesn't appear under lsusb please try again with a different known good USB-C cable and make sure that there is no microSD card in the phone inserted.
Note: It may not be necessary to use a computer to successfully boot into Maskrom mode, at least one user has reported successfully charging in Maskrom mode using a standard USB wall charger. This method has no way to determine if Maskrom mode has been entered successfully, however.

The device should now be able to boot from the boot medium again. If that is not the case the installation got corrupted, as explained below.

Levinboot bootloader doesn't have the bootloop issue, because it configures high input current limit (2A) during early boot, which is sufficient to complete the boot even with discharged battery, without any boot loops.

The installation is corrupted

The PinePhone Pro won't be able to boot if the installation on the SPI flash, the eMMC or the microSD card got corrupted. To boot a working operating system:

  • Prepare a microSD card as explained in the section Flashing to microSD card
  • Remove any USB-C cable or device or add-on case from the PinePhone Pro
  • Make sure the device is powered off by shortly removing the battery for a second
  • Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore.
  • Power on the device while bypassing the SPI and eMMC as explained under Boot order

The device should now boot from the microSD card. If the phone does not boot from the microSD card the microSD card was flashed with an incompatible image or the battery got drained as explained above.

Bootloaders

The following section contains notes regarding compatible bootloaders with the PinePhone Pro.

U-Boot

The pre-installed operating system on the PinePhone Pro Explorer Edition, if sold prior to the end of July of 2022, is using U-Boot as default bootloader. Batches sold after July of 2022 are using Tow-Boot


Tow-Boot

Current batches of the PinePhone Pro ship with Tow-Boot pre-installed to the SPI flash, which is an opinionated distribution of U-Boot and brings numerous advantages over stock U-Boot, such as the possibility to choose from booting the eMMC or microSD card using the volume buttons during boot, as well as a USB Mass Storage mode, where the device can be written to by connecting the device to a computer via USB.

The user can flash Tow-Boot to the PinePhone Pro using the instructions on the Tow-Boot website.

levinboot

The levinboot bootloader is another option for the PinePhone Pro. The project repository can be found here. (Pinephone Pro supporting fork is here.)

Privacy switch configuration

Picture of the privacy switches

The PinePhone features six switches that can be used to configure its hardware. They are numbered 1-6, with switch 1 located nearest to the modem. Their "on" position is toward the top of the phone.

Number Name Description
1 Modem "On" enables 2G/3G/4G communication and GNSS hardware, "off" disables it.
2 WiFi / Bluetooth "On" enables WiFi and Bluetooth communication hardware, "off" disables it.
3 Microphone "On" enables audio input from on-board microphones (not 3.5 mm jack), "off" disables it.
4 Rear camera "On" enables the rear camera, "off" disables it.
5 Front camera "On" enables the front camera, "off" disables it.
6 Headphone "On" enables audio input and output via the 3.5 mm audio jack, "off" switches the jack to hardware UART¹ mode.

¹ Note: The baud rate may be 1500000 instead of 115200.

Specifications

  • Dimensions: 160.8 x 76.6 x 11.1mm
  • Weight: Approx. 220g
  • SIM Card: Nano-SIM (Micro-SIM before 07/2022)
  • Display:
    • Size: 6 inches (151mm) diagonal
    • Type: 1440 x 720 in-cell IPS with Gorilla Glass 4™
    • Resolution: 1440x720, 18:9 ratio
  • System on Chip: Rockchip RK3399S 64bit SoC – 2x A72 and 4x A53 CPU cores @ 1.5GHz
  • RAM: 4GB LPDDR4 @ 800MHz
  • Internal Storage: 128GB eMMC, extendable up to 2TB via microSD, supports SDHC and SDXC
  • NOR Flash: Listed as [GigaDevices] GD25LQ128EWIGR, but physical inspection found a SiliconKaiser SK25LP128.
  • Back Camera: 13MP Sony IMX258 with Gorilla Glass 4™ protective layer, LED Flash
  • Front Camera: 8MP, OmniVision OV8858 front-facing camera
  • Sound: Loudspeaker, 3.5mm jack & mic (jack doubles as hardware UART if hardware switch 6 is deactivated)
  • Communication:
    • Modem: Quectel EG25-G
    • LTE-FDD: B1, B2, B3, B4, B5, B7, B8, B12, B13, B18, B19, B20, B25, B26, B28
    • LTE-TDD: B38, B39, B40, B41
    • WCDMA: B1, B2, B4, B5, B6, B8, B19
    • GSM: B2, B3, B5, B8 (850, 900, 1800, 1900 MHz)
    • WLAN & Bluetooth: Wi-Fi 802.11AC, hotspot capable + Bluetooth V5.0
    • GNSS: GPS/GLONASS/BeiDou/Galileo/QZSS, with A-GPS
  • Sensors: Accelerometer, gyroscope, proximity, ambient light, compass
  • Privacy switches: Modem, WiFi & Bluetooth, Microphone, Cameras
  • Battery: Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh) (nominally replaceable with any Samsung J7 form-factor battery; unglue bottom black plastic with your nail from Samsung battery before installation in order to match the dimensions)
  • I/O: USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification

Components

Component Model
Touchscreen Goodix GT917S
LCD Himax HX8394 compatible
Rear camera IMX258
Front camera OV8858
Camera flash AW3641EDNR
WiFi + Bluetooth AzureWave AW-CM256SM
Modem Quectel EG25-G
GNSS/GPS Quectel EG25-G
3 Axis Magnetometer ST LIS3MDL
Geo Magnetic Sensor Voltafield AF8133J
Ambient light / Proximity STK3311-A
Accelerometer / Gyroscope TDK MPU-6500
Vibration motor
Notification LED LED0603RGB
Audio Codec ALC5616 and ALC5640
Volume buttons Buttons connected to the KEYADC
Power button
Battery fuel gauge RK818

Datasheets, schematics and certifications

  • PinePhone Pro USB-C small board schematic:
    • TBD

Factory Test Build for Hardware Checking

  • Please note that this Android build solely for PinePhone Pro hardware checking purpose and solely used by the support team. This is NOT a general release build.
  • DD image (for 8GB microSD Card or larger)
  • Download the build, extract the image and dd it to a 8 GB or larger microSD card, take out the PinePhone Pro Explorer Edition, then insert it into microSD slot (upper slot).
  • Insert battery, press RE button (bypass SPI and eMMC boot) while plugging in the USB-C power. After 3 seconds release the RE button.
  • When powering up, a battery icon screen will show up blow, press power key for two seconds, then the Rockchip logo screen shows up.

PPP Abdroid Test Utility-1.jpgPPP Abdroid Test Utility-2.jpg

  • Wait for the home screen, double tap on the test app icon (mark red circuit) and this will bring up the factory test screen. Please note that the SD test is disabled due in this is SD boot build.
  • After running a particular test function, please snapshot the test result and pass it back to support team
    • Note: Please insert a functional SIM card when performing the SIM test
    • Note: When perform GPS test, the first result may fail and please ignore this false message.
    • Note: For light sensing test, please have a light shine to the PinePhone Pro when performing the test.

PPP Abdroid Test Utility-4.jpgPPP Abdroid Test Utility-5.jpg

Using Factory Test Build for Battery charging

  • Please note that this Android build solely for PinePhone Pro hardware checking purpose and solely used by support team. This is NOT a general release build.
  • DD image (for 8GB microSD Card or larger)
  • Download the build, extract the image and dd it to a 8 GB or larger microSD card, takes out the PinePhone Pro Explorer Edition then insert it into microSD slot (upper slot).
  • Insert battery, press RE button (bypass SPI and eMMC boot) while plug in USB-C power. After 3 seconds release RE button.
  • When power up, below battery icon screen show up and battery will start charging.
  • The battery icon display for few seconds and then LCD panel turn off while charging. To check charging status, just quick press power button (about 0.5 second) and battery icon will display progress.

PPP Abdroid Test Utility-1.jpg

Press

For an overview about media of the PinePhone Pro you can use for the news, blogs, or similar see PinePhone Press.

External links