1 Introduction Congratulations for acquiring our new product, combining best-in-class performance with a rich set of peripherals. Note: The latest version of this manual and related resources can always be found on our website at the following address: https://www.theobroma-systems.com/som-product/px30-uq7/ 1.1 Device Overview PX30 is a high-performance Quad-core application processor designed for personal mobile internet device and other digital multimedia applications.
2 First Steps This chapter provides instructions for getting the PX30-uQ7 EVK running after opening the box. 2.1 Insert the Module Insert the PX30-uQ7 module at a 30-degree angle into the connector in the base board. Once fully inserted, push it down until it rests on the standoffs and check alignment of the mounting holes.
3 Using the EVK This chapter provides instructions for using the EVK (also called Haikou), such as booting and how to configure and use I/O peripherals (e.g. serial console, Ethernet). 3.1 Evaluation Board Overview An overview of the available connectors and devices on the EVK is shown below. Note: The PX30-uQ7 does not support HDMI and PCIe x4 (they are shown with a * in the next figure).
Fig. 3.2: 12V Power connector Power can be controlled manually from the board using the Power control buttons and switches, located on the lower right side of the board (see Section 3.1 Evaluation Board Overview). Depending on the setting of Power Mode ( Normally On / Normally Off ) switch, the board will boot as soon as it receives power.
Fig. 3.3: Fan connector Note: The fan is only necessary in high ambient temperatures. Under normal conditions, the PX30-uQ7 operates passively cooled. 3.5 Boot Order The used boot order of the PX30-uQ7 module depends on the value of the BIOS_DISABLE# signal. On the Haikou baseboard, this signal can be set using a slider switch ( BOOT SW ), with the two positions labeled Normal Boot, and BIOS Disable.
Fig. 3.4: USB UART The serial converter does not require additional drivers on Windows and Linux. For macOS, drivers are available from Silicon Labs: https://www.silabs.com/products/development-tools/software/ usb-to-uart-bridge-vcp-drivers The PX30-uQ7 module has two external UARTs: • UART0 is, by default, used for the serial console for interactive login. •...
UART1 UART0 RS232 FULL/HALF RS485 DUPLEX Fig. 3.5: RS-232 connector The switch labeled RS-232 / RS-485 selects between RS-232 and RS-485 mode on the jack. In RS-485 mode, the switch labeled Full Duplex / Half Duplex selects full- or half-duplex mode, respectively. It has no effect in RS-232 mode, which is always full-duplex.
3.10 SD-Card The PX30-uQ7 supports UHS SD cards and maximum writing speed on the SD card is 50MB/s. The practical writing and reading speeds depend on the capabilities of the inserted SD card. Fig. 3.7: SD card reader 3.11 USB Interfaces The PX30-uQ7 provides four USB ports: •...
Fig. 3.9: USB 2.0 host ports 3.11.1 Connecting an External USB Drive To connect a USB drive, plug it into one of the USB ports. The system should recognize the drive immediately. Check the kernel log to find the device name: dmesg -f You will be able to mount its partitions (assuming mapping to /dev/sdb1 ): mkdir /mnt/usb1...
date --set 2022-10-22 date --set 04:12:33 You can also update the RTC immediately, again with hwclock : hwclock -w 3.14 SPI and I2C SPI and I2C interfaces are both available on the pin header labeled SPI+I2C+1-Wire . The PX30-uQ7 does not support 1-Wire .
apt-get install i2c-tools 3.14.1 Linux I2C Bus Numbering Linux identifies each I2C bus by a bus number. The table below shows the mapping between Q7 names, Linux bus number and EVK header. Q7 signals Linux bus # Haikou Header(s) Label on Haikou Header SMBus Video...
Q7 signal CPU pin Linux GPIO # GPIO0 GPIO3_C6 GPIO1 GPIO3_D0 GPIO2 GPIO3_C7 GPIO3 GPIO3_D1 GPIO4 GPIO3_C0 GPIO5 GPIO3_A2 GPIO6 GPIO3_A1 GPIO7 GPIO2_B6 To calculate the Linux GPIO # for CPU pins that are not listed in this table, use the following formula: (block_number (sub_block_number index...
Fig. 3.14: Audio input/output port Additionally, an expansion connector for I2S audio is available on the bottom row of the board: 3V3_LDO I2S_RST# I2S_CLK I2S_WS I2S_SDO I2S_SDI I2S_DAT I2S_CLK Fig. 3.15: Connecting to the audio expansion connector 3.17 CAN Bus The board provides a CAN connector on the bottom row.
Fig. 3.16: CAN header Note: CAN feature is only available on PX30-uQ7 module with an STM32, see (Section 11.4.4 Companion Controller 1). 3.18 CTRL I/O Connector The board provides signals for watchdog trigger in- and output, SoM PMIC power-on input, reset and external display power enable.
Fig. 3.18: MISC header 3.20 JTAG Connector The board provides UPDI signals on the JTAG connector. The PX30-uQ7 does not support JTAG, but the ATtiny (see Section 11.4.5 Companion Controller 2) can be flashed over JTAG connector pins. Fig. 3.19: JTAG header JTAG header Function UPDI-TX...
4 Software Overview This chapter provides instructions for compiling and deploying the BSP (Board Support Package) software to the uQ7 module. 4.1 Supported Distributions Two of the most popular embedded systems distributions are supported. The following chapters describe how to build a disk image for each of them: •...
5 Debian image guide As opposed to Yocto, Debian does not provide a completely integrated build experience by itself. Linux kernel and U-Boot have to be compiled manually and copied to the appropriate directory to be picked up by Debian build system. This chapter will go through all neccessary steps, finally building a complete image using the debos Debian image builder.
(continued from previous page) # Compile TF_LDFLAGS="$TF_LDFLAGS" make PLAT=px30 bl31 # Make the resulting file available to later steps export BL31=$PWD/build/px30/release/bl31/bl31.elf This step should take under 1 minute total. 5.3 Compile U-Boot Note: The variable BL31 must be already set as described in Section 5.2 Compile the ATF . Get the source code and compile the U-Boot bootloader as follows: # Set up cross-compilation export...
5.5 Building the debos image 5.5.1 Prepare required components Note: The variables RINGNECK_UBOOT_DIR and RINGNECK_LINUX_DIR must be already set as described in Section 5.3 Compile U-Boot and Section 5.4 Compile the Linux kernel, respectively. Get the source code for the debos recipe and copy necessary components built in previous steps: # Download the source code git clone https://git.theobroma-systems.com/debos-recipes.git debos-recipes...
6 Building a Yocto image The Yocto Project is an open-source project that helps building Linux-based distributions, mainly for embededded products. Theobroma Systems provides a minimal BSP layer to allow building Yocto images for the company’s modules. Upon request, access can be given to a more featureful “demonstration” layer which provides hardware and software validation scripts as well as demo applications.
Page 28
yocto meta-arm meta-openembedded meta-rockchip meta-theobroma-systems-bsp poky Note: It is essential that the Yocto layers are checked out on the same branch otherwise there may be some unexpected issues. With the aforementioned instructions, the layers have been checked out to a branch supporting the Yocto Project Kirkstone (4.0) release.
Page 29
user and also allows to easily build for multiple machines without modifying a file in-between. The build process can take several hours depending on the capabilities of the build machine and the user’s Internet connection. Note: If the Bitbake process needs to be stopped for any reason, a SIGINT ( Ctrl + c ) signal can be sent once. Bitbake will gracefully close down upon reception of this signal.
6.3 Extended meta layer Yocto Project extended layer found https://git.theobroma-systems.com/yocto-layers/ meta-theobroma-systems-extended.git/. In addition to the minimal features, this layer includes the network manager, and many more features will be added soon. 6.3.1 Initial setup Clone the Extended layer and its dependencies from a new directory called yocto : git clone https://git.theobroma-systems.com/yocto-layers/meta-theobroma-systems-extended.git -b␣...
Page 31
The Yocto Project then needs to be configured to include layers to find new recipes or configuration files, which is essential to build new pieces of software or compile for a specific hardware target system. This can be done with the bitbake-layers tool: bitbake-layers add-layer ../meta-arm/meta-arm-toolchain bitbake-layers add-layer ../meta-arm/meta-arm bitbake-layers add-layer ../meta-rockchip...
Page 32
Note: It is also available as a Python package and installable with: python3 -m pip install --user kas The Section 6.3.1 Initial setup and Section 6.3.2 Initializing build environment can then be replaced by the following two com- mands: git clone https://git.theobroma-systems.com/yocto-layers/meta-theobroma-systems-extended.git -b␣...
7 Deploy a disk image This chapter describe how to write a disk image as generated in one of the previous chapters using Yocto or Debian to the module. Note: The variable SDCARD_IMG must be already set as described in respective chapter. Warning: Avoid having the disk image on both the SD Card and the internal eMMC of the module.
Page 34
Then, insert a micro-USB cable into the USB-OTG port (see Fig. 3.8 USB 2.0 OTG port (dual-role port: can be used as a host or device interface)) on the baseboard and into a USB port of your host PC. Then, power cycle the device by unplugging and replugging the power supply or by pressing the Reset button. The lsusb command on your host PC should return the following: $ lsusb -d 2207:330d Bus 001 Device 028: ID 2207:330d Fuzhou Rockchip Electronics Company...
8 Wifi The PX30-uQ7 module features an on-board Wifi module. This chapter shows how to connect to an existing Wifi network and how to flash the wifi firmware, should the need arise. 8.1 Antenna The development kit includes an antenna compatible with the Wifi module. Other antennas can be used. The connector on the antenna must be one of: •...
Page 36
(continued from previous page) ! -d /sys/class/gpio/gpio$GPIO_BOOT then echo $GPIO_BOOT > /sys/class/gpio/export ! -d /sys/class/gpio/gpio$GPIO_EN then echo $GPIO_EN > /sys/class/gpio/export echo out > /sys/class/gpio/gpio$GPIO_BOOT/direction echo out > /sys/class/gpio/gpio$GPIO_EN/direction echo > /sys/class/gpio/gpio$GPIO_BOOT/value echo > /sys/class/gpio/gpio$GPIO_EN/value sleep echo > /sys/class/gpio/gpio$GPIO_EN/value sleep ESPTOOL=$(PATH=/root/.local/bin/:$PATH which esptool.py) $ESPTOOL...
9 Serial Number & MAC Address 9.1 Serial Number Each PX30-uQ7 module has a unique serial number that can be read by software. In U-Boot, the serial number is contained in the environment variable serial# . You can print it using the command: printenv serial# Under Linux, it is represented by a simple text file in /sys :...
10 Phosh graphical shell Phosh is a graphical user interface designed for touch-based devices. It is based on the GTK widget toolkit, and derives from the GNOME Shell as a mobile-specific fork. Phosh is used as a default graphical user interface in the reference images for the Haikou-Video-Demo.
10.2 Known issues 1. Wrong display resolution when device is locked. Locked screen (Fig. 10.1) and Login screen (Fig. 10.2) are extended by few pixels at the bottom. This causes that button and text placed at the bottom are not displayed correctly. This issue does not occur when the device is unlocked.
11 Hardware Guide This Hardware Guide provides information about the features, connectors and signals available on the PX30-uQ7 module. 11.1 Q7 Implementation Q7 has mandatory and optional features. Following table shows the feature set of the PX30-uQ7 module compared to the minimum ARM/RISC based and maximum configuration according to the Q7 standard.
11.2 Q7 Connector Pinout The following table shows the signals on the edge connector of the PX30-uQ7 module. Empty cells are not connected (NC) pins. Signal Signal GBE_LINK# GBE_LINK1000# GBE_MDI1- GBE_MDIO0- GBE_MDI1+ GBE_MDIO0+ GBE_LINK# GBE_ACT# GBE_CTRFF SUS_S5# WAKE# SUS_S3# PWRBTN# SLP_BTN# LID_BTN# PWGIN...
Table 11.1 – continued from previous page Signal Signal 11.3 Signal Details 11.3.1 Ethernet Q7 Signal Type Signal Description Level GBE_MDI[0:1]+ Analog Fast Ethernet Controller: Media Dependent Interface Differential Pairs GBE_MDI[0:1]- 0,1. The MDI can operate in 100 and 10 Mbit/sec modes GBE_ACT# 3.3V Ethernet Controller activity indicator, active low...
Page 44
11.3.4 I2C Q7 Signal Type Signal Description Level Q7_I2C_CLK 3.3V I2C bus clock line connected to PX30 Q7_I2C_DAT 3.3V I2C bus data line connected to PX30 LVDS_DID_CLK 3.3V I2C bus clock line connected to PX30, Secure Element, STM32, Attiny /GP2_I2C_CLK and Video connector LVDS_DID_DAT 3.3V...
Page 45
Q7 Signal Function LVDS_B0_P CSI_D0+ LVDS_B0_N CSI_D0- LVDS_B1_P CSI_D1+ LVDS_B1_N CSI_D1- LVDS_B2_P CSI_D2+ LVDS_B2_N CSI_D2- LVDS_B3_P CSI_D3+ LVDS_B3_N CSI_D3- LVDS_B_CLK_P CSI_CLK+ LVDS_B_CLK_N CSI_CLK- 11.3.7 GPIO Q7 Signal Type Signal Description Level GPIO[0-7] 3.3V General purpose inputs/outputs 0 to 7 11.3.8 CAN Q7 Signal Type Signal...
11.3.11 Misc Signal Type Signal Description Level WDTRIG# 3.3V Watchdog trigger signal WDOUT 3.3V Watchdog event indicator SPKR 3.3V PC speaker (buzzer) output. Alternate function general purpose PWM GP_PWM_OUT2 output BIOS_DISABLE# 3.3V Disables the onboard bootloader and uses the one the SD card instead. /BOOT_ALT# If no bootloader is available on the SD card it falls back to USB recovery mode...
Page 47
Signal CPU Pin Linux GPIO # RESET GPIO1_B3 11.4.4 Companion Controller 1 The first on-board microcontroller provides additional features to the CPU, exposed via I2C and USB. It emulates standard ICs and does not need custom drivers in Linux. Feature CPU Connection Emulated IC Qseven Pins...
11.5 Wifi and Bluetooth module Fig. 11.1: WiFi and Bluetooth module The WiFi and Bluetooth are part of the ESP32 PICO MINI 02U module on the PX30-uQ7 board. The antenna connector on the module is w.FL type. The firmware running on the ESP32 is flashed in its internal memory and unlike most wireless modules, does not require files to be present in the root filesystem.
Page 49
Table 11.2 – continued from previous page Test point Connected to TP20 PMIC_Xin TP21 PMIC_Xout TP22 PX30_Xin TP23 PX30_Xout TP24 MCU_UART_TX TP25 MCU_UART_RX TP26 Q7_LVDS_DID_CLK TP27 Q7_LVDS_DID_DAT TP28 Q7_LVDS_BLC_DAT TP29 Q7_LVDS_BLC_CLK TP30 I34 WiFi TP31 I35 WiFi TP32 ESP32_TXD0 TP33 ESP32_RXD0 TP34 BT_UART_TX...
11.6 USB The PX30-uQ7 CPU has 2 USB 2.0 controllers. A USB 2.0 hub provides two additional USB 2.0 ports for a total of four. The routing of Qseven signals to CPU and/or hub port is shown below. Qseven Port # Speed Connected to Notes...
11.7 Using Qseven Signals as GPIO Most Qseven signals can be reused as a general purpose I/O pin. The following table shows the mapping and the possible direction as seen from the baseboard. Qseven Signal CPU Pin Linux Direction GPIO SUS_S5# GPIO3_A0 Bidirectional...
11.8 Electrical Specification 11.8.1 Power Supply The power supply requirements are listed in the table below and are identical to the Qseven specification. Rail Description Nominal voltage Tolerance Main power supply 4.75 . . . 5.25V VCC_RTC Backup battery 2.4 . . . 3.3V v1.2.0-1-g5ccabb6 Page 48...
11.9 Mechanical Specification 11.9.1 Module Dimensions The mechanical dimensions of the module are shown below. Fig. 11.2: Module dimensions (all values in mm) 11.9.2 Baseboard Dimensions The mechanical dimensions of the baseboard are conform with the form factor for Mini-ITX and the baseboard can be mounted in a standard Mini-ITX PC Case.
12 Revision History Date Revision Major changes Nov 1, 2022 v0.0.1 First internal release Dec 21, 2022 v1.0.0 Internal review ; public release Dec 21, 2022 v1.0.1 Fix one missing image in html output Mar 29, 2023 v1.1.0 Add Phosh graphical shell Apr 27, 2023 v1.2.0 Add meta-extended demo image build instructions...