================ PINE64 PinePhone ================ `PinePhone `_ is an ARM64 smartphone created by PINE64. Features ======== - **System on Chip:** Allwinner A64 - **CPU:** Quad-Core ARM Cortex-A53 - **GPU:** ARM Mali400 MP2 - **Interrupt Controller:** ARM GIC PL400 (Generic Interrupt Controller v2) - **Display Engine:** Allwinner Display Engine 2.0 (MIPI DSI with DMA) - **Display:** Xingbangda XBD599 HD IPS Capacitive Touchscreen (5.95 inches, 1440x720 resolution, 16M colors) - **LCD Controller:** Sitronix ST7703 (MIPI DSI) - **RAM:** 2GB or 3GB LPDDR3 SDRAM - **Internal Storage:** 16GB or 32GB eMMC, extendable up to 2TB via microSD - **Back Camera:** Single 5MP, 1/4", LED Flash - **Front Camera:** Single 2MP, f/2.8, 1/5" - **Sound:** Loudspeaker, 3.5mm jack & mic (jack doubles as Hardware UART if Privacy Switch 6 is Off) - Modem: Quectel EG25-G - **LTE-FDD, LTE-TDD, WCDMA, GSM** - **GNSS:** GPS / GLONASS / BeiDou / Galileo / QZSS, with A-GPS - 2.4 GHz Wireless: Realtek RTL8723CS - **WLAN:** WiFi 802.11 b/g/n, single-band, hotspot - **Bluetooth:** 4.0, A2DP - **Sensors:** Accelerometer, Gyroscope, Proximity, Ambient Light, Compass - **Privacy Switches:** Modem, WiFi & Bluetooth, Microphone, Cameras, Headphone - **Battery:** Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh) - **I/O:** USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification Serial Console ============== A `PinePhone Serial Debug Cable `_ is required to run NuttX on PinePhone. On PinePhone, set the `Privacy Switch 6 (Headphone) `_ to **Off**. Connect PinePhone to our computer with the Serial Debug Cable. On our computer, start a Serial Terminal and connect to the USB Serial Port at **115.2 kbps**. NuttX will appear in the Serial Console when it boots on PinePhone. ARM64 Toolchain =============== Before building NuttX for PinePhone, download the ARM64 Toolchain for **AArch64 Bare-Metal Target** ``aarch64-none-elf`` from `Arm GNU Toolchain Downloads `_. (Skip the section for Beta Releases) Add the downloaded toolchain ``gcc-arm-...-aarch64-none-elf/bin`` to the ``PATH`` Environment Variable. Check the ARM64 Toolchain: .. code:: console $ aarch64-none-elf-gcc -v Building ======== To build NuttX for PinePhone, :doc:`install the prerequisites ` and :doc:`clone the git repositories ` for ``nuttx`` and ``apps``. Configure the NuttX project and build the project: .. code:: console $ cd nuttx $ tools/configure.sh pinephone:nsh $ make $ cp nuttx.bin Image $ rm -f Image.gz $ gzip Image This produces the file ``Image.gz``, which will be copied to PinePhone in the next step. If the build fails with the error ``token "@" is not valid in preprocessor``, `apply this patch `_ to ``gcc-arm-none-eabi/arm-none-eabi/include/_newlib_version.h`` in the ARM64 Toolchain. Booting ======= NuttX boots on PinePhone via a microSD Card. To prepare the microSD Card, download the **PinePhone Jumpdrive Image** ``pine64-pinephone.img.xz`` from `dreemurrs-embedded/Jumpdrive `_. Write the downloaded image to a microSD Card with `Balena Etcher `_. Copy the file ``Image.gz`` from the previous section and overwrite the file on the microSD Card. Check that PinePhone is connected to our computer via a `Serial Debug Cable `_ at 115.2 kbps. `Privacy Switch 6 (Headphone) `_ should be set to **Off**. Insert the microSD Card into PinePhone and power up PinePhone. NuttX boots on PinePhone and NuttShell (nsh) appears in the Serial Console. To see the available commands in NuttShell: .. code:: console $ help LEDs ==== The supported PinePhone LEDs are: ===== ========= === Index LED PIO ===== ========= === LED1 Green LED PD18 LED2 Red LED PD19 LED3 Blue LED PD20 ===== ========= === Configurations ============== nsh --- Basic configuration that runs NuttShell (nsh). This configuration is focused on low level, command-line driver testing. Built-in applications are supported, but none are enabled. Serial Console is enabled on UART0 at 115.2 kbps. Peripheral Support ================== NuttX for PinePhone supports these peripherals: =========== ======= ===== Peripheral Support NOTES =========== ======= ===== PIO Yes UART Yes Only UART0 is supported =========== ======= =====